All guides

AI Video line · stop 09 of 14 · 22 min · members

Writing a shot list for a generator, without losing continuity between frames

Translating a storyboard into prompts without losing continuity between frames.

Free with an account

Sign in to read.

Membership is free: an account opens all 86 script pages. The Lab, Studio Canvas and the paid guides need the $99 pass, paid once. Already signed in on this browser? The page opens by itself.

01

The difference

A generator has no memory of the previous shot.

So a conventional shot list, handed over one line at a time, produces a sequence with no continuity.

A shot list for a crew works because everyone shares context: the same location, the same actors, the same lighting setup carried between setups. A single line of description is enough.

A generator has none of that. Each shot is produced from nothing, so anything not restated is regenerated from scratch — different jacket, different room, different light.

The list therefore has to carry the shared context explicitly, in a form that cannot vary between entries. That is the whole adaptation.

02

Structure

Constants above, variables in the table.

Write the shared context once and reference it, never retype it.

Above the list, two blocks:

Sequence constants — the treatment, the optics, the grain, the palette, the character description, the global exclusions. True of every shot.

Scene constants — the location, the light, the time of day. True of a group of shots.

Then the table holds only what differs per shot: framing, action, camera move. Each row's full prompt is assembled from the constants plus its own cells.

The discipline is that constants are referenced rather than copied into rows. A retyped constant is a constant that will drift.

03

The columns

Framing, action, camera. Three, and no more.

Anything else is either a constant or a second shot.

id | scene | framing | action        | camera
01 | S1    | wide    | still         | static
02 | S1    | medium  | turns head    | slow push
03 | S1    | close   | looks down    | static

One action per row, always. A row containing two actions is two shots and should be split — the generator cannot do both and will do neither well.

Keep the vocabulary constrained. If framing is 'wide' in one row it is not 'establishing' in another; consistent terms mean the assembled prompts are consistent.

04

Ordering

Produce the anchor first, then the rest against it.

Not shot one — the shot that best represents the sequence.

Identify the row that carries the most of the look, usually a medium shot in the main scene, and produce it to a finished standard before anything else.

That frame then attaches as a style reference to every other generation, alongside the shared text blocks. Two independent forces hold the sequence together: identical language and a common visual anchor.

Producing in script order instead lets the look evolve as you go, and the first and last shots end up belonging to different pieces.

05

Coverage

List the shots you can generate, not the ones you would shoot.

A list containing three impossible shots is a list that will not finish.

Before committing, check each row against what the tools reliably do. Rotations, hand interactions, readable text and multiple interacting figures all belong in a different column of the plan.

Mark those rows early and decide how they will actually be made — composited, photographed, or redesigned. Discovering them during production is what turns a two-day job into a week.

A generatable list plus three shots handled another way is a working plan. An aspirational list is a source of surprises.

06

The output

The list is the production queue.

If it is structured properly, generating the sequence is a loop over it.

Once every row assembles into a complete prompt from constants plus cells, running the sequence is mechanical: iterate the rows, generate, save with the row id as the filename.

Changes then land in exactly one place. A note about the lighting is a change to a scene constant, and every affected shot regenerates with it. A note about one framing is a single cell.

That property — a change landing once rather than in twenty prompts — is the entire reason for building the list this way, and it arrives during revisions rather than during the first pass.