format-reaction-duet
Reaction / duet split-screen ad, 20-60 s. Top half = a source panel (a real mom's public forum post rendered verbatim on a quote card (no source line, Fish 10-03), or our own clearly-original explainer card, or real footage we hold rights to); bottom half = a mom reacting, recognizing her own mornings, and turning it into vindication with the band as her answer.
Lane: cartoon-h3 narrator/dialogue for the reactor + ffmpeg vstack composite (manual today); photoreal reactor = ugc-omni (one avatar, native voice, gates G0-G4) · not built yet: 3 (see below) · source: /Users/ayden/.openclaw/workspace/skills/format-reaction-duet
Reaction duet — sources
Reference (davidaistar, read 2026-10-06)
- sU3r8z-MRZA — "Small business AI 'fake news' #duet" (short). Transcript (
txt/sU3r8z-MRZA.txt): a news-anchor voice reads a made-up "viral" police chase with a named fugitive and a real-sounding street, "surveillance footage" b-roll, posted as a TikTok duet so a small business rides the novelty; ends on "comment tutorial" growth-hack CTA. The shorts table (analysis/guide_copy_images_shorts.md) flags it: "fabricated news-anchor voiceover + fabricated surveillance footage … borders on misinformation-style engagement bait."
- Keep: the split-screen duet shape (source on top, reaction underneath) and the idea that a "found" piece of content stops the scroll faster than an ad-looking open.
- Refuse: everything fabricated. No invented news event, no anchor voice, no named person, no "surveillance footage", no outlet look, no comment-for-link CTA. Our source is a REAL mom's public words (VOC), or an original explainer that is visibly ours, or footage we own.
- HBIENgQIQVU — clone-any-ad method (
analysis/gemini_HBIENgQIQVU.md): "Multi-clip composition: split screens (podcast style top/bottom, brand owner vs judge) used as a hook, built entirely in the editor"; "generate clean, blank assets in AI and build the complexity manually"; "do not ask an AI video model to handle multiple interacting characters in one prompt … composite characters individually." Keep: the two halves are generated/rendered separately and stacked in post (our ffmpeg vstack); the video model never draws a split screen.
- diff_cloning.md §3: organic-viral format hijacking survives our 10-05 rule (non-competitor source); a competitor's ad never becomes the template. The duet is an organic format, so the shape is fair game; the content is ours.
Our receipts
- Quote crediting (dawn-statics lock 3, superseded in part by Fish 10-03 "never put 'a wife on Reddit' / 'post-purchase survey' on an ad"): verbatim, no source line on screen, never dressed as buyers; ≤ ~15 words;
voc_check.py 0 hits = my phrase, rewrite.
- Real posts, not screenshots (
feedback_native_image_scrape_first): the selection rule rejects usernames, UI chrome and recognizable faces. A quote card renders the text only.
- Testimonial loses (MAP.md §2): testimonial pairings 1.21-1.31, testimonial songs 1.26; recognition openers beat first-person ones; static payoff = independence. The reactor therefore recognizes and vindicates; she never reviews.
- Stake rows with real post IDs (
dawn-stakes.md): #3 truancy-count, #5 survey "hours late", #6 "threatening letters … put in jail" (reddit 1rfciee), #7 "they might involve cps" (reddit 199olsy), #9 smoke alarm. Recipe B statics already queue #5/#8/#9 as callouts (MAP.md §3).
- Lane limits (core §3): no lip-sync in cartoon-h3, so the listener-heavy duet is a natural fit; captions from the script (assemble 9-28 rule); Remotion
tiktok captions sit at ~68 % (apps/orange-doc/src/VideoAd.tsx CAPTION_VERTICAL_OFFSET), which fixes the crop offset 560.
- Composite verified 10-06 on dummy media in the scratchpad: make_title card → 720×640 PNG, still + real band clip segments, concat copy, vstack + seam, endcard.py over the composite: output 720×1280, 8.0 s, card applied.
- Registry roles used: Stylized video (H3-max ref, reactor), TTS (ElevenLabs), Image gen (E-card still), Exact text (PIL beats models), Cheap simple-motion i2v (optional E-card motion), Lip-sync candidate sync-3 (talking cartoon reactor, untested), photoreal via ugc-omni (gated).
starpop articles (creator's own write-ups, read 2026-10-06; ~/research/davidaistar/starpop/txt/)
- Applied:
facebook-instagram-ad-sizes-and-safe-zones + how-to-preview-a-facebook-ad-before-publishing → §10 placement gate (the article names the UI regions but gives no percentages; the 14/35/6 % Reels box is Meta's published spec, cross-checked 10-06). are-ai-generated-ads-allowed-on-meta → §11 upload hygiene (Advantage+ enhancements off, live preview day 1). meta-video-ad-metrics-hook-rate-hold-rate-ctr-cpa, how-much-budget-to-test-meta-ad-creatives → §11 read/floor lines where this format needed them.
- Read, nothing new for this format:
ai-ad-formats-guide (format ↔ job table, shot-list order, references before video: already core §4), fully-ai-generated-ads-are-here-to-stay (strategy essay), how-to-calculate-break-even-roas-for-meta-ads (proposed for core §6, not format-specific), how-to-add-correct-captions-in-any-language + how-to-fix-wrong-capcut-auto-captions (script-as-source captions = our assemble rule already; his SRT → CapCut/Premiere import maps to Remotion per core §2a).
- Not adopted: (1) "an AI actor must not voice a fictional first-person experience / fabricated testimonial" (formats guide, AI-ads article, organic-vs-paid) — conflicts with Fish's claims unlock (10-02) and our dramatized mom-narrator recipe; risk is Fish's call, recorded here only. (2) His 25-char vertical caption line cap — VideoAd chunks by its own MAX_PHRASE_CHARS 28 + two-line fit, Fish-set. (3) Organic-first discovery (
ai-organic-social-vs-paid-ads) — Dawn's message and checkout path are proven, Testing CBO is our discovery lane. (4) His model picks (Kling O3 Pro, Sora 2, P-Video) — registry roles only; untested candidates.
- Corrected 10-06: the 560 crop puts captions at ~74 % of the composite, which is inside Meta Reels' bottom 35 % band — earlier text here and in SKILL.md called it clear of the Reels UI.