Skip to content

AI Video & Voice Production: ElevenLabs, Veo, Runway and More · Scripting and production workflows · lesson 9 of 16 · 8 min

Shot lists, storyboards and visual consistency

From script to shots

A script says what is heard. A shot list says what is seen, shot by shot, with enough detail that a generator, an editor or a camera operator can produce it without guessing. In AI production the shot list matters even more than in traditional video: every generated shot is a prompt, and inconsistent prompts produce inconsistent videos.

The workflow is: script (scene table) -> shot list -> storyboard frames -> generation or capture -> edit. You can skip the storyboard for simple videos, never the shot list.

Anatomy of a shot list row

| Field | Example | |---|---| | Shot id | S03-B (scene 3, second shot) | | Duration | 4 s | | Source | Generate (Veo) / Screen recording / Stock / Filmed / Motion graphic | | Shot type and camera | Medium close-up, slow push-in, eye level | | Subject and action | Clinic receptionist's desk; phone lights up with a new message notification (no readable text) | | Setting and light | Small clinic in Lahore, daylight through blinds | | Continuity refs | Style frame SF-01; color palette brand-v2 | | Audio | Room tone; notification chime added in edit | | On-screen text | "3 missed messages" (added in editor) | | Notes / risks | No faces; no real clinic branding |

The Source column is the most important decision. Anything that shows a factual claim (product UI, real results, real locations you name) should come from a real source.

Storyboards with image models

A storyboard is a sequence of still frames, one per shot. With image generators you can make a rough board in minutes, and the frames double as reference images for image-to-video generation, which is the most reliable way to keep style and characters consistent across shots.

Consistency toolkit:

  • A style frame: one approved image that defines palette, lighting and texture. Attach it to every generation that supports references.
  • A character or product sheet: the same subject from front, side and three-quarter views.
  • A shared prompt suffix: identical style words appended to every shot prompt ("soft daylight, muted teal and sand palette, 35mm, subtle grain").
  • First and last frames where tools support them, so cuts land cleanly.

Hands-on: generate a shot list from a scene table

Give your assistant the scene table and ask for a shot list in a strict format:

Convert this scene table into a shot list for AI-assisted production.
For each scene, 1-3 shots. Columns: shot_id | seconds | source (generate|screen|stock|film|motion) |
shot_type_camera | subject_action | setting_light | continuity_ref | audio | onscreen_text | risks.
Rules:
- Use "screen" or "film" for anything that shows real product behavior, prices, results or named places.
- Generated shots: no readable text, no logos, no real people; avoid hands in close-up.
- Append this style suffix to every generated shot: "soft daylight, muted teal and sand palette, 35mm, subtle grain".
- Durations must add up to each scene's seconds.
Return CSV only.

Then turn each "generate" row into a prompt with a small script:

import csv

SUFFIX = "soft daylight, muted teal and sand palette, 35mm, subtle grain"
with open("shotlist.csv", newline="", encoding="utf-8") as f:
    for row in csv.DictReader(f):
        if row["source"] != "generate":
            continue
        prompt = (f'{row["shot_type_camera"]}. {row["subject_action"]}. '
                  f'{row["setting_light"]}. {SUFFIX}. No text, no logos, no faces.')
        print(row["shot_id"], "|", row["seconds"], "s |", prompt)

You now have a prompt per shot that shares style words, which is half the battle for consistency.

Worked example: a 60-second clinic software ad

A Lahore SaaS company turns a five-scene script into eleven shots: four screen recordings of the real product (the claims), three generated b-roll shots (a busy reception desk, a phone lighting up, a calm evening clinic), two motion-graphic stat cards (numbers from their own verified data), and two filmed shots of a real customer who signed a release. The generated shots all use one style frame and the shared suffix. The editor receives a folder named by shot id, so assembly takes an hour instead of an afternoon of hunting.

Second worked example: a creator's recurring series

A UK personal-finance creator makes a weekly 45-second explainer. She built a template shot list once: shot 1 always a bold text hook over a generated abstract background, shots 2 to 4 screen captures of the calculator she is explaining, shot 5 a generated "calm" background for the CTA. Each week only the subject lines change. Her channel looks consistent, and production time is predictable.

Pitfalls

  • Prompting each shot from scratch, so lighting and palette jump between cuts.
  • Generating shots that contain claims (dashboards, prices, results) that should be real.
  • No shot ids, so audio, visuals and captions drift out of sync in the edit.
  • Storyboarding in so much detail that you never start; rough frames are enough.

Video lecture: Shot lists, storyboards and visual consistency

Lecture coming soon · 13 chapters · about 8 minutes. Read the full transcript below.

  1. Shot lists and storyboards
  2. Why it matters for AI
  3. The workflow
  4. A shot list row
  5. The source rule
  6. Consistency toolkit
  7. Example 1: a weekly creator series
  8. Example 2: a 60-second clinic ad
  9. Watch me do it, part 1
  10. Watch me do it, part 2
  11. Measuring success
  12. Common mistakes
  13. Recap and try this now

Lecture transcript

Shot lists and storyboards

You've written a great script. The voice is ready. Now you open the video generator, type a prompt for the first scene, then the second, then the third. And when you put them together, the lighting jumps, the colors clash, and one shot looks like a different film. The fix isn't a better model. It's a shot list. In this lecture you'll learn how to turn a script into a shot list, how to use quick storyboards as reference images, and how to keep every generated shot consistent.

Why it matters for AI

Why does this matter more in AI production than in traditional video? Because on a film set, the camera, the lights and the location stay put between shots. Continuity is physical. In AI production, every shot is a fresh prompt, and a model has no memory of what it gave you five minutes ago. Unless you deliberately carry the style, the subject and the lighting from shot to shot, you'll get a collage, not a film. The shot list is where that continuity lives.

The workflow

Here's the mental model. The script is what's heard. The shot list is what's seen. Think of the shot list as the kitchen ticket for the visual team. It says exactly which dish, what size, what garnish, and which table it goes to. The workflow runs script, then shot list, then storyboard frames, then generation or capture, then edit. For a simple video, you can skip the storyboard. You never skip the shot list, because that's where you decide what's real and what's generated.

A shot list row

So what's in a shot list row? A shot id, like S zero three B, meaning scene three, second shot. The duration. The source, which is the big decision: generate, screen recording, stock, filmed, or motion graphic. Shot type and camera movement. Subject and action. Setting and light. Continuity references, like a style frame. Audio. Any on-screen text, which you add in the editor, not the prompt. And notes on risks, like no faces or no real branding. Ten fields, one line per shot.

The source rule

Let's zoom in on source, because it's where honesty lives. Here's the rule. Anything that shows a factual claim comes from a real source. Your product's interface, real prices, real results, real locations you name. Screen recordings, filmed footage, or licensed stock. Generated shots are for atmosphere and abstract ideas: a busy desk, a phone lighting up, a calm evening. When you fill in the source column honestly, you've already prevented most of the misleading-advertising problems we discussed in the b-roll lesson.

Consistency toolkit

Now consistency. Four tools do most of the work. A style frame: one approved image that defines palette, lighting and texture, attached to every generation that accepts references. A character or product sheet showing the subject from a few angles. A shared prompt suffix, identical style words appended to every shot prompt. And first and last frame control where the tool supports it, so cuts land cleanly. Rough storyboard frames made with an image model can double as those reference images.

Example 1: a weekly creator series

First example, a simple one. A UK personal-finance creator makes a weekly forty-five-second explainer. She built one template shot list. Shot one is always a bold text hook over a generated abstract background. Shots two to four are screen captures of the calculator she's explaining. Shot five is a generated calm background for the call to action. Each week, only the subject lines change. Her channel looks consistent, production time is predictable, and every number on screen comes from a real screen capture.

Example 2: a 60-second clinic ad

Second example, a business case. A Lahore software company turns a five-scene script into eleven shots. Four screen recordings of the real product, because those carry the claims. Three generated b-roll shots: a busy reception desk, a phone lighting up, a calm evening clinic. Two motion-graphic stat cards using their own verified data. And two filmed shots of a real customer who signed a release. Every generated shot uses one style frame and the shared suffix. The editor receives a folder named by shot id, so assembly takes an hour instead of an afternoon.

Watch me do it, part 1

Watch me do it. I paste my scene table into the assistant with the shot list prompt from the lesson. The prompt sets strict rules: use screen or film for anything showing real product behavior, prices, results or named places. Generated shots get no readable text, no logos and no real people. Append my style suffix to every generated shot. And durations must add up to each scene's seconds. I ask for CSV only, so I can open it in a spreadsheet. Then I check the source column row by row before anything else.

Watch me do it, part 2

Next, a tiny script turns every generate row into a prompt. It reads the CSV, skips anything that isn't marked generate, and builds a prompt from shot type, subject and action, setting and light, then my style suffix, then no text, no logos, no faces. It prints the shot id, the duration and the finished prompt. I paste those into the video tool, one by one, attaching my style frame each time. Every prompt shares the same style words, so the shots feel like one film.

Measuring success

How do you know your shot list is doing its job? Measure three things over your next few videos. First, regeneration count: how many attempts each generated shot needed before it was usable. A good style frame and suffix should push that number down. Second, edit time: from receiving the folder to a first cut. Shot ids and a clear source column usually cut it sharply. Third, the review notes. If reviewers keep flagging shots that look inconsistent or that seem to show claims, your source column or your style references need work, not your editor.

Common mistakes

Common mistakes. Prompting each shot from scratch, so lighting and palette jump between cuts. Generating shots that contain claims, like dashboards, prices or results, which should be real. No shot ids, so audio, visuals and captions drift out of sync during the edit. And storyboarding in so much detail that you never start. Rough frames are enough. The goal is clarity for the people and tools that produce the shots, not a gallery-worthy storyboard.

Recap and try this now

Recap. The script is what's heard, the shot list is what's seen. Every row has an id, a duration and, most importantly, a source, with real sources for claims. Keep shots consistent with a style frame, a subject sheet, a shared prompt suffix and frame control. Try this now: take a script you've written, turn it into a shot list with the lesson's prompt, check the source column honestly, and generate prompts for just the generated shots. Then compare how consistent they look side by side. If one shot jumps out, tighten your style frame or suffix before you generate anything else.

Key takeaways

  • A script is what is heard; a shot list is what is seen, and you never skip it.
  • The source column is where honesty lives: claims come from real screen, film or licensed stock.
  • Consistency comes from a style frame, subject sheets, a shared prompt suffix and frame control.
  • Shot ids keep audio, visuals and captions in sync through the edit.

Try it

Convert one of your scripts into a shot list with the lesson prompt, check every source value, and generate prompts for the generated shots using a shared style suffix.