AI Video Playbook

Brief

The brief structure that works, how to use references and real UI, a banned list of AI tells, and five example briefs to copy.

The brief decides the quality of a code video more than the model, the effort level or the engine. A good brief pins the message, the length and format, real assets, one or two references, exact colors and fonts, a timed beat map, every on screen line in quotes, and a named list of patterns to avoid. Then it asks for stills before any motion.

Why the brief matters more than the prompt

The famous one line prompt ("make a dynamic 15-second motion graphics video... go all out", first seen around 25 Sep 2026) is a test of the engine, not a way to make your video. Hundreds of people used it and got reels that look alike. Without a reference, Opus "falls back to its default look: centered text, gradient background, everything fading in" (rexan_wong, 636k views).

Critics on X describe the typical output as "overcrowded, effects-driven, high-pace" and say every Opus video "has a PPT feeling". A blind review experiment found the cause is not the effects: "Sameness doesn't come from the effects. It comes from having no idea behind them" (2ssol). Adding one story beat raised its distinctiveness score from 4 to 7.

The cost gap is large too. One account reports a first run of 7 scenes and 26 seconds for about 1.18 USD in tokens, against "viral twelve hour runs" at 2,175 USD (neil_xbt, single source). The difference was the brief.

The brief structure that works

The HyperFrames prompting docs, a director skill used for this research, and creator workflows on X converge on the same parts. Each line removes one decision the agent would otherwise guess.

PartWhat to writeWhy
Route/hyperframes, or a workflow such as /product-launch-videoLoads the framework rules; without it "the agent guesses at conventions"
MessageOne sentence the viewer can repeat after one viewingEvery scene is judged against it
Audience and destination"Founders of small online shops, X feed"The destination sets the aspect ratio and text size
SpecLength, size, frame rateDefaults are 1920x1080 at 30 fps
AssetsPaths: assets/logo.svg, assets/screens/*.png, fonts, a CSV"Vague assets" is a listed anti pattern; give a path, not "my logo"
Reference1 to 2 videos or frames, and what to take versus leaveThe single biggest quality lever
Style tokensHex colors, font names and weightsExact values have "no real downside" (HyperFrames docs)
Beat mapTimestamps per beat, one idea per beat, where to holdAgents "skip breathing room unless told"
CopyEvery on screen line in quotes, at most about 8 words a line, 2 lines"Unquoted text gets paraphrased"
Banned listNamed patterns to avoidNamed patterns work better than "avoid an AI look"
Gates"Give me the scene list and one still per scene first; do not animate until I approve"Fixing a still is far cheaper than fixing a render
Truth rule"Use only real numbers and real UI from the repo; if a screenshot is missing, stop and ask"Invented metrics and UI are an AI tell

In each beat, describe the element, its motion, its place in the frame, its style and its timing. Use / inside a quoted line for a line break.

References

Reference videos

Give 1 to 2 reference videos and say what to take from them (pacing, type, transitions) and what to leave (their colors, content and logos). Every serious source agrees on this. "Naming a style works way better than describing one" (rexan_wong), and HyperFrames itself says "Opus 5.5 makes better videos with references" (HyperFrames, vendor).

Where to find them, with the prompt next to each video:

To use a reference well, pull a frame every 0.5 seconds, measure where the cuts fall, and write a short style guide: palette, type, shot lengths, transitions, camera, texture, how text enters and leaves. HyperFrames' own method for recreating a reference says the first build gets about 75% of the way; after a few rounds of exact corrections, the improved prompt reaches roughly 80 to 90% from scratch. Copy the grammar of a reference, never its content, logos or characters.

Real UI and brand assets

Never let the agent redraw your product UI from memory. Capture the real thing at the film's resolution and animate it.

  • For a website, npx hyperframes capture <url> pulls screens, assets and colors.
  • For an app, run it locally with fictional seed data and capture each screen state. Inbox Zero's founder captured about 140 states as real DOM with inlined CSS and audited every snapshot for leaks: a real city slipped through a timezone picker (elie2222).
  • Give the logo as SVG, plus your color and type values. In HyperFrames these live in frame.md, the project's "brand truth".
  • To teach your style once, send screenshots of past videos and let Opus write its own style guide, then reuse it (Aykutuces).

A directions board before the beat map

For a new brand or a big launch, ask for 3 to 4 directions side by side, each with one hook frame and one mid film frame made from your real assets. Pick one and note why. HyperFrames' own pitch round samples five concepts when the request is vague.

The banned list

Anthropic's prompting guide for Opus 5.5 explains why "make it look less like AI" fails: a general instruction like that mostly swaps one default for another. Opus 5.5 responds well to instructions that name the specific patterns to avoid, and the guide says to extend the list after you see the first result.

So name them. This list combines a director skill's defaults, the HyperFrames "lazy defaults" list and Anthropic's own list of Opus defaults. Paste it into the brief and delete anything you actually want.

Banned list
Banned: centered title on a gradient background, everything fading in,
purple or neon gradients, gradient text, cyan on dark, glow on everything,
particle bursts, shockwave rings, lens flares, camera shake, bouncy easing,
drifting gradient blobs, stock 3D blobs, logos spinning in 3D,
corner HUD labels and frame borders, fake terminal typing,
identical card grids, everything centered,
italic accent words in headlines, numbered 01/02/03 section labels,
monospace labels, pill shaped buttons,
equalizer bars or spectrum analyzers, strobing on the beat,
invented numbers, invented UI.

Fonts that read as AI

The HyperFrames typography guide flags Inter, Roboto, Open Sans, Lato, Nunito, Poppins, Outfit, Playfair Display and EB Garamond as generic choices that signal AI output. They render fine. If one of them is your real brand font, use it; otherwise pick a face with character on purpose and name it in the brief. Fonts bundled with HyperFrames that are not on the list include Montserrat, Oswald, League Gothic, Archivo Black, IBM Plex Mono and JetBrains Mono. For loading fonts and Vietnamese diacritics, see Fonts.

One focal action at a time

"Too busy" is the most cited failure, and two sources pull in opposite directions:

  • The HyperFrames default house style pushes density: 2 to 5 decorative elements per scene, slow ambient motion on all of them, and "err toward more movement than feels safe".
  • The director skill and the critics push restraint: "one focal action at a time while everything else holds still".

HyperFrames' own motion guide sides with restraint once you read past the house style: "Four movements with no job are worse than one motivated movement." So write restraint into the brief, or you get the house style.

Rules to copy, each from the sources above:

  • One idea per shot. In launch films a shot lasts 1 to 2 seconds; explainers run slower, one element per beat.
  • At most one camera move at a time, and the camera stays still while text is read.
  • Two or three colors plus one accent.
  • Exactly one calmer "breather" frame in the film.
  • Reading time of about 0.3 seconds per word, counted from when the line has settled. "3 seconds on screen = must be readable in 2."
  • Cut anything that does not earn its place, such as a connector line the frame can lose without losing meaning.

Do not over lock either. One creator locked every scene and scored each on ten dimensions, and the film still looked like "a slide deck" (aiworkflowprolk, single source). Lock the message, palette, type, banned list and beat map. Leave each scene's composition to the agent.

Duration, aspect ratio and the beat map

Length by video type

TypeLength
Feature teaser8 to 15 seconds
Showreel12 to 20 seconds
UI morph film12 to 25 seconds
Launch film15 to 30 seconds
Explainer30 to 90 seconds
Loop4 to 14 seconds

The HyperFrames narrative workflows are strongest at 30 to 90 seconds and top out around 3 minutes; longer films go to /general-video. For narration, plan about 2.5 words per second (15 seconds is about 37 words). HyperFrames' docs use about 130 words per minute for a verbatim script and suggest asking for "about 45 seconds" rather than a hard length.

Aspect ratio by destination

DestinationAspect ratioSize
YouTube, website embed16:91920x1080
X, LinkedIn, Instagram feed1:11080x1080
Shorts, TikTok, Reels9:161080x1920

Use 30 fps. Use 60 fps only for fast UI motion, since it doubles render time. Each extra format is a new layout, not a crop; see Output.

Beat map arithmetic

One beat lasts 60 divided by the BPM. At 120 BPM a beat is 0.5 seconds and a 4/4 bar is 2 seconds. A 15 second film at 120 BPM is 7.5 bars, so make it 16 seconds (8 bars) or trim the end. Cut on bar starts for calm films and on every second beat for fast ones. Audio and sync explains how to measure the beats of a real track.

Two arcs that work:

  • Launch: a hook that states the problem, three feature beats with a one line caption each, then an end card with logo and call to action. A creator's timed version: hook 0 to 2 s, problem 2 to 5 s, reveal 5 to 9 s, proof 9 to 13 s, close 13 to 16 s (rewind02).
  • Explainer, by share of running time: question 0 to 10%, model 10 to 35%, proof 35 to 75%, turn 75 to 90%, payoff 90 to 100%.

For each scene, the director skill writes a short spec: time range and bars, what the scene adds, what the eye sees first, the motion (enter, key action, settle, exit), the words (8 or fewer a line), the sound cue, whether it is code or an AI shot, and what the viewer now knows.

Example briefs

All five are fictional products. Each pins the message, spec, real assets, beat timings, quoted copy and a named banned list, and stops for stills. Paths assume the files exist in assets/.

Product launch, 20 seconds, 16:9 plus 9:16

Brief
/product-launch-video
Message: "Ledgerly closes your books in one click."
Audience: founders of small online shops. Destination: website hero (16:9) and Reels (9:16, re-laid out, not cropped).
Spec: 20 s, 1920x1080, 30 fps. Music: assets/music/bed-118bpm.mp3 (licensed, 118 BPM). Cuts on downbeats, the reveal on bar 5.
Assets: assets/logo.svg, assets/screens/inbox.png, close.png, report.png (real UI, use as is, do not redraw), assets/fonts/Satoshi-*.woff2.
Reference: assets/refs/ref.mp4. Take its pacing and mask-reveal type. Leave its colours and content.
Palette: #0E1116 background, #F4F1EA text, #3BD18A accent only. Font: Satoshi 500/800.
Beats:
0-2 s: "Month end, again?" masks in word by word over the real inbox screen, slight push-in.
2-8 s: cursor clicks "Close month"; categories fill on the beat, one row per beat.
8-14 s: report.png slides in; the total counts up to the real demo value 4,182.50 and holds 1 s.
14-20 s: logo lockup, "Ledgerly. Close the month in one click." / "ledgerly.app". Last frame is the thumbnail.
Rules: one moving element at a time; the camera never moves while text is on screen; hold every line 0.3 s per word after it settles.
Banned: centred title on a gradient, everything fading in, glows, particles, lens flares, camera shake, bouncy easing, corner HUD labels, invented numbers.
Process: show the beat map and one still per beat first. Do not animate until I approve. Then a half-resolution animatic, then the full render.

Narrated explainer, about 60 seconds

Brief
/faceless-explainer
Message: "A CDN is a copy of your site that lives next to your users."
Audience: non-technical small business owners. Destination: YouTube 16:9.
Spec: about 60 s (the voice sets the length), 1920x1080, 30 fps.
Arc: question 0-10% (a spinning loader in Hanoi while the server is in Virginia), model 10-35% (one origin, then copies appear one per beat), proof 35-75% (real latency numbers from assets/data/latency.csv), turn 75-90% (the origin goes offline, copies keep serving), payoff (the opening loader now loads instantly).
Voice: warm, unhurried female narration of SCRIPT.md, verbatim. Captions burned in, karaoke style, plus captions.srt.
Music: calm bed under -18 dB, carved under the voice.
Style: flat diagrams built live, two colours plus one accent, no pie charts, no gridlines, no legends.
Banned: stock globe with glowing lines, particles, numbers without a source line in the brief.
Process: plan in chat, sketches on storyboard.html, then build.

UI teaser, 12 seconds, 9:16 (Remotion)

Brief
Use the Remotion skills. Make a 12 s 1080x1920 feature teaser for the "Split bill" feature in this repo.
Read src/features/split-bill and render the real components with the seeded demo data in fixtures/demo.json. Do not draw UI from memory.
Flow: entry (tap "Split"), then action (pick 3 friends, amounts redistribute on the beat), then result (three "Paid" toasts), then name card "Split bill. Fair in one tap."
One phone container that never cuts; the cursor drives every change; springs with almost no overshoot; captions above the bottom 15% safe zone.
Banned: fake app icons with red badges, dark gradient opener, glossy 3D phone spin.
Render 3 stills (first, tap, last) and wait for my note. Then change only what I ask.

Data video, 30 seconds, 1:1 (no framework)

Brief
Make one index.html with window.renderAt(t) where every frame is a pure function of t (no timers, seeded randomness only). Render with Playwright and ffmpeg to out/sales-q3.mp4, 1080x1080, 30 fps, 30 s.
Data: assets/q3.csv only. Every number on screen must come from it.
Story: one bar chart that keeps the same space while only the values change; Q1 to Q4 bars grow on the beat; the record month gets the accent colour and a 0.4 s hold; end on "Q3: best quarter yet" / "+18% vs Q2" (from the CSV).
Type: IBM Plex Sans 600 for numbers, 400 for labels, labels at least 24 px.
Banned: 3D bars, pie charts, gridlines, legends, counters that overshoot their final value.
Before the full render, write a contact sheet of one frame per beat and list the 3 worst problems.

Kinetic type loop, 15 seconds

Brief
/motion-graphics
Make a 15 s 1080x1350 kinetic-type loop for the line "Slow is smooth. Smooth is fast."
Look: Swiss poster, off-black #121212 and paper #EDE8DF, one red #E63B2E. Font: Archivo Black.
Motion: words enter by mask, never by fade; each word lands on a beat at 96 BPM; one word at a time moves; the camera is locked.
The last frame equals the first frame, so the loop has no visible jump.
Banned: blur-in, glow, particles, letter scramble, more than one moving element at once.
Audio: none (I will add it in the edit).

Why these work: brief 1 follows the launch arc (hook, product in use, result, call to action), brief 2 the explainer arc, brief 3 the UI morph spec, brief 4 the data rules (one visual space, every number sourced) and brief 5 the loop rule (last frame equals first). Next, run them through the gates on Iterate.

Sources