← Both skills · wildhorn-static-ads · wildhorn/failures-catalogue.md
Every try Adrien rejected (Looms) or that our own full-res QC rejected before he saw it, across run 1 (#1–#79, batches B1–B9) and the Sam batch (S1–S83, rounds R1–R4). Format: ad · try → what happened → root cause → fix that got it validated → rule. Use it as a pre-flight checklist: before sending a spec, scan the failure types below and ask "am I about to do this again?"
Numbers: run 1 needed 261 generations (258 + 3 refused) for 79 ads, 0 validated on the first try, rounds per ad 2: 51 · 3: 21 · 4: 4 · 5: 3 (6 for #35). Sam batch: 133 logged calls (125 ok, 8 refused/failed) for 83 ads; 24 ads needed a fix.
| Ad · try | What happened | Root cause | Fix → validated | Rule |
|---|---|---|---|---|
| #2 B4 | drew an ARM in the cutaway | template = GLP-1 muscle-loss product, arm = THEIR problem zone | B5: same style, belly cutaway, arm hanging naturally | A2 |
| #23 B3 | template's lab logo replaced by our product photo | didn't read the logo slot as a brand slot | B4 "Wild Bison Lab" — still THEIR brand formula ("Angry Nose Lab") → B5 our mark in the sticker | A2, C7 |
| #26 B3 | kept a hair ribbon | hair = their product symbol | B4 measuring tape (our result symbol) | A2 |
| #36 B4 | brisket in the background | meat = their product (jerky/meat) | B5 capsules flanking the jar | A2 |
| #37 B4 | powder pouring = colostrum ritual; looked like a killed bison / bison poop | copied their product's mechanism (milk/powder) | B5 rancher's board of tagged organs + living bison | A29, C14 |
| #39 B4/B5 | chocolate pour | Huel = chocolate shake | B6 recognizable organs falling into the jar | A2, E11 |
| #61 B8 | kept THEIR pineapple | pineapple = vaginal-probiotic taste joke | B9 banana from below, "She Calls It Heaven ;)" | A7 |
| #69 B8 | kept the pineapple ring | same | B9 glazed donut ring (still weak) | A7 |
| S7 R1 | (avoided) worms = their parasite mechanism | — | shock via OUR problem (melting belly) | A2, A15 |
| S18 R3 | poured organ POWDER into the beer | their product is a powder; ours is capsules | R4: capsules beside, beer poured into the pint | A30 |
| S50 R3 | rotten vs fresh orange | the orange was their sexual symbol | R4 bloated pear vs slim pear | A23, A7 |
| S47 QC | Barbie sequin skirt left on our Ken | inventory missed a prop of their customer | regenerated without it | C5 |
| S71 QC | cowboy still holding THEIR tub | same | regenerated with our capsules | C5 |
| QC B4 #38 | template's cow kept under the jar | animal not named in the swap | "a wild American bison, NOT a cow, no spots" | C16 |
| Ad · try | What happened | Fix | Rule |
|---|---|---|---|
| #2 B2 | "Not the muscle" promise | back to estrogen | A5 |
| #6 B2 | "Beef vs Spaghetti" — no belly on screen | "Abs vs. Beer Belly" | C1 |
| #23 B3 | image didn't read as a beer belly | unmistakable beer-belly cutaway | C1 |
| #57 B6 | drive only; asked for a beer-belly version → B7 tailor not readable | B9 back to the template's sexual joke, nothing added | A4, A14 |
| #68 B7 | "belly" not "beer belly" | "The beer belly fix…" | B2 |
| #74 B8 | drive only ("Leaner. Harder.") → asked beer belly → B9 "Flatter. Harder." | Adrien kept B8 in the end | A14, A26 |
| S2 R1 | GLP-1 faces | waist-up, belly = before/after | A14 |
| S10 R1 | pure libido (validated, but questioned) | rule: fuse when it fits | A14 |
| S35 R2 | "Outperform your 30s" | "Outperform your beer belly" | A14 |
| S42 R3 | bubbles didn't say beer belly (try 1 later validated) | 2-line bubbles | A24, A26 |
| S52 R3 | exploding brain | fat vs lean clay man | A24 |
| S56 R3 | "every beer night" = hangover | "losing the beer belly" | A24 |
| S57 R3 | man-only shirt-at-the-pool line | woman angle tied to his belly | A24 |
| S79 R3 try 2 | beer belly highlighted on a man-boobs template | try 1 (man boobs only) | A31, A20 |
| S80 R3 | "After-40 changes hit different" | "After 40, It Won't Leave On Its Own..." | B14, A24 |
| Ad · try | What happened | Fix | Rule |
|---|---|---|---|
| #8 B2 | "Your belly-fat routine" (doesn't exist) | B3 morning pill stack → B4 hide-the-chest routine | B18 |
| #8 B3 | routine not on an aggressive angle | B4 | B18 |
| #11 B2 | "waist size does!" — twist illogical | "…unless it's your belly!" | A27 |
| #25 B1 | "your 12 supplements" — nobody gets it | "T-BOOSTERS" | B17 |
| #29 B1 | "From farmed to wild" — product problem | "Dad bod → Bison bod" | B19 |
| #38 B4 | "12 pills every morning, belt never moved" | fat burners + buttoning my jeans | B5 |
| #43/#44 B5 | "1 notch tighter" | old jeans fit again | B9 |
| #65 B7 | "shirt off since day 21" — off for what? | "melt his beer belly before you drain him" | B6 |
| S9 R1 | "You can't farm this" — too abstract | named the thing + what it does (both tries then accepted) | B14 |
| S29 R2 | "see your belt buckle again" | "a flat belly again" | B15 |
| S80 R3 | "After-40 changes hit different" | plain sentence | B14 |
| Batch 01 all | research headlines pasted (R9) | template's own words | A6 |
| Ad · try | What happened | Fix | Rule |
|---|---|---|---|
| Batch 01 all | context line appended to every ad (R10) | removed; R12 same amount of text | B1 |
| #4 #5 #6 B1 | extra bottom line / too much text / squeezed bar | template slot count | B1 |
| #57 B8 | "Beer belly gone. The beast is back." under the image | removed | B13 |
| #65 B8 | invented "in 21 days" | no deadline | B6 |
| #22 B3 | jar added (template had no product) — validated but noted | add none | C7 |
| QC B4 #33 #35 | jar added where template has none | "NO jar / NO product" written explicitly | C7 |
| c0232 QC | guarantee written twice | once | B1 |
| #79 B8 | (opposite) review format without the signature | "- Jessica M." | B12 |
| Ad · try | What happened | Fix | Rule |
|---|---|---|---|
| #14 B1 | changed the text although same angle | kept their words | A6 |
| #16/#17/#18 B1 | rewrote winning headlines | word for word | A6 |
| #58 B6 | clay belly blob vacuumed | B7: the jar itself fat, label intact | A6, C6 |
| #62 B7 | design changed because GPT refused | B8 exact copy via Flux + composite | A6, D1 |
| #63 B7 | "Step 2: watch the dads stare" | "Step 2: let no one hit" | A6, E1 |
| S11 R2 | jar not on her head | — | D6 |
| S11 R3 | photoreal + jar on her head | the jar IS her face, painted | A21 |
| S11 R4 | regenerated the scene again | Loom 5: their photo edited + jarswap | A25 |
| S14 R2 | flipped "Lost my waistline" | copied | A19 |
| S18 R2 | capsules next to the beer | the template POURS | A17 |
| S29 R3 | style changed with the wording | try 2 as template, words only | A22, D13 |
| Ad · try | What happened | Fix | Rule |
|---|---|---|---|
| #70 B7 | shower copied (hair-loss logic) | scale scene, feet on the scale | A3, A8 |
| #75 B8 | kids' beds kept | living room on game night | A12, A13 |
| S15 R2 | moved to shoelaces (indirect) | jeans button + "FLATTER BELLIES" | A18 |
| S33 R2 | bed (sleep-product logic) | kitchen, pushing a beer away | A3 |
| S56 R4 | background doesn't fit (validated anyway) | — | A3 |
| Ad · try | What happened | Fix | Rule |
|---|---|---|---|
| #35 B4 | raw organ chunks — disgusting | B5 capsule wall | C2 |
| #35 B5 | capsule wall not instantly "bison organs" | B6 butcher chart | C15 |
| #35 B6 | clear but lost "billboard made of the product" | B7 slab of real tagged organs | C3 |
| #39 B5 | organs not recognizable | B6 heart/liver/kidney/testicle + tags | C2 |
| #40 B4 | generic capsule | B5 transparent capsule with organs | C2 |
| #70 B8 | capsule worse than B7 | B9 reuse the B7 capsule | E3, A20 |
| #70 B9 | veins on the heart — disgusting | (validated) no veins | C2 |
| #71 B8 | organs looked like meat | B9 recognizable | C2 |
| #76 B8 | capsules only | B9 "organs, organs, organs" | C2 |
| S17 R2 | brown dried organs = dung | R3 copy the template's fresh organs | C2, C14 |
| QC B7 #35 #61 | organs raw and glossy | (then) freeze-dried — later reversed by S17 | C2 history |
| Ad · try | What happened | Fix | Rule |
|---|---|---|---|
| #2 B3 | changed side, dropped the arm (ugly) | same side/framing as the template | C13 |
| #4 QC | photoreal instead of Pixar | name the render style | C5 |
| #10 B2 | lost the Mars Men illustration | B3 same style, our 48-year-old | C5 |
| #13 B1 | before/after barely different | obvious cues | C12 |
| #16 B2 | jar squashed in a narrow slot | lock proportions, resize slot | C6 |
| #16 B3/B4 | result not rewarding; orange glow forgotten | B5 small orange glow on the result | C4, C18 |
| #22 QC B3 | jar covering the hero (split organ) | jar small in a corner | C6 |
| #26 QC B4 | tape hid the wordmark | wrap off the label | C6 |
| #57 B8 | jar floating on her palm | held firmly | A8 |
| #57 B9 | jar too small (validated) | match template product size | C17 |
| #58 B7 | their product design better | — | C10 |
| #61 B8 | template style not respected | — | C5 |
| #65 B8 | flat font on her back; jar off the lounger | sunscreen bubbles (Nano Banana Pro); jar on the lounger | A10, A8 |
| #65 B9 | template quality higher (3D product, text texture) | validated | C10 |
| #73 B8 | text not centred on the eggplant | centred on its axis | C9 |
| #73 B9 | small text glued to the headline | template spacing | C9 |
| #77 B8 | two different bodies | one body cut in half | A9 |
| #77 B9 | navel not on the cut (validated) | — | A9 |
| #79 B8 | jar not in front of his face | in front of the face | A8 |
| S8 R1 | silhouettes facing away | face the result | A16 |
| S8 R2 | first silhouette not aggressive | huge belly, arm, push right | C18 |
| S33 R2 | phone badly held | natural hands | C11 |
| S55 R3 | woman should be on top (validated) | — | A8 |
| S58 R3 try 2 | lost the way she held the jar | try 1 kept | A20, A8 |
| S74 R3 | two lean stomachs | one fat, one lean | A23 |
| Ad · try | What happened | Fix |
|---|---|---|
| #10 QC B2 | copied the template's young man | "late 40s, greying" + "do NOT copy the template's person" |
| #79 B8 | young man in the sexual scene | older man |
| S55 QC | man too young | late 40s, greying, grey stubble |
| #18 QC (c0381) | women in a men's ad | men only |
| Ad · try | What happened | Fix |
|---|---|---|
| #47 B5 | good but weird | B6 lights-on bedroom ("the greatest") |
| #57 B6 | bison horn not a phallus | cake log kept |
| #62 B7 | watered down to pass GPT ("so it's shit") | Flux + composite exact copy |
| #65 B7 | "be more aggressive" | sexual "drain him" line |
| #69 B7/B8 | visual didn't carry the sexual meaning | donut ring (still weak) |
| S7 R1 | button pop vs worms | belly melting like wax |
| S8 R2 | belly not aggressive enough | bigger, pushing right |
| S24 R2 | stat too soft | benefit claim |
| Ad | What happened | Root cause | Permanent fix |
|---|---|---|---|
| c0123 / c0262 batch 01 | OpenAI blocked ("sexual") even without template | bare/soft male chest | product-only / shirt-based visuals; later Flux/Seedream + composite (D1) |
| #60 B6 | blocked ("man boobs" + bare torso) | same | "Your chest isn't done" with objects |
| #62 B7 | blocked even the template itself | same | objects only, then Flux (D1) |
| S11 R2 | fallback dropped the head jar | composite placed 1 jar, inventory said 2 | D6 lint parity check |
| S55 S58 S74 S79 R3 | Seedream full ad: garbled label, typo "beer bell belly", wrote "crossed", headline on the label | Seedream can't do text/products | D7: scene only + composite; seedream_full banned |
| S8 S18 S35 S43 R3 | "WILLDHORN" standalone logo | GPT misspells small wordmarks | D8 horn icon only; lint blocks bare WILDHORN line |
| B4 #35, B5 #35 | "WIILDHORN" / "WILLDHORN" | same | horn icon for small slots |
| S58 QC | emoji rendered as boxes in composite | font lacks emoji | D9 |
| S42 redo | "OK" ×3, no image | template was .jpg, spec said .png; crash reported OK | D10: check path, count files |
| S29 R3, S33 R3, S35 R3, S55 QC, S79 QC, S80 R4 | spec tpl pointed at another ad's template |
copy-paste slips in spec files | D13: assert tpl == sorted(templates)[num-1] |
| run 1 B1–B9 | 3 moderation blocks logged; many tries | no decode, no inventory | A1, A13 |
| Ad | What happened | Fix |
|---|---|---|
| #2 B3 | redrew a liked illustration | copy shape/side/framing |
| #23 B3 | rewrote text that batch 01 had better | start from the better version |
| #70 B8 | dropped the B7 capsule he loved | reuse B7 capsule |
| S18 R2/R3 | moved away from try 1's idea | back to try 1 + only the named change |
| S58 / S79 R3 | made a try 2 after try 1 was right | sell_override.json = try 1 |
| S42 | questioned try 1, later validated | latest verdict wins |