Ad Creative Variations System
Turns one proven-winning ad into a batch of Higgsfield-ready creative variations, using a strict, gated pipeline so every variation preserves what actually makes the ad win instead of guessing from scratch.
Full source spec (Seyed's canonical doc, Version 2): references/ad-creative-system-source.md. Read it once for the complete rationale; this file is the operating summary.
When to use
- The user shares a winning ad (image) and asks for variations, new angles, or scaled creative.
- The user asks to generate Higgsfield prompts from a proven ad.
- The user asks to fix a weak ad angle or generate new hooks for an existing winner.
Hard gate — Step 0
Only proceed if the ad meets the winner bar the user has set (minimum spend AND a ROAS/CPA threshold). Ask for these numbers if not given — do not run the system on unproven ads. If the ad doesn't qualify, say so and stop.
The pipeline
Winning ad
|
Prompt 1 (analyze) -> ad-creative-analyze-winner
| recommendation: PROMPT 2 / PROMPT 3 / BOTH
| text angle: STRONG or WEAK
|
WEAK? -> ad-creative-fix-weak-angle -> take the Top Pick
|
optional -> ad-creative-generate-hooks (Prompt 2 only, max 5 of 15 hooks)
|
ad-creative-new-angles (Prompt 2) and/or ad-creative-new-backgrounds (Prompt 3)
|
Generate each resulting prompt in Higgsfield (Nano Banana 2)
|
QC checklist (below) on every image
|
Save with the naming convention (below) and hand off for review/go-live
Always run in this order. Never skip Prompt 1 — every later step depends on its brief.
Step-by-step
- Analyze — use skill
ad-creative-analyze-winner on the winning ad image. Get RECOMMENDATION (PROMPT 2 / PROMPT 3 / BOTH) and TEXT ANGLE SCORE (STRONG/WEAK). Keep the full brief output — every later step needs it verbatim.
- Route:
- TEXT ANGLE is WEAK → run
ad-creative-fix-weak-angle first. Prompt 3 is not allowed on a weak text angle (never copy a weak text 5 times). Take the Top Pick forward into step 4.
- RECOMMENDATION is PROMPT 3 or BOTH, and text angle is STRONG → Prompt 3 is in play.
- RECOMMENDATION is PROMPT 2 or BOTH → Prompt 2 is in play.
- Optional hooks — if the user wants fresh headline hooks (Prompt 2 route only), run
ad-creative-generate-hooks, then pick at most 5 of the 15 to feed into Prompt 2.
- Generate variations:
- Prompt 2 in play → run
ad-creative-new-angles (5 new angles, same visual DNA, format from the brief; use the Top Pick or hooks if produced in steps 2-3).
- Prompt 3 in play → run
ad-creative-new-backgrounds (5 new backgrounds, text 100% identical to the brief).
- Both in play → run both; treat the result as 10 creatives that go live simultaneously with equal budget per creative.
- Render each resulting Higgsfield prompt via the Higgsfield skill/CLI (Nano Banana 2 model). One image per prompt.
- QC every image against the checklist below before approving. One NO = regenerate or adjust the prompt; never ship an unchecked image.
- Save + hand off using the naming convention below, and tell the user what to review before it goes live.
QC checklist (every generated image)
Naming convention
- Image:
product_YYYY-MM-DD_P2orP3_variation1-5.png (e.g. glowserum_2026-07-10_P2_3.png)
- Brief (Prompt 1 output):
product_YYYY-MM-DD_brief.txt
- Ask the user for the destination folder if not already known.
Market / language parameter
The source doc defaults to Schweizer Hochdeutsch (Swiss Standard German, no ß, always "ss"). Every sub-skill takes market/language as a parameter — ask the user which market this ad is for (or infer from context: existing client market, ad's own language) before running Prompt 1, and use that language consistently across every subsequent step. Do not silently default to Swiss German for a client whose market is different.
The 5 most common mistakes (from the source doc)
- Running Prompt 2/3/hooks without Prompt 1 first — everything builds on the brief.
- Putting new hooks into Prompt 3 — Prompt 3 keeps text 100% identical, hooks are Prompt-2-only.
- Running Prompt 3 when the text angle was WEAK — that copies a weak text 5 times.
- Skipping QC — AI garbles text more often than expected, especially umlauts/diacritics.
- Not saving with the naming convention — nobody can find anything, work gets duplicated.
Sub-skills in this family
ad-creative-analyze-winner — Prompt 1
ad-creative-fix-weak-angle — Step 2b
ad-creative-generate-hooks — Step 3 (hook prompt)
ad-creative-new-angles — Prompt 2
ad-creative-new-backgrounds — Prompt 3
1---2name: ad-creative-variations3description: Turn one proven-winning ad into a batch of new Higgsfield ad-creative variations (new angles, new backgrounds, fixed weak text, fresh hooks) using a fixed, gated 6-step system. Use when asked to "make variations of this winning ad", "scale this ad", "generate new creatives from this winner", or similar ad-creative scaling requests.4---56# Ad Creative Variations System78Turns one proven-winning ad into a batch of Higgsfield-ready creative variations, using a strict, gated pipeline so every variation preserves what actually makes the ad win instead of guessing from scratch.910Full source spec (Seyed's canonical doc, Version 2): `references/ad-creative-system-source.md`. Read it once for the complete rationale; this file is the operating summary.1112## When to use1314- The user shares a winning ad (image) and asks for variations, new angles, or scaled creative.15- The user asks to generate Higgsfield prompts from a proven ad.16- The user asks to fix a weak ad angle or generate new hooks for an existing winner.1718## Hard gate — Step 01920Only proceed if the ad meets the winner bar the user has set (minimum spend AND a ROAS/CPA threshold). Ask for these numbers if not given — do not run the system on unproven ads. If the ad doesn't qualify, say so and stop.2122## The pipeline2324```25Winning ad26 |27Prompt 1 (analyze) -> ad-creative-analyze-winner28 | recommendation: PROMPT 2 / PROMPT 3 / BOTH29 | text angle: STRONG or WEAK30 |31WEAK? -> ad-creative-fix-weak-angle -> take the Top Pick32 |33optional -> ad-creative-generate-hooks (Prompt 2 only, max 5 of 15 hooks)34 |35ad-creative-new-angles (Prompt 2) and/or ad-creative-new-backgrounds (Prompt 3)36 |37Generate each resulting prompt in Higgsfield (Nano Banana 2)38 |39QC checklist (below) on every image40 |41Save with the naming convention (below) and hand off for review/go-live42```4344Always run in this order. Never skip Prompt 1 — every later step depends on its brief.4546## Step-by-step47481. **Analyze** — use skill `ad-creative-analyze-winner` on the winning ad image. Get RECOMMENDATION (PROMPT 2 / PROMPT 3 / BOTH) and TEXT ANGLE SCORE (STRONG/WEAK). Keep the full brief output — every later step needs it verbatim.492. **Route:**50 - TEXT ANGLE is WEAK → run `ad-creative-fix-weak-angle` first. Prompt 3 is not allowed on a weak text angle (never copy a weak text 5 times). Take the Top Pick forward into step 4.51 - RECOMMENDATION is PROMPT 3 or BOTH, and text angle is STRONG → Prompt 3 is in play.52 - RECOMMENDATION is PROMPT 2 or BOTH → Prompt 2 is in play.533. **Optional hooks** — if the user wants fresh headline hooks (Prompt 2 route only), run `ad-creative-generate-hooks`, then pick at most 5 of the 15 to feed into Prompt 2.544. **Generate variations:**55 - Prompt 2 in play → run `ad-creative-new-angles` (5 new angles, same visual DNA, format from the brief; use the Top Pick or hooks if produced in steps 2-3).56 - Prompt 3 in play → run `ad-creative-new-backgrounds` (5 new backgrounds, text 100% identical to the brief).57 - Both in play → run both; treat the result as 10 creatives that go live simultaneously with equal budget per creative.585. **Render** each resulting Higgsfield prompt via the Higgsfield skill/CLI (Nano Banana 2 model). One image per prompt.596. **QC every image** against the checklist below before approving. One NO = regenerate or adjust the prompt; never ship an unchecked image.607. **Save + hand off** using the naming convention below, and tell the user what to review before it goes live.6162## QC checklist (every generated image)6364- [ ] All text is spelled correctly (compare letter by letter)65- [ ] No ß in the text if the market uses Swiss German — always "ss"66- [ ] Umlauts (ä, ö, ü) render correctly, not garbled67- [ ] Text is clearly readable (contrast, not cut off)68- [ ] Logo/brand/product present only if it was in the original69- [ ] No claims beyond what was in the original ad70- [ ] For Prompt 3 output: text is 100% identical to the original7172## Naming convention7374- Image: `product_YYYY-MM-DD_P2orP3_variation1-5.png` (e.g. `glowserum_2026-07-10_P2_3.png`)75- Brief (Prompt 1 output): `product_YYYY-MM-DD_brief.txt`76- Ask the user for the destination folder if not already known.7778## Market / language parameter7980The source doc defaults to Schweizer Hochdeutsch (Swiss Standard German, no ß, always "ss"). Every sub-skill takes market/language as a parameter — ask the user which market this ad is for (or infer from context: existing client market, ad's own language) before running Prompt 1, and use that language consistently across every subsequent step. Do not silently default to Swiss German for a client whose market is different.8182## The 5 most common mistakes (from the source doc)83841. Running Prompt 2/3/hooks without Prompt 1 first — everything builds on the brief.852. Putting new hooks into Prompt 3 — Prompt 3 keeps text 100% identical, hooks are Prompt-2-only.863. Running Prompt 3 when the text angle was WEAK — that copies a weak text 5 times.874. Skipping QC — AI garbles text more often than expected, especially umlauts/diacritics.885. Not saving with the naming convention — nobody can find anything, work gets duplicated.8990## Sub-skills in this family9192- `ad-creative-analyze-winner` — Prompt 193- `ad-creative-fix-weak-angle` — Step 2b94- `ad-creative-generate-hooks` — Step 3 (hook prompt)95- `ad-creative-new-angles` — Prompt 296- `ad-creative-new-backgrounds` — Prompt 3