DEV Community

Cover image for The Anatomy of a Cinematic AI Video Prompt (a 7-Block Structure)
PromptMaster
PromptMaster

Posted on

The Anatomy of a Cinematic AI Video Prompt (a 7-Block Structure)

If you've generated AI video, you've felt the randomness: one prompt returns something gorgeous, the next — barely reworded — returns mush. The usual reaction is to add more adjectives. That rarely helps, because the problem isn't quantity of description. It's structure.

Here's a way to think about a text-to-video prompt as a structured object with seven fields, not a blob of prose. Structured prompts are reproducible and, more importantly, debuggable.

The seven blocks

[shot type] of [subject + action], [setting].
Camera: [movement], [lens].
[lighting] lighting. [mood] atmosphere.
[color grade] color grade.
[format].
Enter fullscreen mode Exit fullscreen mode

Filled in:

Cinematic wide shot of a lighthouse keeper releasing paper
lanterns into a storm, on a battered pier at dusk.
Camera: slow push-in, anamorphic lens.
Neon glow lighting. Dreamlike atmosphere.
Teal and orange color grade.
Vertical 9:16 format.
Enter fullscreen mode Exit fullscreen mode

Each block maps to a real cinematographic decision:

Block Controls Example values
Shot type emotional distance close-up, wide, aerial, POV
Subject + action the content concrete verbs, not nouns
Setting context & texture specific > generic
Camera movement sense of direction push-in, orbit, crane, FPV
Lens intimacy & falloff 35mm, 85mm, anamorphic, macro
Lighting + mood atmosphere golden hour, neon, eerie, serene
Color grade the "cinema" read teal/orange, film grain, noir
Format composition for frame 16:9, 9:16, 1:1, 21:9

Why this is a engineering problem, not an art problem

Freehand prompting has the same failure mode as unstructured code: when it breaks, you can't localize the bug. Slotting each decision into a fixed field means a bad result becomes a diff. Output too flat? The camera.movement field is probably static. Too cold emotionally? Check lighting/mood. This is the same reason we use structured config over magic strings.

It also makes prompts composable. Hold six blocks constant and vary one, and you get a controlled A/B: same shot, anamorphic vs 35mm, and you can actually see what the lens does. That's impossible when every prompt is a fresh paragraph.

The format block matters more than people think

Appending an explicit aspect ratio (Vertical 9:16 format.) isn't cosmetic — it changes how the model composes headroom and subject distance. Building the same prompt for 16:9 and 9:16 without changing that block gives you a mis-framed vertical clip. Automating this append (set format once, apply to every copied prompt) removes a whole class of silent errors.

Try the structure interactively

I put this structure into a free browser tool — the Seedance Prompt Composer demo. You pick each block from a set of options and it assembles the prompt live, then copies it out with the format tag already appended. It's a single offline HTML file, no install, no account. Good way to feel how the blocks interact before wiring the pattern into your own pipeline.

Try the free demo →

In a follow-up I'll cover how the full version stores 3,000 of these as a searchable, no-backend browser app — the localStorage and single-file architecture behind it.

Top comments (0)