AI Video Playbook

Iterate

Run the gate loop, give notes the agent can act on, check contact sheets yourself, keep a taste rules file and know when to stop.

Expect the first render to be about 80% there and plan for 2 to 5 rounds of notes. Approve a plan, then one still per scene, then a rough animatic, and only then full motion, sound and the final render. Change one thing per note, give exact values, and judge the result yourself on contact sheets. Scores from the model do not measure taste.

The gate loop

Every serious source uses the same order, with a human look at each gate: plan, stills, animatic, full motion, polish, sound, render.

GateWhat you look atWhat to fix here
PlanA frame table in chat and the sentence "This video tells [audience] that [message]"Message, order of scenes, length, what to cut
StillsOne frame per scene with real fonts, colors and copy, no motion (HyperFrames draws them on storyboard.html)Layout, hierarchy, readability, real assets
AnimaticThe whole film at half resolution with placeholder audioPacing: "fix pacing here, before polish"
Full motionThe draft renderEntrances, transitions, one focal action at a time
PolishDraft render plus contact sheetEasing, holds, small timing shifts
SoundThe film with music, voice and effectsSync to the beat, levels, endings
RenderThe final file on a phone and a big screenOnly defects, never new ideas

The build step dresses the approved layout and never redraws it, so a still you approve is a promise. HyperFrames Studio now offers this as a storyboard first flow that returns still frames before the full video.

Why stills come first

Besides being cheaper to fix, stills save context. Attaching an image to the conversation "re-prices your whole context", because it invalidates the prompt cache. So batch your visual checks into one contact sheet at the end of each phase instead of sending single frames in the middle of a build. "Rendering and having a model watch video are both heavy" (aiworkflowprolk).

How many rounds

There is no agreed number; most reports land between 2 and 5.

ReportRounds
HyperFrames recreating a referenceFirst build about 75%, then several rounds of exact corrections
Director skill2 to 4 scored rounds
"first render is usually 80% there" (rexan_wong)Notes until the last 20%
Product film from a real repo (daniel_haida)1 prompt and 2 rounds of feedback
Ultracode run (AlRocha_)One hour, five versions; "every miss was my direction, not the model"
64 second launch film in five languages (mrcsvlk)First cuts too fast to read, final slowed down

Give notes like an editor

  • Change one thing at a time. "Change one thing, render, judge, repeat." Work in layers: subject and motion first, then camera, then background, then style. If a scene keeps failing, strip it back to what works and add layers again.
  • Use absolute values, not nudges. Write "dot radius = 25% of row spacing" or "glow at about 35% peak opacity", not "2x finer". Relative notes overshoot and swing back and forth.
  • Freeze what works. "The framing and motion are right, don't touch them."
  • Use timestamps and frame numbers. "Land 6 frames earlier", "hard cut at 4.2 s", "slow every zoom to 0.7x". Notes like "make it better" or "make it pop" get random changes (rexan_wong).
  • Point at the thing. In HyperFrames Studio you click an element and the agent reads exactly what you selected. npx hyperframes history undo --who <name> reverts the agent's last turn without touching your own edits (a trial feature).

Re-render only what changed

Render only the affected scene or range, and keep a before and after frame for each fix.

Terminal
# HyperFrames: one scene
npx hyperframes render -c compositions/frames/03-proof.html
# Remotion: a frame range
npx remotion render src/index.ts MyComp out/fix.mp4 --frames=120-240

If you use your own engine, give it a sub range setting "so fixes don't need a full render" (elie2222).

Contact sheets and objective checks

A contact sheet is a grid of frames from the film, one per beat or one every 2 seconds. It is the fastest way to see a whole film at once, and the main review tool of every careful creator in our research. Make two: one at full size and one with 360 pixel wide tiles, which shows whether every line is readable on a phone.

Automated checks catch mechanical problems. Run them, but do not stop there.

CheckWhat it catches
npx hyperframes lintStructure errors: missing ids, unregistered timeline, fonts without a font file
npx hyperframes check --snapshotsRuntime errors, text outside its box or the canvas, overlaps, WCAG AA contrast (4.5:1 for normal text, 3:1 for large), a scene of 3 seconds or more where nothing changes
npx hyperframes compare a/ b/ --at 4.5A labeled side by side sheet of two versions
Film level checks in a director skillCuts off the beat grid (0.06 s tolerance), frozen stretches over 1 s, a black first frame, more than 3 flashes per second, loudness away from -14 LUFS, true peak above -1 dBTP

Two warnings. A lint error switches the browser checks off, and they then report "0 samples" and look clean. And "passing lint and check doesn't mean the video is good": one tester found check passed while an element appeared before its animation, which a frame review caught.

Other creators' checklist: pull a frame every 2 seconds and look at each, transcribe the whole film and check every line, keep body text at least 20 px at 1080p, no unreadable wide UI shot longer than about 1 second, no words cut at the frame edge, and captions settled at least 0.4 seconds before the click they describe.

Why scores and judge models do not measure taste

A scored loop is useful for catching regressions. The director skill rates each draft 1 to 10 on the hook in the first 2 seconds, readability at phone width, motion, variety, composition, brand accuracy and sound sync, fixes the 3 worst problems, and stops at 8 or above everywhere or after round 4.

But numbers are not taste. "I had it score every scene on ten dimensions. The numbers were great. The video still looked like a slide deck" (aiworkflowprolk, single source). What worked for that creator: watch once like a viewer without pausing, then go back to the contact sheet, compare it side by side with a top reference, and write the review in sentences with a verdict.

  • The builder should not be the judge. One open source kit shows the finished video to a separate reviewer that never saw the build. Another creator reviewed every version blind in a separate session.
  • Judge models invent problems. Video and audio judges "hallucinate problems, so verify every claim against frames" (elie2222).
  • Reviewing every frame is expensive. One Remotion user found Claude subagents reviewing every frame cost 127 USD and more than 4 hours per video and used up a Max plan (bigironchris; the author works for a cheaper model's maker). Sample one frame per beat or one every 2 seconds instead.

Keep a taste rules file

Save what you learn so the next video starts higher. Inbox Zero keeps an AGENTS.md in the video project: "Every time the reviewer gives feedback, or an agent makes a mistake, add a one-line rule... This file is what makes the tenth video good on the first try." Start yours with rules like these and add one line per note you had to give twice.

AGENTS.md
Body text at least 20 px at 1080p. Headlines at least 64 px.
Hold every line 0.3 s per word after it settles.
No wide UI shot longer than 1 s unless it is readable at phone width.
Captions settle at least 0.4 s before the click they describe.
One moving element at a time. The camera never moves while text is on screen.
Never redraw UI. Use the captured screens in assets/screens.
Every number on screen comes from the brief or the data file.

HyperFrames can also freeze an approved run as a recipe and recall it with "make another <name>". Every's team ends each video by saving the process and corrections as a skill, and a saved Claude Code workflow script can be rerun as /<name>.

Case study: Inbox Zero's production system

The most complete case study we found is Inbox Zero's founder describing how he made a landing page hero, launch films and about 15 docs walkthroughs with Opus (elie2222 on X). What he does:

  • A small engine instead of a framework. About 200 lines: a renderAt(t) function, Playwright workers and FFmpeg. He says "Don't use Remotion or any other video framework"; that is one person's preference, but it shows a framework is optional.
  • Real UI, fictional data. The app runs locally with a seeded database; about 140 screen states are captured as real DOM; missing states are built from the real component source, "never invented"; every snapshot is audited for leaks.
  • Humans review contact sheets. 2x2 contact sheets are the main review. Judge models are used, but every claim is checked against frames.
  • Audio by ear. Generated music ignores the requested length, so he detects the beat grid and cuts at phrase boundaries. He makes 2 to 3 takes per voice line, and normalizes loudness in two passes to -14 LUFS and -1.2 dBTP.
  • Safe parallel work. Render workers are capped per agent, and renders are never killed by name, which would kill other agents' jobs.
  • The rules file. Every note becomes a one line rule in AGENTS.md.

Long runs and what they cost

Prices checked on 15 Oct 2026. All single creator reports.

RunTimeCost or usage
15 second earphone ad, same prompt50 minutes at xhigh, 113 minutes with ultracodeUltracode about 7 times the cost (nobunosuke_hori)
Ultracode motion videoAbout 8 hours5 hour limit hit 3 times on Max 5x (ehsanshares)
Ultracode motion video8 hours220 USD in API credits (_junaidkhalid1)
Music visualizer, 3,663 frames9 hours330M tokens, about 105 USD at API prices (deadpixeldavid)
"Best launch video it possibly could", ultracode12 hoursNot stated (gauravsbuilding)
Recreate a Seedance video in code, ultracode3 days3 weekly plan limits (RPDbyte)
3D scene (not video, same mechanics)1 h 13 min at xhigh versus 9 h 14 min with max and ultracode18 USD versus 554 USD (jcraane)

Reports agree that long ultracode runs cost 7 to 30 times more and nobody has shown a matching quality gain. One overnight run turned out to have worked for only 49 minutes (SimonasLTU1). Do the first build at xhigh without ultracode. Use ultracode only for a long film split into chapters with a shared animation guide.

When the agent stops early

On long unattended runs, Opus 5.5 sometimes ends its turn with a progress report instead of continuing. Anthropic's advice: keep a checklist file the model updates, and send a short "continue with the open items" message, at most 2 or 3 times.

When to stop

Stop when all of these are true:

  • A viewer can repeat the message after one viewing.
  • Every line is readable on the 360 pixel contact sheet and holds long enough to read.
  • Nothing from the failure table is left, and the automated checks pass.
  • Your last round of notes was about taste, not defects, and the reference comparison holds up.

If round 4 still misses, the problem is usually the brief, not the number of rounds. "Every miss was my direction, not the model." Go back to Brief, fix the message, reference or banned list, and rebuild the weak scene from its still. Even good runs are not perfect: after 30 minutes of iteration on a heavy motion graphics task, one creator wrote "Is it perfect? Absolutely not" (jboogx_creative).

Sources