Ad-Ready: AI Advertising Image Generator
Generate professional advertising images from product URLs using a 4-phase AI pipeline on ComfyDeploy.
⚠️ CRITICAL: Required Inputs Checklist
Before running ANY ad generation, the agent MUST ensure ALL of these are provided:
| Input | Required? | How to Get It |
|---|
| INLINECODE0 | ✅ ALWAYS | User provides the product page URL |
| INLINECODE1 |
✅ ALWAYS | Download from the product page, or user provides |
|
--logo | ✅ ALWAYS | Download from brand website or search online. MUST be an image file |
|
--reference | ✅ RECOMMENDED | An existing ad whose style we want to clone. Search online or use previously generated images |
|
--brand-profile | ✅ NEVER EMPTY | Pick from catalog or run brand-analyzer first. NEVER leave as "No Brand" if a brand is known |
|
--prompt-profile | ✅ ALWAYS | Choose based on campaign objective |
|
--aspect-ratio | Default: 4:5 | Change if needed for platform |
|
--model | Optional | Model/talent face from catalog or user-provided |
🚨 NEVER Skip These Steps:
- 1. Product image — Download the main product photo from the product URL. The scraper is fragile; always provide a product image explicitly.
- Brand logo — Download the logo from the brand's official website or search for "{brand name} logo" online. Must be a clean logo image (PNG preferred).
- Brand profile — If the brand doesn't exist in the catalog, run
brand-analyzer skill FIRST to generate one. Never submit with "No Brand" when a brand is known. - Reference image — Search for an existing ad or visual with a style that matches what we're generating. Can be from previously generated images, the brand's campaigns, or found online. This dramatically improves output quality.
Auto-Preparation Workflow
When the user asks to generate an ad, follow this workflow:
CODEBLOCK0
Usage
Full command (recommended):
CODEBLOCK1
Auto-fetch mode (downloads product image and logo automatically):
CODEBLOCK2
The --auto-fetch flag will:
- - Download the main product image from the product URL
- Search and download the brand logo
- Both get uploaded to ComfyDeploy automatically
API Details
Endpoint: https://api.comfydeploy.com/api/run/deployment/queue
Deployment ID: INLINECODE11
ComfyDeploy Input Variables
These are the exact variable names the ComfyDeploy deployment expects:
| Variable | Type | Description |
|---|
| INLINECODE12 | string | Product page URL to scrape |
| INLINECODE13 |
image URL | Product image (uploaded to ComfyDeploy) |
|
model | image URL | Model/talent face reference |
|
referencia | image URL | Style reference ad image |
|
marca | image URL | Brand logo image |
|
brand_profile | enum | Brand name from catalog |
|
prompt_profile | enum | Funnel stage prompt |
|
aspect_ratio | enum | Output format |
4-Phase Pipeline (How It Works Internally)
Phase 1: Product Scraping
- - Gemini Flash visits the product URL
- Extracts: title, description, features, price, images
- ⚠️ Image scraping is the most fragile part — always provide product images manually
Phase 2: Campaign Brief Generation (CRITICAL)
- - Uses Brand Identity JSON + Product Data → 10-point brief
- Everything downstream depends on brief quality
- Brief covers: strategic objective, central message, visual tone, product role, photographer, art direction, environment, textures, signature
Phase 3: Blueprint Generation
- - Master Prompt (per funnel stage) + Brief + Product JSON + Keyword Bank + Format
- Gemini Flash generates complete Blueprint JSON
- Covers: scene, production, graphic design, lighting, composition, materials, CTA
Phase 4: Image Generation
- - Nano Banana Pro (Imagen 3.0) generates the final image
- Uses Blueprint JSON + all reference images (product, talent, logo, style ref)
Supporting Reference Nodes
- -
pose_ref → enforce a specific pose (replicated exactly) - INLINECODE21 → replicate photographic style (⚠️ can be too literal, being optimized)
- INLINECODE22 → replicate location and color palette
Brand Profiles
Existing catalog (70+ brands):
CODEBLOCK3
Creating new brand profiles:
Use the
brand-analyzer skill:
CODEBLOCK4
This generates a full Brand Identity JSON and saves it to the catalog automatically.
Prompt Profiles (Funnel Stages)
| Profile | Stage | Best For |
|---|
| INLINECODE24 | Awareness | Brand discovery, first impressions |
| INLINECODE25 |
Interest | Engagement, curiosity |
|
Master_prompt_03_Consideration | Consideration | Comparison, features |
|
Master_prompt_04_Evaluation | Evaluation | Deep dive, decision support |
|
Master_prompt_05_Conversion | Conversion | Purchase intent, CTAs |
|
Master_prompt_06_Retention | Retention | Re-engagement, loyalty |
|
Master_prompt_07_Loyalty | Loyalty | Brand advocates |
|
Master_prompt_08_Advocacy | Advocacy | Referral, community |
How to choose:
- - Most ads → Conversion (purchase intent)
- New product launches → Awareness
- Retargeting → Consideration or Evaluation
- Existing customers → Retention or Loyalty
Aspect Ratios
| Ratio | Use Case |
|---|
| INLINECODE32 | Default. Instagram feed, Facebook |
| INLINECODE33 |
Stories, Reels, TikTok |
|
1:1 | Square posts |
|
16:9 | YouTube, landscape banners |
|
5:4 | Alternative landscape |
Model Catalog
Models for talent/face reference: INLINECODE37
Priority: User-provided model > Catalog selection > No model (product-only ad)
Known Limitations
- 1. Product image scraping is fragile — always provide product images manually when possible
- photostyleref can be too literal — the style reference may be replicated too closely
- Some websites block scraping — Armani works well, others may return incorrect data
- Auto 4-Format is alpha — bugs and edge cases exist
- Gemini hallucinations — occasional issues in complex reasoning steps
Ad-Ready vs Morpheus
| Feature | Ad-Ready | Morpheus |
|---|
| Input | Product URL (auto-scrapes) | Manual product image |
| Brand intelligence |
70+ brand profiles | None |
| Funnel targeting | 8 funnel stages | None |
| Creative direction | Auto-generated from brief | Pack-based (camera, lens, etc.) |
| Best for | Product advertising campaigns | Fashion/lifestyle editorial photography |
| Control level | High-level (objective-driven) | Granular (every visual parameter) |
Source Repository
- - GitHub: https://github.com/PauldeLavallaz/ads_SV
- Local clone: ~/clawd/ad-ready/
- Patreon docs: https://www.patreon.com/posts/from-product-to-149933468
API Key
Uses ComfyDeploy API key. Set via COMFY_DEPLOY_API_KEY environment variable.
Ad-Ready: AI广告图片生成器
通过ComfyDeploy上的4阶段AI流水线,从产品URL生成专业广告图片。
⚠️ 关键:必需输入清单
在执行任何广告生成之前,代理必须确保提供以下所有内容:
| 输入 | 是否必需 | 获取方式 |
|---|
| --product-url | ✅ 始终需要 | 用户提供产品页面URL |
| --product-image |
✅ 始终需要 | 从产品页面下载,或由用户提供 |
| --logo | ✅ 始终需要 | 从品牌网站下载或在线搜索。必须是图片文件 |
| --reference | ✅ 推荐提供 | 我们希望克隆其风格的现有广告。在线搜索或使用之前生成的图片 |
| --brand-profile | ✅ 绝不能为空 | 从目录中选择或先运行brand-analyzer。如果已知品牌,绝不能留为无品牌 |
| --prompt-profile | ✅ 始终需要 | 根据广告活动目标选择 |
| --aspect-ratio | 默认值:4:5 | 可根据平台需要更改 |
| --model | 可选 | 目录中的模特/人脸或由用户提供 |
🚨 绝不能跳过以下步骤:
- 1. 产品图片 — 从产品URL下载主要产品照片。爬虫不稳定;始终明确提供产品图片。
- 品牌标志 — 从品牌官方网站下载标志,或在线搜索{品牌名称} logo。必须是清晰的标志图片(首选PNG格式)。
- 品牌档案 — 如果目录中不存在该品牌,先运行brand-analyzer技能生成一个。已知品牌时,绝不能提交无品牌。
- 参考图片 — 搜索与我们正在生成的风格相匹配的现有广告或视觉素材。可以是之前生成的图片、品牌的广告活动或在线找到的素材。这能显著提升输出质量。
自动准备流程
当用户要求生成广告时,遵循以下流程:
- 1. 用户提供:产品URL + 品牌名称 + 目标
- 2. 检查品牌档案是否存在:
→ ls ~/clawd/ad-ready/configs/Brands/ | grep -i {品牌}
→ 如果未找到:先运行brand-analyzer技能
- 3. 下载产品图片:
→ 在浏览器中访问产品URL或获取页面
→ 查找并下载主要产品图片
→ 保存到 /tmp/ad-ready-product.jpg
- 4. 下载品牌标志:
→ 搜索{品牌名称} logo PNG或从品牌网站获取
→ 下载清晰的标志图片
→ 保存到 /tmp/ad-ready-logo.png
- 5. 查找参考图片:
→ 搜索{品牌名称} 广告或类似内容
→ 或使用之前生成的具有合适风格的广告
→ 保存到 /tmp/ad-ready-reference.jpg
- 6. 根据目标选择提示词档案:
→ 认知:品牌发现,第一印象
→ 兴趣:互动,好奇心
→ 考虑:比较,功能
→ 评估:深入分析,决策支持
→ 转化:购买意图,行动号召(最常见)
→ 留存:重新互动
→ 忠诚:品牌拥护者
→ 推荐:推荐,社区
- 7. 使用所有已填写的输入运行生成
使用方法
完整命令(推荐):
bash
COMFY
DEPLOYAPI_KEY=$KEY uv run ~/.clawdbot/skills/ad-ready/scripts/generate.py \
--product-url https://shop.example.com/product \
--product-image /tmp/product-photo.jpg \
--logo /tmp/brand-logo.png \
--reference /tmp/reference-ad.jpg \
--model models-catalog/catalog/images/model_15.jpg \
--brand-profile Nike \
--prompt-profile Master
prompt05_Conversion \
--aspect-ratio 4:5 \
--output ad-output.png
自动获取模式(自动下载产品图片和标志):
bash
COMFY
DEPLOYAPI_KEY=$KEY uv run ~/.clawdbot/skills/ad-ready/scripts/generate.py \
--product-url https://shop.example.com/product \
--brand-profile Nike \
--prompt-profile Master
prompt05_Conversion \
--auto-fetch \
--output ad-output.png
--auto-fetch标志将:
- - 从产品URL下载主要产品图片
- 搜索并下载品牌标志
- 两者都会自动上传到ComfyDeploy
API详情
端点: https://api.comfydeploy.com/api/run/deployment/queue
部署ID: e37318e6-ef21-4aab-bc90-8fb29624cd15
ComfyDeploy输入变量
以下是ComfyDeploy部署期望的精确变量名称:
| 变量 | 类型 | 描述 |
|---|
| product_url | 字符串 | 要抓取的产品页面URL |
| producto |
图片URL | 产品图片(上传到ComfyDeploy) |
| model | 图片URL | 模特/人脸参考 |
| referencia | 图片URL | 风格参考广告图片 |
| marca | 图片URL | 品牌标志图片 |
| brand_profile | 枚举 | 目录中的品牌名称 |
| prompt_profile | 枚举 | 漏斗阶段提示词 |
| aspect_ratio | 枚举 | 输出格式 |
4阶段流水线(内部工作原理)
阶段1:产品抓取
- - Gemini Flash访问产品URL
- 提取:标题、描述、功能、价格、图片
- ⚠️ 图片抓取是最脆弱的部分 — 始终手动提供产品图片
阶段2:广告简报生成(关键)
- - 使用品牌身份JSON + 产品数据 → 10点简报
- 下游所有内容都取决于简报质量
- 简报涵盖:战略目标、核心信息、视觉基调、产品角色、摄影师、艺术指导、环境、纹理、签名
阶段3:蓝图生成
- - 主提示词(按漏斗阶段)+ 简报 + 产品JSON + 关键词库 + 格式
- Gemini Flash生成完整的蓝图JSON
- 涵盖:场景、制作、平面设计、灯光、构图、材质、行动号召
阶段4:图片生成
- - Nano Banana Pro(Imagen 3.0)生成最终图片
- 使用蓝图JSON + 所有参考图片(产品、模特、标志、风格参考)
支持的参考节点
- - poseref → 强制执行特定姿势(精确复制)
- photostyleref → 复制摄影风格(⚠️ 可能过于字面化,正在优化中)
- locationref → 复制地点和调色板
品牌档案
现有目录(70+品牌):
bash
ls ~/clawd/ad-ready/configs/Brands/
.json | sed s/.\/// | sed s/\.json//
创建新品牌档案:
使用brand-analyzer技能:
bash
GEMINI
APIKEY=$KEY uv run ~/.clawdbot/skills/brand-analyzer/scripts/analyze.py \
--brand 品牌名称 --auto-save
这将生成完整的品牌身份JSON并自动保存到目录中。
提示词档案(漏斗阶段)
| 档案 | 阶段 | 最适合 |
|---|
| Masterprompt01Awareness | 认知 | 品牌发现,第一印象 |
| Masterprompt02Interest |
兴趣 | 互动,好奇心 |
| Master
prompt03_Consideration | 考虑 | 比较,功能 |
| Master
prompt04_Evaluation | 评估 | 深入分析,决策支持 |
| Master
prompt05_Conversion | 转化 | 购买意图,行动号召 |
| Master
prompt06_Retention | 留存 | 重新互动,忠诚度 |
| Master
prompt07_Loyalty | 忠诚 | 品牌拥护者 |
| Master
prompt08_Advocacy | 推荐 | 推荐,社区 |
如何选择:
- - 大多数广告 → 转化(购买意图)
- 新产品发布 → 认知
- 再营销 → 考虑或评估
- 现有客户 → 留存或忠诚
宽高比
| 比例 | 使用场景 |
|---|
| 4:5 | 默认值。 Instagram信息流,Facebook |
| 9:16 |
故事,Reels,TikTok |
| 1:1 | 方形帖子 |
| 16:9 | YouTube,横版横幅 |
| 5:4 | 替代横版 |
模特目录
模特/人脸参考