{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ad-ready",
    "name": "Ad-Ready",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/PauldeLavallaz/ad-ready",
    "canonicalUrl": "https://clawhub.ai/PauldeLavallaz/ad-ready",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ad-ready",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ad-ready",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "configs/Brief_Generator/brief_prompt.json",
      "configs/Product_to_Ads/Master_prompt_01_Awareness.json",
      "configs/Product_to_Ads/Master_prompt_02_Interest.json",
      "configs/Product_to_Ads/Master_prompt_03_Consideration.json",
      "configs/Product_to_Ads/Master_prompt_04_Evaluation.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/ad-ready"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/ad-ready",
    "agentPageUrl": "https://openagent3.xyz/skills/ad-ready/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ad-ready/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ad-ready/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Ad-Ready: AI Advertising Image Generator",
        "body": "Generate professional advertising images from product URLs using a 4-phase AI pipeline on ComfyDeploy.\n\nSource: github.com/PauldeLavallaz/ads_SV"
      },
      {
        "title": "Pipeline Architecture",
        "body": "The pipeline runs as a ComfyUI custom node deployed on ComfyDeploy. A single ProductToAds_Manual node executes 4 phases internally:\n\n┌─────────────────────────────────────────────────────────────┐\n│                  ProductToAds_Manual Node                     │\n│                                                             │\n│  PHASE 1: Product Scraping (Gemini Flash)                   │\n│  ─────────────────────────────────────────                   │\n│  Scrapes product URL → extracts title, description,         │\n│  features, price, materials, image URLs                      │\n│  Also scrapes HTML for high-res product images (≥1000px)    │\n│                                                             │\n│  PHASE 2: Campaign Brief Generation (Gemini Flash)          │\n│  ────────────────────────────────────────────────            │\n│  Brand Identity + Product Data + References →                │\n│  10-point Campaign Brief (creative direction)                │\n│                                                             │\n│  PHASE 3: Blueprint Generation (Gemini Flash)               │\n│  ──────────────────────────────────────────────              │\n│  Master Prompt (funnel stage) + Brief + Keywords →           │\n│  Production-Ready JSON Blueprint                             │\n│                                                             │\n│  PHASE 4: Image Generation (Nano Banana Pro / Imagen 3)     │\n│  ──────────────────────────────────────────────────          │\n│  Blueprint + all reference images → final ad image           │\n│                                                             │\n└─────────────────────────────────────────────────────────────┘"
      },
      {
        "title": "Phase 2: Campaign Brief (The Creative Brain)",
        "body": "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:\n\nStrategic Objective — Why this campaign exists (awareness/positioning/launch)\nCentral Message — One idea perceivable without text\nVisual Tone of Voice — Register: calm/energetic/intimate/monumental\nProduct Role — Hero vs co-protagonist vs implicit presence\nVisual Language & Brand Coherence — Non-negotiable brand codes\nPhotographer & Equipment — Photography as concept, not execution\nExtended Art Direction — Styling, casting, poses, hair/makeup, layout\nEnvironment & Context — Where and why (conceptual, never decorative)\nTexture, Material & Product Render — How surfaces are perceived\nFinal Image Signature — Finish, grain, temporal positioning\n\nWithout the brief, the Master Prompt must guess creative strategy. With it, the Master Prompt only executes.\n\nThe brief prompt template is included at {baseDir}/configs/Brief_Generator/brief_prompt.json."
      },
      {
        "title": "Phase 3: Master Prompts (8 Funnel Stages)",
        "body": "Each funnel stage has a specialized Master Prompt that generates a production-ready JSON Blueprint. All share the same internal simulation:\n\nROUND -1: Brand Identity Forensics (stages 03+) — Unified Brand Style Manifest\nROUND 0: Fidelity Lock — Product geometry & talent identity are IMMUTABLE\nROUND 1: Stage Strategy — Strategic approach specific to funnel position\nROUND 2: Graphic Design — UI, typography, CTA engineering\n\nThe 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.\n\nMaster prompt files are included at {baseDir}/configs/Product_to_Ads/."
      },
      {
        "title": "Reference Analyzer",
        "body": "Reference images (referencia) are optional and off by default. The pipeline generates creative direction internally from Brand Identity + Campaign Brief. Only use a reference when the user explicitly asks to clone a specific ad's style.\n\nWhen used, the reference is analyzed for pose, photographic style, and location cues."
      },
      {
        "title": "⚠️ CRITICAL: Required Inputs Checklist",
        "body": "Before running ANY ad generation, ensure these are provided:\n\nInputRequired?How to Get It--product-url✅ ALWAYSUser provides the product page URL--product-image✅ ALWAYSDownload from the product page, or user provides--brand-profile✅ NEVER EMPTYPick from catalog or run brand-analyzer first. NEVER leave as \"No Brand\" if a brand is known--prompt-profile✅ ALWAYSChoose based on campaign objective--aspect-ratioDefault: 4:5Change if needed for platform--model🔶 OPTIONALModel/talent face. Ads with talent perform much better. Empty = product-only ad (no person). When used, pick from ~/clawd/models-catalog/catalog/images/ (114 models available)--logo🔶 OPTIONALTry to find it. Use if good quality & easy to get. Skip if low-res or hard to find. Empty = bypassed--reference🔶 OPTIONAL (off)Only when user explicitly asks to clone a reference ad. Empty = bypassed--creative-brief🔶 ON-DEMANDOnly when user gives explicit creative direction. Omit to let pipeline auto-generate from brand profile--language🔶 ON-DEMANDOnly when user requests a specific language. Omit to use default (es)"
      },
      {
        "title": "🚨 NEVER Skip These Steps:",
        "body": "Product image — Download the main product photo from the product URL. The scraper is fragile; always provide a product image explicitly.\nBrand 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.\nBrand logo — TRY to find it (Clearbit, logo.dev, brand website). Use if good quality. If not found or low-res, skip it — the variable accepts empty string (bypassed server-side).\nReference — Do NOT search for references by default. Only provide when the user explicitly asks to clone a specific ad or says \"find a good ad to clone\"."
      },
      {
        "title": "Auto-Preparation Workflow",
        "body": "When the user asks to generate an ad:\n\n1. User provides: product URL + brand name + objective\n\n2. CHECK brand profile exists:\n   → ls ~/clawd/ad-ready/configs/Brands/ | grep -i \"{brand}\"\n   → If not found: run brand-analyzer skill first\n\n3. DOWNLOAD product image:\n   → Visit the product URL or fetch the page\n   → Find and download the main product image\n   → Save to /tmp/ad-ready-product.jpg\n\n4. DOWNLOAD brand logo:\n   → Search \"{brand name} logo PNG\" or fetch from brand website\n   → Download clean logo image\n   → Save to /tmp/ad-ready-logo.png\n\n5. SELECT prompt profile based on objective:\n   → 🎨 Morfeo_Creative: DEFAULT — cinematic, narrative-rich, slightly surreal. Best visuals.\n   → Awareness: brand discovery, dynamic scenes, world-building, scroll-stoppers\n   → Interest: sustained attention, micro-world hinting at use-case\n   → Consideration: feature communication, proof cues, informative\n   → Evaluation: trust, authority, reviews, certifications\n   → Conversion: ⚠️ MINIMAL by design — clean, CTA-dominant, white backgrounds\n   → Retention: post-purchase confidence, onboarding\n   → Loyalty: editorial, lifestyle, emotional bond\n   → Advocacy: share-worthy, community, belonging\n\n   DEFAULT SELECTION LOGIC:\n   - Generic \"generate an ad\" → Morfeo_Creative (09)\n   - \"awareness\" / \"brand discovery\" → Awareness (01)\n   - \"conversion\" / \"buy now\" / CTA-focused → Conversion (05)\n   - \"creative\" / \"original\" / \"surreal\" → Morfeo_Creative (09)\n   - \"lifestyle\" / \"editorial\" → Loyalty (07)\n   - When in doubt → Morfeo_Creative (09), NOT Conversion\n\n5b. SELECT MODEL (optional):\n   → If user wants a person in the ad: pick from ~/clawd/models-catalog/catalog/images/model_XX.jpg (114 available)\n   → If user wants product-only ad (no person): leave --model empty\n   → If user doesn't specify: ASK if they want a model or product-only\n   → Catalog preview: catalog.json at ~/clawd/models-catalog/catalog/catalog.json\n\n6. RUN the generation with ALL inputs filled"
      },
      {
        "title": "Full command (recommended):",
        "body": "COMFY_DEPLOY_API_KEY=\"$KEY\" uv run {baseDir}/scripts/generate.py \\\n  --product-url \"https://shop.example.com/product\" \\\n  --product-image \"/tmp/product-photo.jpg\" \\\n  --logo \"/tmp/brand-logo.png\" \\\n  --model \"models-catalog/catalog/images/model_15.jpg\" \\\n  --brand-profile \"Nike\" \\\n  --prompt-profile \"Master_prompt_05_Conversion\" \\\n  --aspect-ratio \"4:5\" \\\n  --output \"ad-output.png\""
      },
      {
        "title": "With reference (only when explicitly requested):",
        "body": "COMFY_DEPLOY_API_KEY=\"$KEY\" uv run {baseDir}/scripts/generate.py \\\n  --product-url \"https://shop.example.com/product\" \\\n  --product-image \"/tmp/product-photo.jpg\" \\\n  --reference \"/tmp/reference-ad.jpg\" \\\n  --brand-profile \"Nike\" \\\n  --prompt-profile \"Master_prompt_01_Awareness\" \\\n  --output \"ad-output.png\""
      },
      {
        "title": "Auto-fetch mode (downloads product image and logo automatically):",
        "body": "COMFY_DEPLOY_API_KEY=\"$KEY\" uv run {baseDir}/scripts/generate.py \\\n  --product-url \"https://shop.example.com/product\" \\\n  --brand-profile \"Nike\" \\\n  --prompt-profile \"Master_prompt_05_Conversion\" \\\n  --auto-fetch \\\n  --output \"ad-output.png\""
      },
      {
        "title": "List available brands:",
        "body": "uv run {baseDir}/scripts/generate.py --list-brands"
      },
      {
        "title": "API Details",
        "body": "Endpoint: https://api.comfydeploy.com/api/run/deployment/queue\nDeployment ID: e37318e6-ef21-4aab-bc90-8fb29624cd15"
      },
      {
        "title": "ComfyDeploy Input Variables",
        "body": "VariableTypeDescriptionproduct_urlstringProduct page URL to scrapeproductoimage URLProduct image (uploaded to ComfyDeploy)modelimage URLModel/talent face reference. OPTIONAL — empty = product-only ad without a person. When used, select from models catalog (~/clawd/models-catalog/catalog/images/model_XX.jpg, 114 available)referenciaimage URLStyle reference ad — OPTIONAL, empty = bypassed. Only when user asks to clone a referencemarcaimage URLBrand logo — OPTIONAL, empty = bypassed. Use if found easily in good qualitybrand_profileenumBrand name from catalog (70+ brands)prompt_profileenumFunnel stage master promptaspect_ratioenumOutput format (1:1, 4:5, 5:4, 9:16, etc.)languagestringON-DEMAND ONLY. Output language for ad copy/CTA. Default: es. Only send when the user explicitly requests a different language. Otherwise, DO NOT include this parameter — let the pipeline use its default.creative_briefstringON-DEMAND ONLY. Free-text creative direction override. Only use when the user explicitly asks for a specific creative direction, scene, mood, or concept. Otherwise, DO NOT include this parameter — let the pipeline generate its own brief from the Brand Identity profile automatically."
      },
      {
        "title": "01 — Awareness",
        "body": "Goal: Scroll-stop, curiosity, brand introduction\nReject: Generic \"product on table\" concepts\nStrategy: Dynamic camera angles, world-building environments, high-concept creativity\nCTA: Soft or optional\nVisual Hierarchy: Talent → Product → Optional CTA"
      },
      {
        "title": "02 — Interest",
        "body": "Goal: Sustained attention, introduce value proposition\nReject: Abstract visuals that hide the product\nStrategy: One clear visual idea, believable micro-world hinting at use-case\nCTA: Learn More, Discover, See Details\nVisual Hierarchy: Talent → Product → Headline → CTA"
      },
      {
        "title": "03 — Consideration",
        "body": "Goal: Informed evaluation, reduce uncertainty\nReject: Pure mood storytelling, vague emotional content\nStrategy: Communicate WHAT product does, ONE primary differentiator, ONE proof cue\nCTA: Compare, See Details, Explore\nVisual Hierarchy: Talent → Product → Key Benefit → Proof Cue → CTA\nNew: Adds Brand Identity Manifest to Blueprint JSON"
      },
      {
        "title": "04 — Evaluation",
        "body": "Goal: Validate purchase decision, proof & trust\nReject: Pure mood, unsupportable claims, visual clutter\nStrategy: One trust anchor (quality/legitimacy/authority), one proof cue (reviews/certification)\nCTA: See Reviews, Verified Quality, Learn More\nVisual Hierarchy: Trust Anchor → Proof Cue → Product → Talent → CTA"
      },
      {
        "title": "05 — Conversion",
        "body": "Goal: Trigger decisive action, remove friction\nReject: New hesitation-inducing info, complex compositions\nStrategy: One hero (product), one action, optional micro-reassurance\nCTA: Buy Now, Get Yours, Complete Order (PRIMARY visual element)\nVisual Hierarchy: Product → CTA → Optional Reassurance → Brand → Talent"
      },
      {
        "title": "06 — Retention",
        "body": "Goal: Post-purchase confidence, reduce churn\nReject: Hard-sell, urgency, price talk\nStrategy: \"You made the right choice\" + \"Here is the next step\"\nCTA: Start, Set Up, Learn, Track (guidance, not purchase)\nVisual Hierarchy: Confirmation → Next Step → Product → Talent"
      },
      {
        "title": "07 — Loyalty",
        "body": "Goal: Strengthen emotional bond over time\nReject: Sales layouts, instructional tone, aggressive CTAs\nStrategy: \"This brand is part of who you are\" — habitual engagement\nCTA: Optional: Explore, Be Part Of, Continue\nVisual Hierarchy: Brand World/Mood → Talent (identity mirror) → Product → Brand"
      },
      {
        "title": "08 — Advocacy",
        "body": "Goal: Turn customers into voluntary brand ambassadors\nReject: Sales language, instructional tone, forced testimonials\nStrategy: Signal belonging, create share-worthy imagery, enable organic sharing\nCTA: Optional or absent: Join the Movement, Part of Us\nVisual Hierarchy: Mood → Talent (identity proxy) → Product (symbol) → Brand"
      },
      {
        "title": "09 — Morfeo Creative 🎨 (DEFAULT)",
        "body": "Goal: Maximum visual impact, narrative-rich, cinematic quality\nReject: White backgrounds, studio shots, \"product on table\", generic poses, sterile compositions\nStrategy: Build immersive WORLDS, not backgrounds. Talent is a CHARACTER with emotion and action. Subtle surreal/magical elements elevate the mundane. Think movie stills + magical realism + high fashion.\nCTA: Present but integrated into scene aesthetics\nVisual Hierarchy: Scene → Talent (as character) → Product (organic in scene) → CTA\nCreative Philosophy:\n\nNEVER a white background or studio\nEvery image has depth (foreground/midground/background layers)\nLighting is narrative (golden hour, practicals, colored atmosphere)\nOne subtle surreal element per scene (impossible beauty, dream-logic detail)\nWardrobe is costume design, not \"simple clothes\"\nCamera has personality (specific film stocks, intentional imperfections)"
      },
      {
        "title": "Creating New Ad Types",
        "body": "To create a new funnel stage or specialized ad type:\n\nCopy the closest existing Master Prompt from {baseDir}/configs/Product_to_Ads/\nRedefine ROUND 1 with the new strategic objective\nAdjust ROUND 2 UI hierarchy accordingly\nShift talent/product narrative roles\nModify CTA philosophy and copy voice\nKeep the JSON output structure identical for pipeline compatibility\nMaintain the Fidelity Lock (ROUND 0) — product and talent are always immutable\nSave as Master_prompt_XX_NewStage.json — the node auto-discovers new profiles"
      },
      {
        "title": "Key Evolution Pattern Across Stages:",
        "body": "AspectEarly (01-02)Mid (03-05)Late (06-08)Morfeo (09)Talent roleAttention anchorCredibility anchorIdentity mirrorCharacter in storyProduct roleSecondary heroEvaluation heroFamiliar symbolOrganic in worldCTASoft/exploratoryProof-led → DecisiveGuidance → OptionalIntegrated/aestheticCopy voiceIntriguingClarity, proof, actionSupportive → ProudEvocative/poeticVisual densityHigh-conceptStructured, scannableEditorial, spaciousCinematic/layeredEnvironmentWorld-buildingContext-richLifestyleImmersive + surrealEnvironmentWorld-buildingContext-richLifestyle, intimate"
      },
      {
        "title": "Binding Images (strict fidelity — immutable)",
        "body": "talent: Face/body locked, no deviation in facial structure, ethnicity, proportions\nproduct_1-4: Shape, label text, material, proportions preserved 1:1\nbrand_logo: UI/button style derived from logo geometry"
      },
      {
        "title": "Soft References (optional, off by default)",
        "body": "Reference image input (referencia) is optional. When provided, it's analyzed for:\n\nPOSE_REF → Body position, limbs, weight, gaze, micro-gestures\nPHOTO_STYLE_REF → Camera, lens, lighting, grading, grain\nLOCATION_REF → Setting, materials, colors, mood\n\nWhen empty (default), creative direction comes from Brand Identity + Campaign Brief alone."
      },
      {
        "title": "Catalog (70+ brands):",
        "body": "ls ~/clawd/ad-ready/configs/Brands/*.json | sed 's/.*\\///' | sed 's/\\.json//'"
      },
      {
        "title": "Creating new brand profiles:",
        "body": "Use the brand-analyzer skill:\n\nGEMINI_API_KEY=\"$KEY\" uv run ~/.clawdbot/skills/brand-analyzer/scripts/analyze.py \\\n  --brand \"Brand Name\" --auto-save\n\nThe Brand Analyzer uses a 3-phase methodology:\n\nPhase 1: Official research via Google Search (canonical data: name, founding, positioning, vision, mission, tagline)\nPhase 1.1: Independent campaign research (10+ distinct campaigns via Google Images/Pinterest)\nPhase 2-3: Visual analysis → JSON profile following the standard template\n\nOutput covers: brand_info, brand_values, target_audience, tone_of_voice, visual_identity, photography, campaign_guidelines, brand_behavior, channel_expression, compliance."
      },
      {
        "title": "Aspect Ratios",
        "body": "RatioUse Case4:5Default. Instagram feed, Facebook9:16Stories, Reels, TikTok1:1Square posts16:9YouTube, landscape banners5:4Alternative landscape2:3Pinterest3:4Portrait"
      },
      {
        "title": "Config Files Reference",
        "body": "The skill includes reference copies of all pipeline configuration files:\n\n{baseDir}/configs/\n├── Brief_Generator/\n│   └── brief_prompt.json              # 10-point campaign brief framework\n├── Product_to_Ads/\n│   ├── Master_prompt_01_Awareness.json\n│   ├── Master_prompt_02_Interest.json\n│   ├── Master_prompt_03_Consideration.json\n│   ├── Master_prompt_04_Evaluation.json\n│   ├── Master_prompt_05_Conversion.json\n│   ├── Master_prompt_06_Retention.json\n│   ├── Master_prompt_07_Loyalty.json\n│   ├── Master_prompt_08_Advocacy.json\n│   └── Master_prompt_09_Morfeo_Creative.json  # 🎨 DEFAULT — cinematic, surreal, narrative\n└── Reference_Analyzer/\n    └── reference_analysis_prompt.txt   # Pose/style/location analysis prompt\n\nThese configs are the canonical reference for the pipeline's behavior. The actual live configs are stored in the ComfyUI deployment at ads_SV/configs/."
      },
      {
        "title": "Known Limitations",
        "body": "Product image scraping is fragile — always provide product images manually\nSome websites block scraping — provide product data manually when scraping fails\nGemini hallucinations — occasional issues in complex reasoning steps\nNo brief editing — brief is generated automatically; manual override not yet supported\nLogo & reference are optional — both use server-side bypass; empty string = not used. Logo: use if good quality. Reference: only on explicit request"
      },
      {
        "title": "Ad-Ready vs Morpheus",
        "body": "FeatureAd-ReadyMorpheusInputProduct URL (auto-scrapes)Manual product imageBrand intelligence70+ brand profilesNoneFunnel targeting8 funnel stagesNoneBrief generationAuto (10-point creative direction)NoneCreative directionObjective-driven (brief → blueprint)Pack-based (camera, lens, lighting)Best forProduct advertising campaignsFashion/lifestyle editorial photographyControl levelHigh-level (strategy-first)Granular (every visual parameter)"
      },
      {
        "title": "API Key",
        "body": "Uses ComfyDeploy API key. Set via COMFY_DEPLOY_API_KEY environment variable."
      },
      {
        "title": "Source Repository",
        "body": "GitHub: PauldeLavallaz/ads_SV\nArchitecture: ComfyUI custom node package with 3 nodes:\n\nProductToAds_Manual — Full manual control, single format\nProductToAds_Auto — Auto-downloads images, generates 4 formats\nBrandIdentityAnalyzer — Analyzes brands via Gemini + Google Search"
      }
    ],
    "body": "Ad-Ready: AI Advertising Image Generator\n\nGenerate professional advertising images from product URLs using a 4-phase AI pipeline on ComfyDeploy.\n\nSource: github.com/PauldeLavallaz/ads_SV\n\nPipeline Architecture\n\nThe pipeline runs as a ComfyUI custom node deployed on ComfyDeploy. A single ProductToAds_Manual node executes 4 phases internally:\n\n┌─────────────────────────────────────────────────────────────┐\n│                  ProductToAds_Manual Node                     │\n│                                                             │\n│  PHASE 1: Product Scraping (Gemini Flash)                   │\n│  ─────────────────────────────────────────                   │\n│  Scrapes product URL → extracts title, description,         │\n│  features, price, materials, image URLs                      │\n│  Also scrapes HTML for high-res product images (≥1000px)    │\n│                                                             │\n│  PHASE 2: Campaign Brief Generation (Gemini Flash)          │\n│  ────────────────────────────────────────────────            │\n│  Brand Identity + Product Data + References →                │\n│  10-point Campaign Brief (creative direction)                │\n│                                                             │\n│  PHASE 3: Blueprint Generation (Gemini Flash)               │\n│  ──────────────────────────────────────────────              │\n│  Master Prompt (funnel stage) + Brief + Keywords →           │\n│  Production-Ready JSON Blueprint                             │\n│                                                             │\n│  PHASE 4: Image Generation (Nano Banana Pro / Imagen 3)     │\n│  ──────────────────────────────────────────────────          │\n│  Blueprint + all reference images → final ad image           │\n│                                                             │\n└─────────────────────────────────────────────────────────────┘\n\nPhase 2: Campaign Brief (The Creative Brain)\n\nThe 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:\n\nStrategic Objective — Why this campaign exists (awareness/positioning/launch)\nCentral Message — One idea perceivable without text\nVisual Tone of Voice — Register: calm/energetic/intimate/monumental\nProduct Role — Hero vs co-protagonist vs implicit presence\nVisual Language & Brand Coherence — Non-negotiable brand codes\nPhotographer & Equipment — Photography as concept, not execution\nExtended Art Direction — Styling, casting, poses, hair/makeup, layout\nEnvironment & Context — Where and why (conceptual, never decorative)\nTexture, Material & Product Render — How surfaces are perceived\nFinal Image Signature — Finish, grain, temporal positioning\n\nWithout the brief, the Master Prompt must guess creative strategy. With it, the Master Prompt only executes.\n\nThe brief prompt template is included at {baseDir}/configs/Brief_Generator/brief_prompt.json.\n\nPhase 3: Master Prompts (8 Funnel Stages)\n\nEach funnel stage has a specialized Master Prompt that generates a production-ready JSON Blueprint. All share the same internal simulation:\n\nROUND -1: Brand Identity Forensics (stages 03+) — Unified Brand Style Manifest\nROUND 0: Fidelity Lock — Product geometry & talent identity are IMMUTABLE\nROUND 1: Stage Strategy — Strategic approach specific to funnel position\nROUND 2: Graphic Design — UI, typography, CTA engineering\n\nThe 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.\n\nMaster prompt files are included at {baseDir}/configs/Product_to_Ads/.\n\nReference Analyzer\n\nReference images (referencia) are optional and off by default. The pipeline generates creative direction internally from Brand Identity + Campaign Brief. Only use a reference when the user explicitly asks to clone a specific ad's style.\n\nWhen used, the reference is analyzed for pose, photographic style, and location cues.\n\n⚠️ CRITICAL: Required Inputs Checklist\n\nBefore running ANY ad generation, ensure these are provided:\n\nInput\tRequired?\tHow to Get It\n--product-url\t✅ ALWAYS\tUser provides the product page URL\n--product-image\t✅ ALWAYS\tDownload from the product page, or user provides\n--brand-profile\t✅ NEVER EMPTY\tPick from catalog or run brand-analyzer first. NEVER leave as \"No Brand\" if a brand is known\n--prompt-profile\t✅ ALWAYS\tChoose based on campaign objective\n--aspect-ratio\tDefault: 4:5\tChange if needed for platform\n--model\t🔶 OPTIONAL\tModel/talent face. Ads with talent perform much better. Empty = product-only ad (no person). When used, pick from ~/clawd/models-catalog/catalog/images/ (114 models available)\n--logo\t🔶 OPTIONAL\tTry to find it. Use if good quality & easy to get. Skip if low-res or hard to find. Empty = bypassed\n--reference\t🔶 OPTIONAL (off)\tOnly when user explicitly asks to clone a reference ad. Empty = bypassed\n--creative-brief\t🔶 ON-DEMAND\tOnly when user gives explicit creative direction. Omit to let pipeline auto-generate from brand profile\n--language\t🔶 ON-DEMAND\tOnly when user requests a specific language. Omit to use default (es)\n🚨 NEVER Skip These Steps:\nProduct image — Download the main product photo from the product URL. The scraper is fragile; always provide a product image explicitly.\nBrand 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.\nBrand logo — TRY to find it (Clearbit, logo.dev, brand website). Use if good quality. If not found or low-res, skip it — the variable accepts empty string (bypassed server-side).\nReference — Do NOT search for references by default. Only provide when the user explicitly asks to clone a specific ad or says \"find a good ad to clone\".\nAuto-Preparation Workflow\n\nWhen the user asks to generate an ad:\n\n1. User provides: product URL + brand name + objective\n\n2. CHECK brand profile exists:\n   → ls ~/clawd/ad-ready/configs/Brands/ | grep -i \"{brand}\"\n   → If not found: run brand-analyzer skill first\n\n3. DOWNLOAD product image:\n   → Visit the product URL or fetch the page\n   → Find and download the main product image\n   → Save to /tmp/ad-ready-product.jpg\n\n4. DOWNLOAD brand logo:\n   → Search \"{brand name} logo PNG\" or fetch from brand website\n   → Download clean logo image\n   → Save to /tmp/ad-ready-logo.png\n\n5. SELECT prompt profile based on objective:\n   → 🎨 Morfeo_Creative: DEFAULT — cinematic, narrative-rich, slightly surreal. Best visuals.\n   → Awareness: brand discovery, dynamic scenes, world-building, scroll-stoppers\n   → Interest: sustained attention, micro-world hinting at use-case\n   → Consideration: feature communication, proof cues, informative\n   → Evaluation: trust, authority, reviews, certifications\n   → Conversion: ⚠️ MINIMAL by design — clean, CTA-dominant, white backgrounds\n   → Retention: post-purchase confidence, onboarding\n   → Loyalty: editorial, lifestyle, emotional bond\n   → Advocacy: share-worthy, community, belonging\n\n   DEFAULT SELECTION LOGIC:\n   - Generic \"generate an ad\" → Morfeo_Creative (09)\n   - \"awareness\" / \"brand discovery\" → Awareness (01)\n   - \"conversion\" / \"buy now\" / CTA-focused → Conversion (05)\n   - \"creative\" / \"original\" / \"surreal\" → Morfeo_Creative (09)\n   - \"lifestyle\" / \"editorial\" → Loyalty (07)\n   - When in doubt → Morfeo_Creative (09), NOT Conversion\n\n5b. SELECT MODEL (optional):\n   → If user wants a person in the ad: pick from ~/clawd/models-catalog/catalog/images/model_XX.jpg (114 available)\n   → If user wants product-only ad (no person): leave --model empty\n   → If user doesn't specify: ASK if they want a model or product-only\n   → Catalog preview: catalog.json at ~/clawd/models-catalog/catalog/catalog.json\n\n6. RUN the generation with ALL inputs filled\n\nUsage\nFull command (recommended):\nCOMFY_DEPLOY_API_KEY=\"$KEY\" uv run {baseDir}/scripts/generate.py \\\n  --product-url \"https://shop.example.com/product\" \\\n  --product-image \"/tmp/product-photo.jpg\" \\\n  --logo \"/tmp/brand-logo.png\" \\\n  --model \"models-catalog/catalog/images/model_15.jpg\" \\\n  --brand-profile \"Nike\" \\\n  --prompt-profile \"Master_prompt_05_Conversion\" \\\n  --aspect-ratio \"4:5\" \\\n  --output \"ad-output.png\"\n\nWith reference (only when explicitly requested):\nCOMFY_DEPLOY_API_KEY=\"$KEY\" uv run {baseDir}/scripts/generate.py \\\n  --product-url \"https://shop.example.com/product\" \\\n  --product-image \"/tmp/product-photo.jpg\" \\\n  --reference \"/tmp/reference-ad.jpg\" \\\n  --brand-profile \"Nike\" \\\n  --prompt-profile \"Master_prompt_01_Awareness\" \\\n  --output \"ad-output.png\"\n\nAuto-fetch mode (downloads product image and logo automatically):\nCOMFY_DEPLOY_API_KEY=\"$KEY\" uv run {baseDir}/scripts/generate.py \\\n  --product-url \"https://shop.example.com/product\" \\\n  --brand-profile \"Nike\" \\\n  --prompt-profile \"Master_prompt_05_Conversion\" \\\n  --auto-fetch \\\n  --output \"ad-output.png\"\n\nList available brands:\nuv run {baseDir}/scripts/generate.py --list-brands\n\nAPI Details\n\nEndpoint: https://api.comfydeploy.com/api/run/deployment/queue Deployment ID: e37318e6-ef21-4aab-bc90-8fb29624cd15\n\nComfyDeploy Input Variables\nVariable\tType\tDescription\nproduct_url\tstring\tProduct page URL to scrape\nproducto\timage URL\tProduct image (uploaded to ComfyDeploy)\nmodel\timage URL\tModel/talent face reference. OPTIONAL — empty = product-only ad without a person. When used, select from models catalog (~/clawd/models-catalog/catalog/images/model_XX.jpg, 114 available)\nreferencia\timage URL\tStyle reference ad — OPTIONAL, empty = bypassed. Only when user asks to clone a reference\nmarca\timage URL\tBrand logo — OPTIONAL, empty = bypassed. Use if found easily in good quality\nbrand_profile\tenum\tBrand name from catalog (70+ brands)\nprompt_profile\tenum\tFunnel stage master prompt\naspect_ratio\tenum\tOutput format (1:1, 4:5, 5:4, 9:16, etc.)\nlanguage\tstring\tON-DEMAND ONLY. Output language for ad copy/CTA. Default: es. Only send when the user explicitly requests a different language. Otherwise, DO NOT include this parameter — let the pipeline use its default.\ncreative_brief\tstring\tON-DEMAND ONLY. Free-text creative direction override. Only use when the user explicitly asks for a specific creative direction, scene, mood, or concept. Otherwise, DO NOT include this parameter — let the pipeline generate its own brief from the Brand Identity profile automatically.\nFunnel Stages — Strategic Detail\n01 — Awareness\n\nGoal: 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\n\n02 — Interest\n\nGoal: 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\n\n03 — Consideration\n\nGoal: 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\n\n04 — Evaluation\n\nGoal: 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\n\n05 — Conversion\n\nGoal: 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\n\n06 — Retention\n\nGoal: 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\n\n07 — Loyalty\n\nGoal: 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\n\n08 — Advocacy\n\nGoal: 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\n\n09 — Morfeo Creative 🎨 (DEFAULT)\n\nGoal: Maximum visual impact, narrative-rich, cinematic quality Reject: White backgrounds, studio shots, \"product on table\", generic poses, sterile compositions Strategy: Build immersive WORLDS, not backgrounds. Talent is a CHARACTER with emotion and action. Subtle surreal/magical elements elevate the mundane. Think movie stills + magical realism + high fashion. CTA: Present but integrated into scene aesthetics Visual Hierarchy: Scene → Talent (as character) → Product (organic in scene) → CTA Creative Philosophy:\n\nNEVER a white background or studio\nEvery image has depth (foreground/midground/background layers)\nLighting is narrative (golden hour, practicals, colored atmosphere)\nOne subtle surreal element per scene (impossible beauty, dream-logic detail)\nWardrobe is costume design, not \"simple clothes\"\nCamera has personality (specific film stocks, intentional imperfections)\nCreating New Ad Types\n\nTo create a new funnel stage or specialized ad type:\n\nCopy the closest existing Master Prompt from {baseDir}/configs/Product_to_Ads/\nRedefine ROUND 1 with the new strategic objective\nAdjust ROUND 2 UI hierarchy accordingly\nShift talent/product narrative roles\nModify CTA philosophy and copy voice\nKeep the JSON output structure identical for pipeline compatibility\nMaintain the Fidelity Lock (ROUND 0) — product and talent are always immutable\nSave as Master_prompt_XX_NewStage.json — the node auto-discovers new profiles\nKey Evolution Pattern Across Stages:\nAspect\tEarly (01-02)\tMid (03-05)\tLate (06-08)\tMorfeo (09)\nTalent role\tAttention anchor\tCredibility anchor\tIdentity mirror\tCharacter in story\nProduct role\tSecondary hero\tEvaluation hero\tFamiliar symbol\tOrganic in world\nCTA\tSoft/exploratory\tProof-led → Decisive\tGuidance → Optional\tIntegrated/aesthetic\nCopy voice\tIntriguing\tClarity, proof, action\tSupportive → Proud\tEvocative/poetic\nVisual density\tHigh-concept\tStructured, scannable\tEditorial, spacious\tCinematic/layered\nEnvironment\tWorld-building\tContext-rich\tLifestyle\tImmersive + surreal\nEnvironment\tWorld-building\tContext-rich\tLifestyle, intimate\t\nImage Input Types\nBinding Images (strict fidelity — immutable)\ntalent: Face/body locked, no deviation in facial structure, ethnicity, proportions\nproduct_1-4: Shape, label text, material, proportions preserved 1:1\nbrand_logo: UI/button style derived from logo geometry\nSoft References (optional, off by default)\n\nReference image input (referencia) is optional. When provided, it's analyzed for:\n\nPOSE_REF → Body position, limbs, weight, gaze, micro-gestures\nPHOTO_STYLE_REF → Camera, lens, lighting, grading, grain\nLOCATION_REF → Setting, materials, colors, mood\n\nWhen empty (default), creative direction comes from Brand Identity + Campaign Brief alone.\n\nBrand Profiles\nCatalog (70+ brands):\nls ~/clawd/ad-ready/configs/Brands/*.json | sed 's/.*\\///' | sed 's/\\.json//'\n\nCreating new brand profiles:\n\nUse the brand-analyzer skill:\n\nGEMINI_API_KEY=\"$KEY\" uv run ~/.clawdbot/skills/brand-analyzer/scripts/analyze.py \\\n  --brand \"Brand Name\" --auto-save\n\n\nThe Brand Analyzer uses a 3-phase methodology:\n\nPhase 1: Official research via Google Search (canonical data: name, founding, positioning, vision, mission, tagline)\nPhase 1.1: Independent campaign research (10+ distinct campaigns via Google Images/Pinterest)\nPhase 2-3: Visual analysis → JSON profile following the standard template\n\nOutput covers: brand_info, brand_values, target_audience, tone_of_voice, visual_identity, photography, campaign_guidelines, brand_behavior, channel_expression, compliance.\n\nAspect Ratios\nRatio\tUse Case\n4:5\tDefault. Instagram feed, Facebook\n9:16\tStories, Reels, TikTok\n1:1\tSquare posts\n16:9\tYouTube, landscape banners\n5:4\tAlternative landscape\n2:3\tPinterest\n3:4\tPortrait\nConfig Files Reference\n\nThe skill includes reference copies of all pipeline configuration files:\n\n{baseDir}/configs/\n├── Brief_Generator/\n│   └── brief_prompt.json              # 10-point campaign brief framework\n├── Product_to_Ads/\n│   ├── Master_prompt_01_Awareness.json\n│   ├── Master_prompt_02_Interest.json\n│   ├── Master_prompt_03_Consideration.json\n│   ├── Master_prompt_04_Evaluation.json\n│   ├── Master_prompt_05_Conversion.json\n│   ├── Master_prompt_06_Retention.json\n│   ├── Master_prompt_07_Loyalty.json\n│   ├── Master_prompt_08_Advocacy.json\n│   └── Master_prompt_09_Morfeo_Creative.json  # 🎨 DEFAULT — cinematic, surreal, narrative\n└── Reference_Analyzer/\n    └── reference_analysis_prompt.txt   # Pose/style/location analysis prompt\n\n\nThese configs are the canonical reference for the pipeline's behavior. The actual live configs are stored in the ComfyUI deployment at ads_SV/configs/.\n\nKnown Limitations\nProduct image scraping is fragile — always provide product images manually\nSome websites block scraping — provide product data manually when scraping fails\nGemini hallucinations — occasional issues in complex reasoning steps\nNo brief editing — brief is generated automatically; manual override not yet supported\nLogo & reference are optional — both use server-side bypass; empty string = not used. Logo: use if good quality. Reference: only on explicit request\nAd-Ready vs Morpheus\nFeature\tAd-Ready\tMorpheus\nInput\tProduct URL (auto-scrapes)\tManual product image\nBrand intelligence\t70+ brand profiles\tNone\nFunnel targeting\t8 funnel stages\tNone\nBrief generation\tAuto (10-point creative direction)\tNone\nCreative direction\tObjective-driven (brief → blueprint)\tPack-based (camera, lens, lighting)\nBest for\tProduct advertising campaigns\tFashion/lifestyle editorial photography\nControl level\tHigh-level (strategy-first)\tGranular (every visual parameter)\nAPI Key\n\nUses ComfyDeploy API key. Set via COMFY_DEPLOY_API_KEY environment variable.\n\nSource Repository\nGitHub: PauldeLavallaz/ads_SV\nArchitecture: ComfyUI custom node package with 3 nodes:\nProductToAds_Manual — Full manual control, single format\nProductToAds_Auto — Auto-downloads images, generates 4 formats\nBrandIdentityAnalyzer — Analyzes brands via Gemini + Google Search"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/PauldeLavallaz/ad-ready",
    "publisherUrl": "https://clawhub.ai/PauldeLavallaz/ad-ready",
    "owner": "PauldeLavallaz",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ad-ready",
    "downloadUrl": "https://openagent3.xyz/downloads/ad-ready",
    "agentUrl": "https://openagent3.xyz/skills/ad-ready/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ad-ready/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ad-ready/agent.md"
  }
}