marketer-ad-variant-factory

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Ad variant factory

广告变体生成工具

Take one approved concept and explode it into 10-30 shippable ad variants for A/B testing on Meta, Google, TikTok, and Pinterest. Built for speed (parallel batch) and for direct upload to ad accounts (deterministic naming).
将一个已通过审核的创意概念扩展为10-30个可直接上线的广告变体,用于Meta、Google、TikTok和Pinterest平台的A/B测试。该工具专为高效批量处理(并行批量操作)和直接上传广告账户设计(采用确定性命名规则)。

When to Use

使用场景

  • User has a hero / concept and needs many variants across headline × visual × CTA × background for A/B tests.
  • "Fan out 30 variants of this ad for Meta" / "generate a test matrix" / "multiply this creative".
  • Prepping a new ad-set launch — needs 9:16, 1:1, 16:9 with 3-5 visual variants each.
  • Do NOT use for a single hero (use
    gen-ai generate
    ) or for cross-channel creative (use
    marketer-campaign-kit
    ). This skill is for depth on one concept, not breadth across channels.
  • 用户拥有主图/创意概念,需要针对标题×视觉元素×行动号召(CTA)×背景生成大量变体用于A/B测试。
  • 需求如“为Meta生成30版该广告的变体”、“生成测试矩阵”、“拓展该创意内容”。
  • 准备新广告组上线——需要9:16、1:1、16:9三种比例,每种比例搭配3-5个视觉变体。
  • 请勿在仅需生成单张主图时使用(请使用
    gen-ai generate
    ),也勿用于跨渠道创意生成(请使用
    marketer-campaign-kit
    )。该工具专注于深化单个创意概念,而非跨渠道拓展。

Prerequisites

前置条件

Ask up front if the brief doesn't cover it (combine into one message):
  1. Hero asset — path or URL to the approved concept image.
  2. Axes to vary — visual direction (1-5), background/scene (1-5), focal composition (close-up vs wide), optional: color treatment.
  3. Platforms / aspect ratios — Meta needs 9:16 + 1:1, TikTok is 9:16, Display wants 16:9. Confirm which.
  4. Variant count — how many total? 10-15 is typical for a first test, 30+ for broad exploration.
  5. Naming convention — what does the ad platform require (e.g.
    {campaign}_{axis}_{variant}_{size}.webp
    )?
  6. Brand guardrails — colors (hex), forbidden elements, existing brand.md?
If the user just says "a lot", default to 5 visuals × 3 ratios = 15 variants.
若需求说明未涵盖以下内容,请一次性询问用户:
  1. 主图素材——已通过审核的概念图路径或URL。
  2. 可变维度——视觉方向(1-5种)、背景/场景(1-5种)、焦点构图(特写vs全景),可选:色彩处理。
  3. 平台/宽高比——Meta需要9:16 + 1:1,TikTok为9:16,展示广告需要16:9。请确认具体需求。
  4. 变体数量——总共需要多少?首次测试通常10-15个,广泛探索则需要30+个。
  5. 命名规则——广告平台要求的命名格式(例如
    {campaign}_{axis}_{variant}_{size}.webp
    )?
  6. 品牌规范——品牌色(十六进制代码)、禁用元素、是否有现成的brand.md文档?
若用户仅说“很多”,默认按5种视觉方向×3种比例=15个变体生成。

How to Run

操作步骤

  1. Anchor on the hero. The hero is the reference image — every variant should feel like a sibling, not a cousin. Upload to Drive first if it's local so downstream jobs can reference a URL.
  2. Define the variant matrix. Keep axes explicit. 5 visual directions × 3 aspect ratios = 15 jobs. Don't mix 8 axes — the test becomes unreadable.
  3. Write the manifest. One job per variant, unique
    id
    that maps to your ad-platform naming convention. The
    image
    field references the hero.
  4. Estimate + dry-run.
    bash
    gen-ai batch run variants.json --dry-run
  5. Run at concurrency 6-8. Image variants are fast and independent — push concurrency higher than the default 3. Watch for 429s; back off to 4 if you see them.
    bash
    gen-ai batch run variants.json -c 8 -o ./ad-variants
  6. Audit and resume. Filter
    results.json
    for non-completed jobs, retry.
    bash
    gen-ai batch resume ./ad-variants
  7. Hand off. Ads platform uploaders expect a flat folder with standard naming —
    results.json
    has every path + URL for direct CSV import to Meta Ads Manager / TikTok Ads / Google Ads.
  1. 以主图为基准。主图是参考图像——所有变体都应保持风格统一,而非差异过大。如果是本地图片,请先上传至Drive,以便后续任务可以通过URL引用。
  2. 定义变体矩阵。明确可变维度。例如5种视觉方向×3种宽高比=15个任务。不要设置8个维度,否则测试结果将无法解读。
  3. 编写清单文件。每个变体对应一个任务,使用唯一的
    id
    ,与广告平台的命名规则对应。
    image
    字段需引用主图。
  4. 预估成本+试运行
    bash
    gen-ai batch run variants.json --dry-run
  5. 设置并发数6-8。图像变体生成速度快且相互独立——将并发数设置为高于默认的3。若遇到429错误,请降至4。
    bash
    gen-ai batch run variants.json -c 8 -o ./ad-variants
  6. 审核并续跑。筛选
    results.json
    中的未完成任务,重新尝试。
    bash
    gen-ai batch resume ./ad-variants
  7. 交付成果。广告平台上传工具需要一个包含标准命名文件的扁平文件夹——
    results.json
    中包含所有文件的路径和URL,可直接导入Meta Ads Manager / TikTok Ads / Google Ads的CSV模板。

Quick Reference

快速参考

Naming convention
{campaign}_{visual}_{composition}_{size}
keeps downstream uploads clean.
json
{
  "defaults": {
    "model": "recraftv4",
    "negativePrompt": "low quality, watermark, busy background",
    "imageUrls": ["https://cdn-pipeline-output.picsart.com/.../hero.webp"]
  },
  "jobs": [
    { "id": "launch_bright_closeup_9x16", "prompt": "bright daylight variant, close-up focal, warm tones", "aspectRatio": "9:16" },
    { "id": "launch_bright_closeup_1x1",  "prompt": "bright daylight variant, close-up focal, warm tones", "aspectRatio": "1:1"  },
    { "id": "launch_bright_closeup_16x9", "prompt": "bright daylight variant, close-up focal, warm tones", "aspectRatio": "16:9" },
    { "id": "launch_studio_wide_9x16",    "prompt": "studio lighting, wide shot, neutral backdrop",        "aspectRatio": "9:16" },
    { "id": "launch_studio_wide_1x1",     "prompt": "studio lighting, wide shot, neutral backdrop",        "aspectRatio": "1:1"  },
    { "id": "launch_studio_wide_16x9",    "prompt": "studio lighting, wide shot, neutral backdrop",        "aspectRatio": "16:9" },
    { "id": "launch_urban_medium_9x16",   "prompt": "urban street setting, medium shot, cinematic",        "aspectRatio": "9:16" },
    { "id": "launch_urban_medium_1x1",    "prompt": "urban street setting, medium shot, cinematic",        "aspectRatio": "1:1"  },
    { "id": "launch_urban_medium_16x9",   "prompt": "urban street setting, medium shot, cinematic",        "aspectRatio": "16:9" }
  ]
}
9 variants from 3 visual × 3 ratios. Scale to 15 or 30 by adding visual rows. Remember: no
count
field — emit one job per variant.
采用
{campaign}_{visual}_{composition}_{size}
的命名规则可简化后续上传流程。
json
{
  "defaults": {
    "model": "recraftv4",
    "negativePrompt": "low quality, watermark, busy background",
    "imageUrls": ["https://cdn-pipeline-output.picsart.com/.../hero.webp"]
  },
  "jobs": [
    { "id": "launch_bright_closeup_9x16", "prompt": "bright daylight variant, close-up focal, warm tones", "aspectRatio": "9:16" },
    { "id": "launch_bright_closeup_1x1",  "prompt": "bright daylight variant, close-up focal, warm tones", "aspectRatio": "1:1"  },
    { "id": "launch_bright_closeup_16x9", "prompt": "bright daylight variant, close-up focal, warm tones", "aspectRatio": "16:9" },
    { "id": "launch_studio_wide_9x16",    "prompt": "studio lighting, wide shot, neutral backdrop",        "aspectRatio": "9:16" },
    { "id": "launch_studio_wide_1x1",     "prompt": "studio lighting, wide shot, neutral backdrop",        "aspectRatio": "1:1"  },
    { "id": "launch_studio_wide_16x9",    "prompt": "studio lighting, wide shot, neutral backdrop",        "aspectRatio": "16:9" },
    { "id": "launch_urban_medium_9x16",   "prompt": "urban street setting, medium shot, cinematic",        "aspectRatio": "9:16" },
    { "id": "launch_urban_medium_1x1",    "prompt": "urban street setting, medium shot, cinematic",        "aspectRatio": "1:1"  },
    { "id": "launch_urban_medium_16x9",   "prompt": "urban street setting, medium shot, cinematic",        "aspectRatio": "16:9" }
  ]
}
通过3种视觉方向×3种比例生成9个变体。可通过添加视觉方向行扩展至15或30个变体。注意:不要使用
count
字段——每个变体对应一个任务。

Quick Reference

模型选择参考

Sub-taskModelWhy
Brand-consistent variants from a hero (default)
recraftv4
Strongest at keeping design language consistent across many renders
Photoreal product / lifestyle variants
flux-2-pro
Best photoreal adherence, great for Meta/TikTok product ads
Variants with readable headline text baked in
ideogram-v3
Only model that reliably renders legible copy — use when you can't overlay
Face/character continuity across variants
gemini-3-pro-image
Nano Banana Pro locks subject identity best
Background swaps on a fixed subject
gen-ai change-bg
(subcommand)
Keeps the subject pixel-identical, only swaps the scene
Ultra-cheap exploration before the flagship run
gemini-3.1-flash-image
~5x cheaper, fast — use to pick winning prompts, then regenerate with flux/recraft
Confirm IDs with
gen-ai models --mode image
.
子任务模型选择理由
基于主图生成符合品牌规范的变体(默认)
recraftv4
在多次渲染中保持设计语言一致性的表现最佳
写实风格产品/生活方式变体
flux-2-pro
写实还原度最高,非常适合Meta/TikTok产品广告
内置清晰标题文本的变体
ideogram-v3
唯一能可靠生成清晰可读文字的模型——无法叠加文字时使用
变体中保持人脸/角色一致性
gemini-3-pro-image
Nano Banana Pro在保持主体身份一致性方面表现最优
固定主体更换背景
gen-ai change-bg
(子命令)
保持主体像素完全一致,仅更换场景
旗舰版生成前低成本探索
gemini-3.1-flash-image
成本约低5倍,速度快——用于筛选优质提示词,再用flux/recraft重新生成最终版本
可通过
gen-ai models --mode image
确认模型ID。

Procedure

操作规范

  • Explicit variant axes. Decide 3-4 axes up front (visual, composition, color, setting). Scattershot prompts make A/B results unreadable.
  • Hero as reference image on every job. Use the
    image
    field in
    defaults
    — every variant inherits the brand look.
  • Deterministic naming = direct ad-platform import.
    {campaign}_{visual}_{composition}_{size}
    parses cleanly in Meta/TikTok/Google ads CSV templates.
  • Draft cheap, upgrade winners. Run 30 variants through
    gemini-3.1-flash-image
    for ~$1. Pick top 8. Regenerate those 8 through
    flux-2-pro
    or
    recraftv4
    for the final upload.
  • Text-safe zones per platform. Meta Stories reserve 250px top + 310px bottom. TikTok reserves ~300px at bottom for UI. Prompt focal into the center 60% of the canvas.
  • Concurrency 6-8 for image variants. Images are fast — higher concurrency finishes a 30-variant run in under 2 minutes. Drop to 4 if you see 429s.
  • Never overwrite silently. Unique
    id
    per variant means unique output filename — resume is safe and collision-free.
  • Never claim results in the prompt. "Viral ad, 10M views" doesn't improve output; describe framing, subject, lighting, mood.
  • 明确变体维度。提前确定3-4个维度(视觉、构图、色彩、场景)。随意的提示词会导致A/B测试结果无法解读。
  • 每个任务都引用主图作为参考。在
    defaults
    中使用
    image
    字段——所有变体都将继承品牌风格。
  • 确定性命名=直接导入广告平台
    {campaign}_{visual}_{composition}_{size}
    格式可在Meta/TikTok/Google广告CSV模板中被清晰解析。
  • 低成本草稿,升级优质变体。用
    gemini-3.1-flash-image
    生成30个变体成本约1美元。选出前8个优质变体,再用
    flux-2-pro
    recraftv4
    重新生成用于最终上传。
  • 各平台文本安全区域。Meta Stories顶部预留250px、底部预留310px。TikTok底部预留约300px用于UI元素。提示词中应指定焦点位于画布中间60%区域。
  • 图像变体生成设置并发数6-8。图像生成速度快——更高的并发数可在2分钟内完成30个变体的生成。若遇到429错误,降至4。
  • 禁止静默覆盖。每个变体使用唯一的
    id
    意味着输出文件名唯一——续跑操作安全且不会产生冲突。
  • 请勿在提示词中加入结果预期。“爆款广告,1000万浏览量”不会提升输出质量;应描述构图、主体、光线、氛围。

Pitfalls

常见误区

  • Too many axes → unreadable A/B. Vary 3-4 at most. If you change visual + composition + color + setting + headline in one variant, you can't isolate the winner.
  • Missing the hero reference. Without
    image
    in defaults, each variant drifts visually — the bundle doesn't feel like one campaign.
  • Wrong aspect ratio for the platform. TikTok is 9:16 full-bleed, Meta Reels is 9:16, Meta feed is 1:1 or 4:5 (not 1.91:1 anymore), Google Display is 300×250 / 728×90 / 160×600 — check the ad set requirements before fanning out.
  • Text in the image without localization plan. Baked-in copy blocks localization — keep ad copy in the ads-manager overlay unless it's a one-market run.
  • Running 100 variants in one go with no draft phase. 100 full-price flagship renders = wasted credits. Draft → pick → upgrade.
  • Overwriting results on re-runs. Keep output dirs per run (
    ./variants-$(date +%F-%H%M)
    ) so resume + audit work cleanly.
  • 维度过多→A/B测试结果无法解读。最多变化3-4个维度。如果在一个变体中同时更改视觉、构图、色彩、场景、标题,将无法确定哪个因素是获胜关键。
  • 未引用主图。若
    defaults
    中没有
    image
    字段,每个变体的视觉风格会逐渐偏离——整个系列不会像同一个广告活动的内容。
  • 平台宽高比错误。TikTok是9:16全屏,Meta Reels是9:16,Meta信息流是1:1或4:5(不再是1.91:1),Google展示广告是300×250 / 728×90 / 160×600——生成变体前请确认广告组要求。
  • 图像中包含文本但无本地化计划。内置文本会阻碍本地化——除非仅针对单一市场投放,否则请将广告文案放在广告管理平台的叠加层中。
  • 一次性生成100个变体且无草稿阶段。100次全价旗舰版渲染会浪费额度。应遵循草稿→筛选→升级的流程。
  • 重新运行时覆盖结果。每次运行使用单独的输出目录(例如
    ./variants-$(date +%F-%H%M)
    ),以便续跑和审核操作顺利进行。

Verification

验证方法

Run
gen-ai whoami
to confirm authentication, then re-run the failed command with
--debug
.
运行
gen-ai whoami
确认身份验证状态,然后添加
--debug
参数重新运行失败的命令。

Cost & time

成本与时间

Variant countModelCredits eachTotalWall time @ concurrency 8
9 variants
recraftv4
~2~18~45s
15 variants
recraftv4
~2~30~90s
30 variants (exploration)
gemini-3.1-flash-image
~0.5~15~2 min
30 variants (flagship)
flux-2-pro
~2~60~3 min
30 drafts + 8 upgradedmixed~30~4 min total
Always confirm with
gen-ai batch run variants.json --dry-run
and pause if the estimate exceeds the user's cap.
变体数量模型单个变体消耗额度总消耗并发数8时的耗时
9个变体
recraftv4
~2~18~45秒
15个变体
recraftv4
~2~30~90秒
30个变体(探索版)
gemini-3.1-flash-image
~0.5~15~2分钟
30个变体(旗舰版)
flux-2-pro
~2~60~3分钟
30个草稿+8个升级变体混合模型~30总计~4分钟
请始终运行
gen-ai batch run variants.json --dry-run
进行预估,若预估额度超出用户上限,请暂停操作。

See also

相关链接

  • gen-ai-use/SKILL.md
    — full CLI reference (flags, model catalog, auth)
  • gen-ai-batch/SKILL.md
    — manifest shape, concurrency tuning, resume
  • gen-ai-workflows/SKILL.md
    — general multi-step patterns
  • workflows/marketer-campaign-kit/SKILL.md
    — chain before this to establish the hero + brand look
  • workflows/marketer-localize-campaign/SKILL.md
    — chain after this to fan winning variants across markets
  • gen-ai-use/SKILL.md
    — 完整CLI参考(参数、模型目录、身份验证)
  • gen-ai-batch/SKILL.md
    — 清单文件格式、并发数调优、续跑操作
  • gen-ai-workflows/SKILL.md
    — 通用多步骤流程模式
  • workflows/marketer-campaign-kit/SKILL.md
    — 可在本工具之前使用,用于确定主图和品牌风格
  • workflows/marketer-localize-campaign/SKILL.md
    — 可在本工具之后使用,用于将优质变体拓展至不同市场