⛔ NOT FOR LAUNCH — INTERNAL CAPABILITY TEST. Every ad carries an unqualified hair-growth or hair-loss claim, deliberately written without compliance qualifiers. None are cleared for Meta, Shopify or any live placement.

Wonder v20 — safe-zone corrected, restyled

10 concepts × native 4:5 and 9:16 = 20 masters. Rebuild of v19 against three operator findings.

1. You were right about the safe areas

v19 failed 10 of 10 on 9:16. Meta's unified 9:16 safe band is y 270 → 1248 (top 14% reserved, bottom 35%), sides 65px. v19's CTA sat at y1676 and the spec row at y1834 — both hundreds of pixels inside the bottom reserved zone where the Reels profile row, caption, audio attribution and CTA button stack. They would have been completely covered. Side margins were 50px against a 65px requirement.

Gatev19v20
9:16 inside Meta safe band0 / 1010 / 10
4:5 within edge margins0 / 1010 / 10
Element collisions—0
Text overflow00

9:16 is now composed natively for the middle band — not a stretched 4:5.

2. More people, real masking

v19 was the same product-on-a-podium shot ten times. v20 uses 8 newly generated model plates — different ages, skin tones and hair textures including 4C coils, box-braid takedown, a woman in her forties with natural silver, two women together, and hands-in-hair crops. Nine of ten ads now feature people.

The product is now a genuine transparent-background cutout, composited in and overlapping panel seams and photography — the layering you spotted in Obvi's work. It is no longer "placed in" a scene.

3. Typography varied

Five distinct layouts — STACK, SPLIT, PORTRAIT, BAND, TILES, two each — and three type treatments: Archivo 900 all-caps, Oswald condensed, and a mixed light/black pairing. Plus a highlight-block device on four headlines.

Still honest about what is weak: every ad still opens with the same proof pill top-left and a two-line headline beneath it. The rhythm is more varied than v19 but not yet as varied as Obvi's library, which also uses comparison splits, press-logo bars and icon grids. W01 is still the sparsest of the ten.

Method

Plates: gpt-image-2.5-flare at quality=high. Product shots via /v1/images/edits with the real bottle reference attached; cutouts with background=transparent; model plates via /v1/images/generations so no product could be invented into them. No text generated into artwork — typography is deterministic Remotion, machine-checked for overflow, collisions and safe-zone compliance.

GROW HAIR FAST.

Layout STACK · type archivo · product hero · masked cutout

Unqualified efficacy claim — not cleared to run

GOODBYE HAIR LOSS.

Layout SPLIT · type archivo · model plate M01 · masked cutout

Unqualified efficacy claim — not cleared to run

REGROW HAIR IN 2 WEEKS

Layout PORTRAIT · type oswald · model plate M03 · masked cutout

Unqualified efficacy claim — not cleared to run

STOP THE SHEDDING.

Layout BAND · type archivo · model plate W04

Unqualified efficacy claim — not cleared to run

REPAIR DAMAGED HAIR

Layout TILES · type mixed · model plate M02 · masked cutout

Unqualified efficacy claim — not cleared to run

THICKER HAIR, FAST.

Layout PORTRAIT · type archivo · model plate M07 · masked cutout

Unqualified efficacy claim — not cleared to run

GROW IT LONG.

Layout SPLIT · type mixed · model plate M08 · masked cutout

Unqualified efficacy claim — not cleared to run

FIX THINNING EDGES

Layout TILES · type oswald · model plate M05 · masked cutout

Unqualified efficacy claim — not cleared to run

LONGER HAIR IN 30 DAYS

Layout BAND · type archivo · model plate M06 · masked cutout

Unqualified efficacy claim — not cleared to run

END BREAKAGE FOR GOOD

Layout STACK · type oswald · model plate M04 · masked cutout

Unqualified efficacy claim — not cleared to run