# Storyboard Creation

> Turn a script into a shot-by-shot storyboard: shot-type vocabulary (ECU→EWS), camera angles, movement notation, continuity rules (180-degree line, match-on-action, eyeline match, screen direction), panel layout and annotation format, and a shot-list workflow — with panels generated by Nano Banana (nano-banana-2) using locked reference sheets for consistency instead of per-generation text descriptions. Use this skill whenever the user wants to storyboard a video or ad, write a shot list, plan coverage, board a sequence, break a script into shots, or move from script to visual pre-production. Triggers: storyboard, shot list, boards, pre-production, board the ad, plan the shots, coverage plan, shot breakdown, previs. Composes with consistent-characters, consistent-scenes, and consistent-products: lock the subject, scene, and props with those skills first, then board them here — every panel is a staging call that attaches the locked sheets so characters, locations, and props do not drift between frames.

- Skill: `jordangaston/storyboard-creation` (Agent Skill)
- Install (CLI): `npx skillmds@latest add jordangaston/storyboard-creation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jordangaston/storyboard-creation/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: jordangaston (https://skillmd.com/u/jordangaston)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jordangaston/storyboard-creation

---

# Storyboard Creation

Turn a script into a shot-by-shot visual board. This skill supplies the film-language and pre-production discipline; panels are generated with **Nano Banana (nano-banana-2 MCP)**, and consistency comes from **locked reference sheets**, not from re-describing subjects in words (which drifts) or from LoRA training.

Works best downstream of `consistent-characters`, `consistent-scenes`, and `consistent-products`. Lock the subject, the location (with its light contract), and the props there; board them here.

## The core move: consistency by reference, not by words

Every panel is a **staging call**. Instead of describing the character and location in the panel prompt (which reinterprets them each time), you attach the locked reference sheets and let them carry identity:

Attach as `referenceImages` on each panel generation:
1. **Character** — its `reference-image` (front) or `character-sheet` (for a non-front angle).
2. **Scene** — the `set-reference` (establishing) or the specific tile from the `coverage-sheet` (reverse / overhead / profile) that matches the shot.
3. **Props** — the character's `props` flat-lay.

Then the prompt states only the *action, framing, and light*. Obey the scene's **light contract** from `consistent-scenes` (key-light direction, height, colour temperature, shadow direction) — a subject lit from the wrong side against a locked plate reads as a fake composite instantly.

If no locked kit exists, you can still storyboard with pure-text panels — just expect drift, and lock a kit first for anything that needs to cut together.

## Nano Banana quick reference

- New establishing plate / prop still / pure-text panel → `generate_image` (text only).
- Stage a locked character into a locked scene, or build a multi-view sheet → `edit_image` with `imagePath` = the primary reference, `referenceImages` = the others.
- Tweak the last panel (expression, framing) → `continue_editing`.
- Aspect ratio: `9:16` for vertical delivery (TikTok/Reels/Shorts), `16:9` for landscape. Keep it identical across every panel.
- No native stitcher. Assemble a board via (a) a prompted N-panel collage, (b) `magick montage panel_*.png -tile 3x3 -geometry +8+8 board.png` if ImageMagick is present, or (c) a markdown/HTML contact sheet referencing the panel files with their annotations.

## Shot types

| Abbr | Name | Framing | Use |
|------|------|---------|-----|
| ECU | Extreme Close-Up | Eyes / a detail | Intense emotion, revealing a detail |
| CU | Close-Up | Face fills frame | Emotion, reaction, dialogue |
| MCU | Medium Close-Up | Head & shoulders | Interviews, talking to camera |
| MS | Medium Shot | Waist up | General dialogue, action |
| MLS | Medium Long Shot | Knees up | Walking, casual interaction |
| LS | Long Shot | Full body | Character in environment |
| WS | Wide Shot | Environment dominant | Establishing location, scale |
| EWS | Extreme Wide Shot | Vast landscape | Epic scope, isolation, transitions |

## Camera angles

Eye Level (neutral default) · High (subject small/vulnerable) · Low (powerful/dominant) · Bird's Eye (overview/geography) · Worm's Eye (awe) · Dutch (unease, action) · Over-the-Shoulder (conversation/POV).

## Camera movement (annotate on the panel; hand to a video model for motion)

Pan · Tilt · Dolly (in = intimacy, out = distance) · Truck (lateral follow) · Crane/Jib · Zoom · Steadicam/Gimbal (smooth follow) · Handheld (urgency, chaos) · Static (stability, tension). Indicate with arrows on the panel.

## Continuity rules (the whole reason to board first)

- **180° rule** — keep the camera on one side of the axis between two subjects; cross only with a neutral shot or a visible move. Flag any deliberate axis break so it doesn't happen by accident.
- **Match on action** — cut between angles mid-action so motion continues seamlessly.
- **Eyeline match** — a look is followed by what's looked at, from that POV (e.g. a glance down → ECU of the thing).
- **Screen direction** — consistent left/right travel between shots; reversing implies the subject turned around.

## Panel layout & annotation

Formats: 2×2 (key moments), 2×3 (dialogue), 3×3 (action/montage), single (hero shot). Annotate every panel:

```
SCENE / BEAT — SHOT n
Shot: MS, eye level
Movement: slow dolly in
Duration: 2.5s
Action: <what happens>
Dialogue: "<line>"
SFX / Music: <cue>
Refs used: <character-sheet> + <scene angle> + <props>
```

## Workflow

**Step 1 — Shot list (text first).** Break each beat into shots. Vary shot type for rhythm, open scenes on a WS/EWS establisher, keep 5–8 shots per scene, and note the continuity requirement on every cut.

**Step 2 — Generate panels (staging).** One `edit_image` per panel: attach the locked character + matching scene angle + props, write only the action and framing, obey the light contract, set the aspect ratio. Do **not** re-describe the character or location in words.

**Step 3 — Assemble the board.** Collage via Nano Banana, `magick montage`, or a markdown contact sheet with the annotations above.

## Consistency tips

- Reference sheets over words — never re-describe a locked subject in a panel prompt.
- Pull the matching tile from the `coverage-sheet` when a panel isn't the front/master view.
- Keep aspect ratio and the light contract identical across all panels.
- If a panel drifts, regenerate with the correct reference attached — don't accept-and-continue.

## Common mistakes

Crossing the 180° line by accident · all-same-shot-type (no rhythm) · no establishing shot · too many shots per beat · re-describing locked subjects in words (reintroduces drift) · wrong key-light side against a locked plate (reads as a composite) · inconsistent aspect ratio between panels.

## Worked example (generic)

```
SCENE 1 — CAFÉ, DAY   (vertical 9:16, light contract: window key from frame-left)

1.1  WS   eye level, static      — establish café interior            [scene set-reference]
1.2  MS   eye level, slow dolly  — Ana sits, opens laptop             [Ana character-sheet + scene + props]
1.3  CU   eye level              — Ana reacts to the screen           [Ana reference-image]
1.4  ECU  insert                 — the screen detail she sees         [prop still]  (eyeline match from 1.3)
1.5  OTS  over Ana               — barista approaches, says a line    [both sheets; stay on one side of the axis]
```

Each panel = one `edit_image` staging call attaching the bracketed references; the prompt carries only framing, action, and light.

## Related skills

`consistent-characters` · `consistent-scenes` · `consistent-products` (lock subjects/sets/props first) · `ai-image-prompts` (panel prompt craft) · `performance-creative` / `static-ads` (ad creative context).

