Pipeline Hub

format-ai-actor-demo

Short (15-35 s) TikTok-Shop-style product demo ad: an AI actor says a callout to camera, names the problem in one line, the band is demoed (ugc-omni product gate, real footage as fallback), then the result and a guarantee CTA. Recipe B (callout, her burden, guarantee/science authority), never a testimonial.

Lane: — · not built yet: 3 (see below) · source: /Users/ayden/.openclaw/workspace/skills/format-ai-actor-demo

SKILL.mdbeat-sheet.mdsources.mdEvals (7)Learnings (15)
1. Read first2. When to use / when not3. The format4. Why it sells5. Beat sheet (full rules + word budget in references/beat-sheet.md)6. Pack spec (ugc-omni `job.json`, one job per ad)7. Visual grammar8. Audio9. Production (ugc-omni; every paid step dry-runs until `--spend`)10. Gates & QA checklist (ugc-omni G0-G4; every gate is Fish's)11. Variants & test plan12. Failure modes13. Sources

format-ai-actor-demo: she calls it out, the real band proves it

1. Read first

2. When to use / when not

3. The format

4. Why it sells

5. Beat sheet (full rules + word budget in references/beat-sheet.md)

Budget for 25-30 s at the locked Omni pace (~2.6-3.0 wps): 65-85 words, every line ≤10 s (Omni's cap), most lines 8-16 words.

# Beat % runtime Words Visual Must contain
1 Hook to camera 0-12 8-14 A-roll, avatar frame Her symptom/stake in action, 2nd person; overlay = this line; no product, no backstory
2 Problem in one line 12-28 12-20 real "sleeps through it" b-roll over her voice The burden (knocks, trips, alarms) + root cause: sound doesn't reach a deep-sleeping brain; failed solutions generic
3 Demo 28-60 18-26 scene change (scene2, band on the counter) → product line product: true, end_frame: holding → band b-roll (gated omni or real) Touch gets through; silent to everyone else; keeps going, stronger, until he turns it off. Product named once
4 Result 60-82 10-16 A-roll scene2 (her calm morning) or real "kid out the door" b-roll Payoff on HER (she isn't the alarm anymore) + his independence
5 CTA 82-100 8-12 A-roll, then end card (optional, --end-card; off by default per Fish 10-06) 2.5 s "60 nights" guarantee (risk reversal, not the headline); no price spoken

6. Pack spec (ugc-omni job.json, one job per ad)

7. Visual grammar

8. Audio

9. Production (ugc-omni; every paid step dry-runs until --spend)

# run from ~/.openclaw/workspace; job.json per §6
O=scripts/ugc_omni/omni.py; J=output/ugc_omni/<slug>
# G0 (free): script + hooks + storyboard
python3 $O mine <real mom-talking-to-phone URLs...> --keywords alarm,morning   # FB/IG creators for 35-54
python3 $O board --job $J          # structure clean; only "frame not picked yet" errors may remain → Fish
# G1: reference frame + avatar + product frames
python3 $O refscan --job $J --src <chosen video>
python3 $O ref --job $J --pick $J/ref/<cand>.jpg
python3 $O avatar --job $J --n 3 --arms gpt2,sd5 [--spend]
python3 $O pick --job $J --name avatar --file $J/avatar/<pick>.png
python3 $O variant --job $J --name scene2 --product --arms gpt2,sd5 --prompt "<same woman at her kitchen counter, the band lying flat on the counter in front of her. Display off: ...>" [--spend]
python3 $O pick --job $J --name scene2 --product --file $J/frames/<pick>.png      # refuses <7/10 or wrong display
python3 $O variant --job $J --name holding --product --arms gpt2,sd5 --prompt "<same woman, same counter, the band resting across her open palm toward the camera, close. Display off: ...>" [--spend]
python3 $O pick --job $J --name holding --product --file $J/frames/<pick>.png
python3 $O board --job $J          # now fully clean
# G2: lock (motion proof): same line good 3x, hook first, then the product line
python3 $O lock --job $J --line H1-1 --n 3 [--spend]
python3 $O lock --job $J --approve $J/lock/<take>.mp4
python3 $O lock --job $J --line D-1 --n 3 [--spend]                 # product_action locked separately
python3 $O lock --job $J --approve $J/lock/<take>.mp4
# G3: every A-roll line + b-roll + product check
python3 $O gen --job $J --lines all [--spend]
python3 $O verify --job $J
python3 $O broll --job $J --id wristdemo --stage frame --arms gpt2,sd5 [--spend]
python3 $O pick --job $J --name broll_wristdemo --product --file $J/broll/<pick>.png
python3 $O broll --job $J --id wristdemo --stage anim [--spend]
# (fallback) cp "<real clip>.h264-clean.mp4" $J/broll/wristdemo.mp4
# G4: assembled cut
python3 $O assemble --job $J --hook H1                               # repeat H2, H3
python3 $O cost --job $J
python3 scripts/meta_preflight.py $J/final/<slug>-H1.mp4

10. Gates & QA checklist (ugc-omni G0-G4; every gate is Fish's)

11. Variants & test plan

12. Failure modes

13. Sources

Not built yet (needs Fish's go)

Every line in this skill that mentions something not built, roughly de-duplicated. Some items repeat in different words.