介绍
# Ad-Ready: AI Advertising Image Generator
使用 ComfyDeploy 上的四阶段 AI 流水线,从产品 URL 生成专业的广告图像。
**来源:** [github.com/PauldeLavallaz/ads_SV](https://github.com/PauldeLavallaz/ads_SV)
---
## 流水线架构
该流水线作为部署在 ComfyDeploy 上的 ComfyUI 自定义节点运行。单个 `ProductToAds_Manual` 节点在内部执行 4 个阶段:
``` ┌─────────────────────────────────────────────────────────────┐ │ ProductToAds_Manual Node │ │ │ │ PHASE 1: Product Scraping (Gemini Flash) │ │ ───────────────────────────────────────── │ │ Scrapes product URL → extracts title, description, │ │ features, price, materials, image URLs │ │ Also scrapes HTML for high-res product images (≥1000px) │ │ │ │ PHASE 2: Campaign Brief Generation (Gemini Flash) │ │ ──────────────────────────────────────────────── │ │ Brand Identity + Product Data + References → │ │ 10-point Campaign Brief (creative direction) │ │ │ │ PHASE 3: Blueprint Generation (Gemini Flash) │ │ ────────────────────────────────────────────── │ │ Master Prompt (funnel stage) + Brief + Keywords → │ │ Production-Ready JSON Blueprint │ │ │ │ PHASE 4: Image Generation (Nano Banana Pro / Imagen 3) │ │ ────────────────────────────────────────────────── │ │ Blueprint + all reference images → final ad image │ │ │ └─────────────────────────────────────────────────────────────┘ ```
### 阶段 2:活动简报(创意大脑)
简报生成器是最关键的中间步骤。它充当“资深艺术总监”,使用 10 点框架将原始数据转化为可执行的创意方向:
1. **战略目标** — 本活动存在的原因(认知/定位/发布) 2. **核心信息** — 一个无需文字即可感知的单一理念 3. **视觉语调** — 基调:平静/充满活力/亲切/宏大 4. **产品角色** — 主角 vs 联合主角 vs 隐性存在 5. **视觉语言与品牌一致性** — 不可协商的品牌代码 6. **摄影师与设备** — 摄影作为一种概念,而非执行 7. **扩展艺术指导** — 造型、选角、姿势、发型/妆容、布局 8. **环境与语境** — 何地以及为何(概念性的,绝非装饰性的) 9. **纹理、材质与产品渲染** — 表面如何被感知 10. **最终图像特征** — 完成度、颗粒感、时间定位
如果没有简报,主提示词必须猜测创意策略。有了它,主提示词只需执行。
简报提示词模板包含在 `{baseDir}/configs/Brief_Generator/brief_prompt.json` 中。
### 阶段 3:主提示词(8 个漏斗阶段)
每个漏斗阶段都有一个专门的主提示词,用于生成可用于生产的 JSON 蓝图。所有阶段共享相同的内部模拟:
- **ROUND -1:品牌身份取证**(阶段 03+)— 统一的品牌风格宣言 - **ROUND 0:保真度锁定** — 产品几何形状和模特身份是**不可变的** - **ROUND 1:阶段策略** — 针对漏斗位置的战略方法 - **ROUND 2:平面设计** — UI、排版、CTA 工程
蓝图 JSON 涵盖:场景制作、模特锁定、相机视角、主体动作/姿势/服装、灯光、产品约束、布局架构、排版、CTA 工程和品牌资产放置。
主提示词文件包含在 `{baseDir}/configs/Product_to_Ads/` 中。
### 参考图分析器
参考图像(`referencia`)是**可选的**且**默认关闭**。该流水线从品牌身份 + 活动简报内部生成创意方向。仅当用户明确要求克隆特定广告风格时才使用参考。
使用时,参考图像将被分析以获取姿势、摄影风格和位置线索。
---
## ⚠️ 关键:必需输入清单
在运行任何广告生成之前,确保已提供以下内容:
| 输入 | 必需? | 如何获取 | |-------|-----------|---------------| | `--product-url` | ✅ 始终 | 用户提供产品页面 URL | | `--product-image` | ✅ 始终 | 从产品页面下载,或用户提供 | | `--brand-profile` | ✅ 永不为空 | 从目录中选择,或先运行 brand-analyzer。如果品牌已知,**绝不要**保留为 "No Brand" | | `--prompt-profile` | ✅ 始终 | 根据活动目标选择 | | `--aspect-ratio` | 默认:4:5 | 如平台需要则更改 | | `--model` | 🔶 可选 | 模特/达人面孔。带模特的广告效果更好。空值 = 仅产品广告(无人物)。使用时,从 `~/clawd/models-catalog/catalog/images/` 中选择(提供 114 个模型) | | `--logo` | 🔶 可选 | 尝试查找。如果质量好且易于获取则使用。如果分辨率低或难找则跳过。空值 = 绕过 | | `--reference` | 🔶 可选(关闭) | 仅当用户明确要求克隆参考广告时。空值 = 绕过 | | `--creative-brief` | 🔶 按需 | 仅当用户给出明确的创意方向时。省略以让流水线从品牌配置文件自动生成 | | `--language` | 🔶 按需 | 仅当用户请求特定语言时。省略以使用默认值 |
### 🚨 绝不要跳过这些步骤:
1. **产品图像** — 从产品 URL 下载主产品照片。爬虫很脆弱;始终显式提供产品图像。 2. **品牌配置文件** — 如果品牌在目录中不存在,**首先**运行 `brand-analyzer` 技能以生成一个。当品牌已知时,绝不要使用 "No Brand" 提交。 3. **品牌 Logo** — **尝试**查找它(Clearbit、logo.dev、品牌网站)。如果质量好则使用。如果找不到或分辨率低,则跳过 — 该变量接受空字符串(服务端绕过)。 4. **参考图** — 默认情况下**不要**搜索参考。仅当用户明确要求克隆特定广告或说“找一个好的广告来克隆”时才提供。
---
## 自动准备工作流
当用户要求生成广告时:
``` 1. User provides: product URL + brand name + objective
2. CHECK brand profile exists: → ls ~/clawd/ad-ready/configs/Brands/ | grep -i "{brand}" → If not found: run brand-analyzer skill first
3. DOWNLOAD product image: → Visit the product URL or fetch the page → Find and download the main product image → Save to /tmp/ad-ready-product.jpg
4. DOWNLOAD brand logo: → Search "{brand name} logo PNG" or fetch from brand website → Download clean logo image → Save to /tmp/ad-ready-logo.png
5. SELECT prompt profile based on objective: → 🎨 Morfeo_Creative: DEFAULT — cinematic, narrative-rich, slightly surreal. Best visuals. → Awareness: brand discovery, dynamic scenes, world-building, scroll-stoppers → Interest: sustained attention, micro-world hinting at use-case → Consideration: feature communication, proof cues, informative → Evaluation: trust, authority, reviews, certifications → Conversion: ⚠️ MINIMAL by design — clean, CTA-dominant, white backgrounds → Retention: post-purchase confidence, onboarding → Loyalty: editorial, lifestyle, emotional bond → Advocacy: share-worthy, community, belonging
DEFAULT SELECTION LOGIC: - Generic "generate an ad" → Morfeo_Creative (09) - "awareness" / "brand discovery" → Awareness (01) - "conversion" / "buy now" / CTA-focused → Conversion (05) - "creative" / "original" / "surreal" → Morfeo_Creative (09) - "lifestyle" / "editorial" → Loyalty (07) - When in doubt → Morfeo_Creative (09), NOT Conversion
5b. SELECT MODEL (optional): → If user wants a person in the ad: pick from ~/clawd/models-catalog/catalog/images/model_XX.jpg (114 available) → If user wants product-only ad (no person): leave --model empty → If user doesn't specify: ASK if they want a model or product-only → Catalog preview: catalog.json at ~/clawd/models-catalog/catalog/catalog.json
6. RUN the generation with ALL inputs filled ```
---
## 用法
### 完整命令(推荐): ```bash COMFY_DEPLOY_API_KEY="$KEY" uv run {baseDir}/scripts/generate.py \ --product-url "https://shop.example.com/product" \ --product-image "/tmp/product-photo.jpg" \ --logo "/tmp/brand-logo.png" \ --model "models-catalog/catalog/images/model_15.jpg" \ --brand-profile "Nike" \ --prompt-profile "Master_prompt_05_Conversion" \ --aspect-ratio "4:5" \ --output "ad-output.png" ```
### 带参考图(仅在明确请求时): ```bash COMFY_DEPLOY_API_KEY="$KEY" uv run {baseDir}/scripts/generate.py \ --product-url "https://shop.example.com/product" \ --product-image "/tmp/product-photo.jpg" \ --reference "/tmp/reference-ad.jpg" \ --brand-profile "Nike" \ --prompt-profile "Master_prompt_01_Awareness" \ --output "ad-output.png" ```
### 自动获取模式(自动下载产品图像和 Logo): ```bash COMFY_DEPLOY_API_KEY="$KEY" uv run {baseDir}/scripts/generate.py \ --product-url "https://shop.example.com/product" \ --brand-profile "Nike" \ --prompt-profile "Master_prompt_05_Conversion" \ --auto-fetch \ --output "ad-output.png" ```
### 列出可用品牌: ```bash uv run {baseDir}/scripts/generate.py --list-brands ```
---
## API 详情
**端点:** `https://api.comfydeploy.com/api/run/deployment/queue` **部署 ID:** `e37318e6-ef21-4aab-bc90-8fb29624cd15`
### ComfyDeploy 输入变量
| 变量 | 类型 | 描述 | |----------|------|-------------| | `product_url` | string | 要抓取的产品页面 URL | | `producto` | image URL | 产品图像(上传至 ComfyDeploy) | | `model` | image URL | 模特/达人面部参考。**可选** — 空 = 仅产品广告(无人物)。使用时,从模型目录中选择(`~/clawd/models-catalog/catalog/images/model_XX.jpg`,共 114 个可用) | | `referencia` | image URL | 风格参考广告 — 可选,空值 = 绕过。仅当用户要求克隆参考时 | | `marca` | image URL | 品牌 Logo — 可选,空值 = 绕过。如果容易找到且质量好则使用 | | `brand_profile` | enum | 目录中的品牌名称(70+ 品牌) | | `prompt_profile` | enum | 漏斗阶段主提示词 | | `aspect_ratio` | enum | 输出格式(1:1, 4:5, 5:4, 9:16 等) | | `language` | string | **仅按需。** 广告文案/CTA 的输出语言。默认:`es`。仅当用户明确请求不同语言时才发送。否则,**不要**包含此参数 — 让流水线使用其默认值。 | | `creative_brief` | string | **仅按需。** 自由文本创意方向覆盖。仅当用户明确要求特定创意方向、场景、情绪或概念时使用。否则,**不要**包含此参数 — 让流水线从品牌身份配置文件自动生成自己的简报。 |
---
## 漏斗阶段 — 战略细节
### 01 — 认知 **目标:** 停止滑动、激发好奇、品牌介绍 **拒绝:** 通用的“桌上放产品”概念 **策略:** 动态相机角度、世界构建环境、高概念创意 **CTA:** 柔性或可选 **视觉层级:** 模特 → 产品 → 可选 CTA
### 02 — 兴趣 **目标:** 维持注意力、介绍价值主张 **拒绝:** 隐藏产品的抽象视觉 **策略:** 一个清晰的视觉理念,暗示用例的可信微观世界 **CTA:** 了解更多、发现、查看详情 **视觉层级:** 模特 → 产品 → 标题 → CTA
### 03 — 考量 **目标:** 充分评估、减少不确定性 **拒绝:** 纯情绪叙事、模糊的情感内容 **策略:** 传达产品**作用**、**一个**主要差异化点、**一个**证明线索 **CTA:** 比较、查看详情、探索 **视觉层级:** 模特 → 产品 → 核心利益 → 证明线索 → CTA **新增:** 将品牌身份宣言添加到蓝图 JSON
### 04 — 评估 **目标:** 验证购买决定、证明与信任 **拒绝:** 纯情绪、无根据的声明、视觉杂乱 **策略:** 一个信任锚点(质量/合法性/权威)、一个证明线索(评论/认证) **CTA:** 查看评论、验证质量、了解更多 **视觉层级:** 信任锚点 → 证明线索 → 产品 → 模特 → CTA
### 05 — 转化 **目标:** 触发决定性行动、消除摩擦 **拒绝:** 引起新犹豫的信息、复杂的构图 **策略:** 一个英雄(产品)、一个行动、可选的微观保证 **CTA:** 立即购买、获取你的、完成订单(**主要**视觉元素) **视觉层级:** 产品 → CTA → 可选保证 → 品牌 → 模特
### 06 — 留存 **目标:** 购后信心、减少流失 **拒绝:** 强行推销、紧迫感、价格谈论 **策略:** “你做出了正确的选择” + “下一步是什么” **CTA:** 开始、设置、学习、跟踪(指导,而非购买) **视觉层级:** 确认 → 下一步 → 产品 → 模特
### 07 — 忠诚 **目标:** 随时间加强情感纽带 **拒绝:** 销售版式、指导性语气、激进的 CTA **策略:** “该品牌是你身份的一部分” — 习惯性参与 **CTA:** 可选:探索、成为一员、继续 **视觉层级:** 品牌世界/情绪 → 模特(身份映射) → 产品 → 品牌
### 08 — 拥护 **目标:** 将客户转化为自愿的品牌大使 **拒绝:** 销售语言、指导性语气、强迫性证言 **策略:** 发出归属信号、创造值得分享的图像、实现有机分享 **CTA:** 可选或缺失:加入运动、我们的一员 **视觉层级:** 情绪 → 模特(身份代理) → 产品(象征) → 品牌
### 09 — Morfeo Creative 🎨 (默认) **目标:** 视觉冲击力最大化,叙事丰富,电影级品质 **拒绝:** 白色背景,工作室拍摄,“桌上的产品”,通用姿势,构图贫瘠 **策略:** 构建沉浸式的**世界**,而不仅仅是背景。人才是一个带有情感和动作的**角色**。微妙的超现实/魔幻元素能升华平凡的事物。想象:电影剧照 + 魔幻现实主义 + 高级时尚。 **CTA:** 存在并融入场景美学 **视觉层级:** 场景 → 人才(作为角色)→ 产品(在场景中有机呈现)→ CTA **创意理念:** - 绝不使用白色背景或工作室 - 每张图像都有景深(前景/中景/背景层) - 光线具有叙事性(黄金时刻,实用光源,彩色氛围) - 每个场景包含一个微妙的超现实元素(不可能的美感,梦幻逻辑的细节) - 服装是戏服设计,而非“简单的衣服” - 摄像机具有个性(特定的胶片型号,有意的瑕疵)
---
## 创建新的广告类型
要创建新的漏斗阶段或专门的广告类型:
1. **复制** `{baseDir}/configs/Product_to_Ads/` 中最接近的现有主提示词(Master Prompt) 2. 用新的战略目标**重新定义** ROUND 1 3. 相应地**调整** ROUND 2 的 UI 层级 4. **转移** 人才/产品的叙事角色 5. **修改** CTA 理念和文案语调 6. **保持** JSON 输出结构完全一致,以确保管线兼容性 7. **维持** 保真度锁定(ROUND 0)—— 产品和人才始终不可变 8. **另存为** `Master_prompt_XX_NewStage.json` —— 节点会自动发现新的配置文件
### 各阶段的关键演变模式:
| 方面 | 早期 (01-02) | 中期 (03-05) | 后期 (06-08) | Morfeo (09) | |--------|--------------|-------------|--------------|-------------| | 人才角色 | 吸引力的锚点 | 可信度的锚点 | 身份的镜像 | 故事中的角色 | | 产品角色 | 次要英雄 | 评估英雄 | 熟悉的符号 | 世界中的有机元素 | | CTA | 软性/探索性 | 证据导向 → 果断 | 指导 → 可选 | 融合/美学 | | 文案语调 | 引人入胜 | 清晰,证据,行动 | 支持性 → 自豪 | 令人回味/诗意 | | 视觉密度 | 高概念 | 结构化,易扫描 | 编辑性,宽敞 | 电影感/分层 | | 环境 | 世界构建 | 上下文丰富 | 生活方式 | 沉浸式 + 超现实 | | 环境 | 世界构建 | 上下文丰富 | 生活方式,亲密 |
---
## 图像输入类型
### 绑定图像(严格保真度 —— 不可变) - **talent**:脸部/身体锁定,面部结构、种族、比例无偏差 - **product_1-4**:形状、标签文本、材质、比例 1:1 保持 - **brand_logo**:UI/按钮样式源自 Logo 几何形状
### 软引用(可选,默认关闭) 参考图像输入 (`referencia`) 是可选的。当提供时,会分析以下内容: - **POSE_REF** → 身体位置、肢体、重心、注视、微手势 - **PHOTO_STYLE_REF** → 相机、镜头、光线、调色、颗粒 - **LOCATION_REF** → 场景、材质、颜色、情绪
当为空(默认)时,创意方向完全来自品牌标识 + 活动简报。
---
## 品牌配置文件
### 目录(70+ 品牌): ```bash ls ~/clawd/ad-ready/configs/Brands/*.json | sed 's/.*\///' | sed 's/\.json//' ```
### 创建新的品牌配置文件: 使用 `brand-analyzer` 技能: ```bash GEMINI_API_KEY="$KEY" uv run ~/.clawdbot/skills/brand-analyzer/scripts/analyze.py \ --brand "Brand Name" --auto-save ```
品牌分析器使用 3 阶段方法: 1. **阶段 1:** 通过 Google 搜索进行官方研究(规范数据:名称、成立时间、定位、愿景、使命、口号) 2. **阶段 1.1:** 独立活动研究(通过 Google Images/Pinterest 进行 10+ 个不同的活动) 3. **阶段 2-3:** 视觉分析 → 遵循标准模板的 JSON 配置文件
输出涵盖:brand_info, brand_values, target_audience, tone_of_voice, visual_identity, photography, campaign_guidelines, brand_behavior, channel_expression, compliance。
---
## 宽高比
| 比例 | 用例 | |-------|----------| | `4:5` | **默认。** Instagram 信息流,Facebook | | `9:16` | Stories, Reels, TikTok | | `1:1` | 方形帖子 | | `16:9` | YouTube, 横幅广告 | | `5:4` | 备选横向 | | `2:3` | Pinterest | | `3:4` | 纵向 |
---
## 配置文件参考
该技能包含所有管线配置文件的参考副本:
``` {baseDir}/configs/ ├── Brief_Generator/ │ └── brief_prompt.json # 10-point campaign brief framework ├── Product_to_Ads/ │ ├── Master_prompt_01_Awareness.json │ ├── Master_prompt_02_Interest.json │ ├── Master_prompt_03_Consideration.json │ ├── Master_prompt_04_Evaluation.json │ ├── Master_prompt_05_Conversion.json │ ├── Master_prompt_06_Retention.json │ ├── Master_prompt_07_Loyalty.json │ ├── Master_prompt_08_Advocacy.json │ └── Master_prompt_09_Morfeo_Creative.json # 🎨 DEFAULT — cinematic, surreal, narrative └── Reference_Analyzer/ └── reference_analysis_prompt.txt # Pose/style/location analysis prompt ```
这些配置是管线行为的规范参考。实际的实时配置存储在 ComfyUI 部署中的 `ads_SV/configs/`。
---
## 已知限制
1. **产品图像抓取很脆弱** —— 始终手动提供产品图像 2. **某些网站阻止抓取** —— 抓取失败时手动提供产品数据 3. **Gemini 幻觉** —— 在复杂推理步骤中偶尔出现问题 4. **无法编辑简报** —— 简报是自动生成的;尚不支持手动覆盖 5. **Logo 和参考是可选的** —— 两者都使用服务器端绕过;空字符串 = 未使用。Logo:质量好时使用。参考:仅在明确要求时使用
---
## Ad-Ready vs Morpheus
| 功能 | Ad-Ready | Morpheus | |---------|----------|----------| | 输入 | 产品 URL(自动抓取) | 手动产品图像 | | 品牌智能 | 70+ 品牌配置文件 | 无 | | 漏斗定位 | 8 个漏斗阶段 | 无 | | 简报生成 | 自动(10 点创意方向) | 无 | | 创意方向 | 目标驱动(简报 → 蓝图) | 包驱动(相机、镜头、光线) | | 最适合 | 产品广告活动 | 时尚/生活方式编辑摄影 | | 控制级别 | 高层级(策略优先) | 细粒度(每个视觉参数) |
---
## API 密钥
使用 ComfyDeploy API 密钥。通过 `COMFY_DEPLOY_API_KEY` 环境变量设置。
## 源代码库
- GitHub: [PauldeLavallaz/ads_SV](https://github.com/PauldeLavallaz/ads_SV) - 架构:ComfyUI 自定义节点包,包含 3 个节点: - `ProductToAds_Manual` — 完全手动控制,单一格式 - `ProductToAds_Auto` — 自动下载图像,生成 4 种格式 - `BrandIdentityAnalyzer` — 通过 Gemini + Google Search 分析品牌