Ad-Ready Pro
by @pauldelavallaz
Generate professional advertising images from product URLs using the Ad-Ready pipeline on ComfyDeploy. Use when the user wants to create ads for any product by providing a URL, optionally with a brand profile (70+ brands) and funnel stage targeting. Supports model/talent integration, brand-aware creative direction, and multi-format output. Differs from Morpheus (manual fashion photography) β Ad-Ready is URL-driven, brand-intelligent, and funnel-stage aware.
clawhub install ad-ready-proπ About This Skill
name: ad-ready description: Generate professional advertising images from product URLs using the Ad-Ready pipeline on ComfyDeploy. Use when the user wants to create ads for any product by providing a URL, optionally with a brand profile (70+ brands) and funnel stage targeting. Supports model/talent integration, brand-aware creative direction, and multi-format output. Differs from Morpheus (manual fashion photography) β Ad-Ready is URL-driven, brand-intelligent, and funnel-stage aware.
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 |
|-------|-----------|---------------|
| --product-url | β
ALWAYS | User provides the product page URL |
| --product-image | β
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.
2. 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).
3. 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.
4. 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:
1. User provides: product URL + brand name + objective2. 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 in browser 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. FIND reference image:
β Search for "{brand name} advertisement" or similar
β Or use a previously generated ad that has the right style
β Save to /tmp/ad-ready-reference.jpg
6. SELECT prompt profile based on objective:
β Awareness: brand discovery, first impressions
β Interest: engagement, curiosity
β Consideration: comparison, features
β Evaluation: deep dive, decision support
β Conversion: purchase intent, CTAs (most common)
β Retention: re-engagement
β Loyalty: brand advocates
β Advocacy: referral, community
7. RUN the generation with ALL inputs filled
Usage
Full command (recommended):
COMFY_DEPLOY_API_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_prompt_05_Conversion" \
--aspect-ratio "4:5" \
--output "ad-output.png"
Auto-fetch mode (downloads product image and logo automatically):
COMFY_DEPLOY_API_KEY="$KEY" uv run ~/.clawdbot/skills/ad-ready/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"
The --auto-fetch flag will:
API Details
Endpoint: https://api.comfydeploy.com/api/run/deployment/queue
Deployment ID: e37318e6-ef21-4aab-bc90-8fb29624cd15
ComfyDeploy Input Variables
These are the exact variable names the ComfyDeploy deployment expects:
| Variable | Type | Description |
|----------|------|-------------|
| product_url | string | Product page URL to scrape |
| producto | 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
Phase 2: Campaign Brief Generation (CRITICAL)
Phase 3: Blueprint Generation
Phase 4: Image Generation
Supporting Reference Nodes
pose_ref β enforce a specific pose (replicated exactly)photo_style_ref β replicate photographic style (β οΈ can be too literal, being optimized)location_ref β replicate location and color paletteBrand Profiles
Existing catalog (70+ brands):
ls ~/clawd/ad-ready/configs/Brands/*.json | sed 's/.*\///' | sed 's/\.json//'
Creating new brand profiles:
Use thebrand-analyzer skill:
GEMINI_API_KEY="$KEY" uv run ~/.clawdbot/skills/brand-analyzer/scripts/analyze.py \
--brand "Brand Name" --auto-save
This generates a full Brand Identity JSON and saves it to the catalog automatically.
Prompt Profiles (Funnel Stages)
| Profile | Stage | Best For |
|---------|-------|----------|
| Master_prompt_01_Awareness | Awareness | Brand discovery, first impressions |
| Master_prompt_02_Interest | 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:
Aspect Ratios
| Ratio | Use Case |
|-------|----------|
| 4:5 | Default. Instagram feed, Facebook |
| 9:16 | Stories, Reels, TikTok |
| 1:1 | Square posts |
| 16:9 | YouTube, landscape banners |
| 5:4 | Alternative landscape |
Model Catalog
Models for talent/face reference: ~/clawd/models-catalog/catalog/
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 2. photo_style_ref can be too literal β the style reference may be replicated too closely 3. Some websites block scraping β Armani works well, others may return incorrect data 4. Auto 4-Format is alpha β bugs and edge cases exist 5. 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
API Key
Uses ComfyDeploy API key. Set via COMFY_DEPLOY_API_KEY environment variable.
π‘ Examples
Full command (recommended):
COMFY_DEPLOY_API_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_prompt_05_Conversion" \
--aspect-ratio "4:5" \
--output "ad-output.png"
Auto-fetch mode (downloads product image and logo automatically):
COMFY_DEPLOY_API_KEY="$KEY" uv run ~/.clawdbot/skills/ad-ready/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"
The --auto-fetch flag will: