| 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.
Source: github.com/PauldeLavallaz/ads_SV
Pipeline Architecture
The pipeline runs as a ComfyUI custom node deployed on ComfyDeploy. A single ProductToAds_Manual node executes 4 phases internally:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 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 โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Phase 2: Campaign Brief (The Creative Brain)
The Brief Generator is the most critical intermediate step. It acts as a "Senior Art Director" that translates raw data into actionable creative direction using a 10-point framework:
- Strategic Objective โ Why this campaign exists (awareness/positioning/launch)
- Central Message โ One idea perceivable without text
- Visual Tone of Voice โ Register: calm/energetic/intimate/monumental
- Product Role โ Hero vs co-protagonist vs implicit presence
- Visual Language & Brand Coherence โ Non-negotiable brand codes
- Photographer & Equipment โ Photography as concept, not execution
- Extended Art Direction โ Styling, casting, poses, hair/makeup, layout
- Environment & Context โ Where and why (conceptual, never decorative)
- Texture, Material & Product Render โ How surfaces are perceived
- Final Image Signature โ Finish, grain, temporal positioning
Without the brief, the Master Prompt must guess creative strategy. With it, the Master Prompt only executes.
The brief prompt template is included at {baseDir}/configs/Brief_Generator/brief_prompt.json.
Phase 3: Master Prompts (8 Funnel Stages)
Each funnel stage has a specialized Master Prompt that generates a production-ready JSON Blueprint. All share the same internal simulation:
- ROUND -1: Brand Identity Forensics (stages 03+) โ Unified Brand Style Manifest
- ROUND 0: Fidelity Lock โ Product geometry & talent identity are IMMUTABLE
- ROUND 1: Stage Strategy โ Strategic approach specific to funnel position
- ROUND 2: Graphic Design โ UI, typography, CTA engineering
The Blueprint JSON covers: scene production, talent lock, camera perspective, subject action/pose/wardrobe, lighting, product constraints, layout architecture, typography, CTA engineering, and brand asset placement.
Master prompt files are included at {baseDir}/configs/Product_to_Ads/.
Reference Analyzer
When reference images (pose, style, location) are provided, they're analyzed with forensic precision:
- POSE_REF โ Body position, limbs, weight, gaze, micro-gestures โ replicated EXACTLY
- PHOTO_STYLE_REF โ Camera, lens, lighting, grading, grain โ derived parameters
- LOCATION_REF โ Setting, materials, colors, mood โ similar but creatively enhanced
The reference analysis prompt is at {baseDir}/configs/Reference_Analyzer/reference_analysis_prompt.txt.
โ ๏ธ CRITICAL: Required Inputs Checklist
Before running ANY ad generation, 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 | โ
RECOMMENDED | Model/talent face. Ads with talent perform much better |
๐จ NEVER Skip These Steps:
- 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. This dramatically improves output quality.
Auto-Preparation Workflow
When the user asks to generate an ad:
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. 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, trust, proof
โ Conversion: purchase intent, CTAs (most common)
โ Retention: post-purchase confidence
โ Loyalty: emotional bond, lifestyle
โ Advocacy: social amplification, community
7. RUN the generation with ALL inputs filled
Usage
Full command (recommended):
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" \
--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 {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"
List available brands:
uv run {baseDir}/scripts/generate.py --list-brands
API Details
Endpoint: https://api.comfydeploy.com/api/run/deployment/queue
Deployment ID: e37318e6-ef21-4aab-bc90-8fb29624cd15
ComfyDeploy Input Variables
| 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 (used for both pose + location) |
marca | image URL | Brand logo image |
brand_profile | enum | Brand name from catalog (70+ brands) |
prompt_profile | enum | Funnel stage master prompt |
aspect_ratio | enum | Output format (1:1, 4:5, 5:4, 9:16, etc.) |
Funnel Stages โ Strategic Detail
01 โ Awareness
Goal: Scroll-stop, curiosity, brand introduction
Reject: Generic "product on table" concepts
Strategy: Dynamic camera angles, world-building environments, high-concept creativity
CTA: Soft or optional
Visual Hierarchy: Talent โ Product โ Optional CTA
02 โ Interest
Goal: Sustained attention, introduce value proposition
Reject: Abstract visuals that hide the product
Strategy: One clear visual idea, believable micro-world hinting at use-case
CTA: Learn More, Discover, See Details
Visual Hierarchy: Talent โ Product โ Headline โ CTA
03 โ Consideration
Goal: Informed evaluation, reduce uncertainty
Reject: Pure mood storytelling, vague emotional content
Strategy: Communicate WHAT product does, ONE primary differentiator, ONE proof cue
CTA: Compare, See Details, Explore
Visual Hierarchy: Talent โ Product โ Key Benefit โ Proof Cue โ CTA
New: Adds Brand Identity Manifest to Blueprint JSON
04 โ Evaluation
Goal: Validate purchase decision, proof & trust
Reject: Pure mood, unsupportable claims, visual clutter
Strategy: One trust anchor (quality/legitimacy/authority), one proof cue (reviews/certification)
CTA: See Reviews, Verified Quality, Learn More
Visual Hierarchy: Trust Anchor โ Proof Cue โ Product โ Talent โ CTA
05 โ Conversion
Goal: Trigger decisive action, remove friction
Reject: New hesitation-inducing info, complex compositions
Strategy: One hero (product), one action, optional micro-reassurance
CTA: Buy Now, Get Yours, Complete Order (PRIMARY visual element)
Visual Hierarchy: Product โ CTA โ Optional Reassurance โ Brand โ Talent
06 โ Retention
Goal: Post-purchase confidence, reduce churn
Reject: Hard-sell, urgency, price talk
Strategy: "You made the right choice" + "Here is the next step"
CTA: Start, Set Up, Learn, Track (guidance, not purchase)
Visual Hierarchy: Confirmation โ Next Step โ Product โ Talent
07 โ Loyalty
Goal: Strengthen emotional bond over time
Reject: Sales layouts, instructional tone, aggressive CTAs
Strategy: "This brand is part of who you are" โ habitual engagement
CTA: Optional: Explore, Be Part Of, Continue
Visual Hierarchy: Brand World/Mood โ Talent (identity mirror) โ Product โ Brand
08 โ Advocacy
Goal: Turn customers into voluntary brand ambassadors
Reject: Sales language, instructional tone, forced testimonials
Strategy: Signal belonging, create share-worthy imagery, enable organic sharing
CTA: Optional or absent: Join the Movement, Part of Us
Visual Hierarchy: Mood โ Talent (identity proxy) โ Product (symbol) โ Brand
Creating New Ad Types
To create a new funnel stage or specialized ad type:
- Copy the closest existing Master Prompt from
{baseDir}/configs/Product_to_Ads/
- Redefine ROUND 1 with the new strategic objective
- Adjust ROUND 2 UI hierarchy accordingly
- Shift talent/product narrative roles
- Modify CTA philosophy and copy voice
- Keep the JSON output structure identical for pipeline compatibility
- Maintain the Fidelity Lock (ROUND 0) โ product and talent are always immutable
- Save as
Master_prompt_XX_NewStage.json โ the node auto-discovers new profiles
Key Evolution Pattern Across Stages:
| Aspect | Early (01-02) | Mid (03-05) | Late (06-08) |
|---|
| Talent role | Attention anchor | Credibility anchor | Identity mirror |
| Product role | Secondary hero | Evaluation hero | Familiar symbol |
| CTA | Soft/exploratory | Proof-led โ Decisive | Guidance โ Optional |
| Copy voice | Intriguing | Clarity, proof, action | Supportive โ Proud |
| Visual density | High-concept | Structured, scannable | Editorial, spacious |
| Environment | World-building | Context-rich | Lifestyle, intimate |
Image Input Types
Binding Images (strict fidelity โ immutable)
- talent: Face/body locked, no deviation in facial structure, ethnicity, proportions
- product_1-4: Shape, label text, material, proportions preserved 1:1
- brand_logo: UI/button style derived from logo geometry
Soft References (creative guidance)
- pose_ref: Body position replicated EXACTLY (spine, limbs, weight, gaze, micro-gestures)
- photo_style_ref: Camera/lighting/grading/grain derived (can be too literal)
- location_ref: Environment inspired but creatively enhanced
In the live deployment, the same reference image feeds both pose_ref and location_ref.
Brand Profiles
Catalog (70+ brands):
ls ~/clawd/ad-ready/configs/Brands/*.json | sed 's/.*\///' | sed 's/\.json//'
Creating new brand profiles:
Use the brand-analyzer skill:
GEMINI_API_KEY="$KEY" uv run ~/.clawdbot/skills/brand-analyzer/scripts/analyze.py \
--brand "Brand Name" --auto-save
The Brand Analyzer uses a 3-phase methodology:
- Phase 1: Official research via Google Search (canonical data: name, founding, positioning, vision, mission, tagline)
- Phase 1.1: Independent campaign research (10+ distinct campaigns via Google Images/Pinterest)
- Phase 2-3: Visual analysis โ JSON profile following the standard template
Output covers: brand_info, brand_values, target_audience, tone_of_voice, visual_identity, photography, campaign_guidelines, brand_behavior, channel_expression, compliance.
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 |
2:3 | Pinterest |
3:4 | Portrait |
Config Files Reference
The skill includes reference copies of all pipeline configuration files:
{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
โโโ Reference_Analyzer/
โโโ reference_analysis_prompt.txt # Pose/style/location analysis prompt
These configs are the canonical reference for the pipeline's behavior. The actual live configs are stored in the ComfyUI deployment at ads_SV/configs/.
Known Limitations
- Product image scraping is fragile โ always provide product images manually
- photo_style_ref can be too literal โ style reference may be replicated too closely
- Some websites block scraping โ provide product data manually when scraping fails
- Single reference = pose + location โ live deployment uses one image for both
- Gemini hallucinations โ occasional issues in complex reasoning steps
- No brief editing โ brief is generated automatically; manual override not yet supported
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 |
| Brief generation | Auto (10-point creative direction) | None |
| Creative direction | Objective-driven (brief โ blueprint) | Pack-based (camera, lens, lighting) |
| Best for | Product advertising campaigns | Fashion/lifestyle editorial photography |
| Control level | High-level (strategy-first) | Granular (every visual parameter) |
API Key
Uses ComfyDeploy API key. Set via COMFY_DEPLOY_API_KEY environment variable.
Source Repository
- GitHub: PauldeLavallaz/ads_SV
- Architecture: ComfyUI custom node package with 3 nodes:
ProductToAds_Manual โ Full manual control, single format
ProductToAds_Auto โ Auto-downloads images, generates 4 formats
BrandIdentityAnalyzer โ Analyzes brands via Gemini + Google Search