⭐ Storyboard MCP · Story-to-screen flagship · Animated-video mode
The Lighthouse BirdAn original short story, animated into a 60-second narrated reel
Paste a short story into the playbook, choose animated-video mode, get a vertical reel with a warm storyteller voice-over and a unified instrumental score. The story-to-screen playbook breaks an arbitrary story into N visual beats, locks the cast across every frame, generates the panels, animates each one with real kling-v3-i2v motion under strict B9 motion-budget discipline (one element moves per panel, cast faces hold still), narrates the prose to time, scores it gently, and stitches the whole thing into a TikTok / YouTube Shorts / Instagram Reels-ready MP4. This example is an original short story written for the playbook itself — Mira, a girl in a lighthouse, finds a wounded gull and her grandfather Tobin teaches her to heal it.
The reel · 1080×192060s · 6 × real i2v animation · warm VO + piano-strings
The story — original prose, narrated to time
The playbook explicitly refuses to render text from copyrighted works verbatim — published novels, song lyrics, and named-scripture quotes all stop at the brief stage. The example here is an original short story written for the playbook so the entire pipeline can be reproduced safely. Bring your own writing or a public-domain text and the playbook works the same.
For animated-video mode, the narration script is broken so each ~10 seconds of voice-over aligns with one panel. Times below match the rendered 60s reel.
0:00–0:10On a stormy autumn night, Mira and her grandfather Tobin watched the sea through the lantern-room window. The light swept and swept, and the waves climbed and fell.
0:10–0:20In the morning, Mira walked the rocky shore. Among the seaweed she found a gull with a broken wing, looking up at her with one bright eye.
0:20–0:30She carried the bird up to the lantern room and laid it in a wooden crate. She fed it water from a spoon. Tobin watched from the doorway and said nothing.
0:30–0:40Days passed. Tobin showed her how to splint the wing. The gull sat patient in her lap.
0:40–0:50One sunrise, they took the bird to the cliff. Mira lifted it skyward with both her hands. Tobin stood beside her.
0:50–0:60The gull rose. It circled back once, low past their faces, and then it flew into the morning sun.
The six panels — locked cast, locked style, six visual beats
Each panel below is a single keyframe that goes through real kling-v3-i2v animation for 10 seconds under strict B9 motion-budget discipline: each i2v prompt allows exactly ONE element to move (a wing stretch, a hand reach, a wind in the braids), with explicit "faces and bodies hold PERFECTLY STILL" clauses to mitigate face drift. That's how you get real animation across 6 panels without losing character identity. The kling output normalizes to ~4:3 regardless of the source aspect, so we composite each clip onto a 1080×1920 vertical frame using its own heavily-blurred copy as the background fill (standard TikTok / Instagram landscape-in-vertical trick) — full motion preserved, zero distortion.

1 — stormy lantern-room

2 — finding the gull

3 — feeding by spoon

4 — splinting the wing

5 — lifting skyward

6 — flight into the sun
The cast — locked verbatim across every panel
The most important quality control in story-to-screen is the character constant block: the same ~30-word physical spec is re-pasted into every panel prompt, never abbreviated to "Mira (see above)". This is the difference between a coherent reel and a six-panel parade of similar-looking strangers. The playbook embeds these specs into every create_media call automatically.
Mira
~9-year-old girl. Curly red braids tied with twine, freckled cheeks, alert wide blue eyes. Wears a blue wool sweater under a yellow oilcloth raincoat. Gentle, attentive expression. Same clothing across every panel.
Grandfather Tobin
~70 years old, weather-tanned face, short-cropped white beard and mustache, kind crinkled eyes. Wears a cream wool fisherman's sweater under a navy peacoat. Quiet, patient demeanor. Same clothing across every panel.
Voice-over & music — warm storyteller + intimate Ghibli-tier piano
Voice-over brief: warm female storyteller, slow contemplative pace, soft and tender — like reading a bedtime story. The agent uses gemini-tts with a "Gacrux" voice profile; no specific celebrity / personality referenced. Music brief: solo piano + soft strings, intimate Studio-Ghibli-tier score, builds gently from contemplative open to warm major-key release in the closing 10 seconds, no vocals. Both are mixed: voice 1.0 / music ducked to 0.18 so the words always sit on top of the bed.
Quality controls applied for this run — the gates the playbook ran before any keyframe fired
The playbook's pre-render gates (A1–A6) are where most of the quality is won. Cast bible + beat sheet + shot grammar + color script + continuity matrix are bundled into ONE approval gate, surfaced to the user before any expensive generation. Each row directly shapes one or more of the panel prompts.
A1 · Cast bible — 5-axis spec, not a one-liner
The single most common cause of character drift is an underspecified cast. Each named figure is locked across 5 axes (identity_anchor, face, wardrobe + change_policy, expression, silhouette). The identity_anchor opens every prompt mention because models bias on the first ~10 tokens of an entity description.
Mira · 9 years old
anchor: "9-year-old red-braided lighthouse-keeper's granddaughter"
face: round head, two thick rust-red braids tied with twine, wide alert blue eyes, freckled skin
wardrobe: thick blue wool sweater + yellow oilcloth raincoat (hood down) + dark wool trousers + rubber wellingtons
change_policy: SAME CLOTHING across every panel
expression: attentive, gentle, watchful
silhouette: small upright figure, braids visible from any angle
Grandfather Tobin · ~70 years old
anchor: "70-year-old white-bearded lighthouse-keeper grandfather"
face: weather-tanned, short-cropped white beard and mustache, kind crinkled eyes
wardrobe: cream wool fisherman's sweater + navy peacoat + dark trousers + worn brown leather boots
change_policy: SAME CLOTHING across every panel
expression: quiet, patient, often watching from doorway distance
silhouette: tall stocky figure, white beard visible from any angle
The gull · side-character with 3-axis spec
species: herring gull ·
markings: white body, grey wings, yellow beak with single red spot ·
condition: variable per panel (see A5 continuity matrix)
A2 + A3 · Beat sheet × shot grammar — every panel has a dramatic role AND a cinematic role
Beat role constrains the emotional dial. Shot grammar enforces cinematic variety — AI models will repeat compositions unless told otherwise, so the agent forces at least 1 wide / 2 medium / 2 close / 1 detail across 6 panels.
| Panel |
Beat (A2) |
Shot (A3) |
Camera clause injected into prompt |
| 1 | SETUP | wide / interior | wide establishing, both characters small in frame, viewed from behind looking out the lantern window |
| 2 | INCITING | medium-close | medium shot, Mira kneeling beside the gull on the rocks, waist-up, eye level |
| 3 | CARE | close (two-shot) | close-up two-shot, Mira's hands with the spoon, Tobin out of focus in doorway behind |
| 4 | DEEPENING | medium / over-shoulder | medium over-the-shoulder of Tobin teaching, the splint material on Mira's lap in focus |
| 5 | TURN | wide / environmental | wide cliff-edge shot, both silhouettes against rising sun, Mira lifting the gull |
| 6 | PAYOFF | low-angle / sky | low-angle, gull mid-flight past their faces, both characters looking up, sun behind |
A4 · Color script — palette evolves with the arc
A locked style ≠ a static palette. The agent designs a 6-step palette that traces COOL → WARM as the story moves from tension to release. The style sentence stays constant; the per-panel palette accent shifts.
P5 · pre-dawn purple-pink
A5 · Continuity state matrix — props and conditions per panel
Each ✓ becomes a positive flag injected into the panel prompt ("gull's left wing splinted with linen"). Each — becomes a negative when forgetting it would cause drift ("no splint — the gull is now free"). The matrix is what keeps the gull's injury, the splint, and the release timing all coherent.
| State flag |
P1 |
P2 |
P3 |
P4 |
P5 |
P6 |
| Mira in raincoat | ✓ | ✓ | — | — | ✓ | ✓ |
| Mira indoors | ✓ | — | ✓ | ✓ | — | — |
| Tobin present | ✓ | — | ✓ | ✓ | ✓ | ✓ |
| Gull present | — | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gull injured wing | — | ✓ | ✓ | — | — | — |
| Gull splinted | — | — | — | ✓ | ✓ | — |
| Gull flying / free | — | — | — | — | — | ✓ |
| Stormy weather | ✓ | — | — | — | — | — |
B4 · Deterministic prompt assembly template — same field order every panel
Every panel prompt is assembled in the same order, so the model sees a stable shape across all 6 calls. The deterministic order is itself a quality control — it removes prompt-craft variance between scenes.
[STYLE BRIEF SENTENCE] ← locked across all panels
[PALETTE ACCENT for this panel] ← from A4 color script
[CHARACTER 1: identity_anchor + face + wardrobe block] ← from A1, full verbatim
[CHARACTER 2: identity_anchor + face + wardrobe block] ← only if in this panel per A5
[SETTING: location + time-of-day + key light direction]
[ACTION: what's happening, what's on each face]
[CAMERA: shot type + angle from A3]
[CONTINUITY FLAGS: positive + negative state, per A5]
[NEGATIVE: no readable text, no banners, no signs]
Pipeline trace — from pasted story to finished reel
Stage 0 — agent reads the story (no MCP call)
Agent parses the pasted text, extracts cast specs from prose,
identifies 6 visual beats, drafts panel prompts + narration timing.
Stage 1 — approval gate (cheap, your attention only)
User reviews the cast spec, scene breakdown, narration script. Redirect anything.
Stage 2 — keyframe wave (parallel fanout)
6 × create_media action=generate, model=gpt-image → 6/6 done
Each prompt: [style brief] + [verbatim cast spec] + [scene-specific clause]
Stage 3 — i2v animations + voice-over + music (all 8 in parallel)
6 × create_media action=animate, model=kling-v3-i2v, duration=10 → 6/6 done in ~2 min
each prompt: B9 motion-budget — ONE element moves per panel, faces hold steady
1 × create_media action=generate, model=gemini-tts (Gacrux voice) → 57.8s done
1 × create_media action=music, model=minimax-music, piano + strings → done
Stage 4 — vertical-fit + concat + audio mix (local ffmpeg)
Kling output is 1108×828 (4:3) regardless of source aspect. To ship 9:16:
[bg] : split source, scale-to-cover 1080×1920, crop, boxblur=40
[main]: scale source to 1080 wide (= 808 tall, full 4:3 visible)
overlay main centered onto blurred bg → 1080×1920 vertical, no distortion
Concat 6 fitted clips (60.0s) and mix audio:
voice @ 1.0 + music @ 0.18 (ducked under the narrator)
afade in 0–0.4s, afade out at 58–60s
output: the-lighthouse-bird-reel.mp4 (~28MB · H.264 · AAC 192k · 60s)
Quality guards applied throughout
✓ Cast spec re-pasted verbatim into all 6 keyframe + all 6 i2v prompts
✓ Style sentence identical across all 6 keyframes
✓ B9 motion-budget — ONE moving element per i2v call, cast-lock clause
✓ Keyframe prompts forbid signs / banners / readable text in image
✓ Blurred-fill vertical fit — no aspect distortion, all motion preserved
✓ Voice-over timed to 10s-per-panel beats (no rushed reading)
✓ Original story text (no copyrighted prose passed through)
Cost — end-to-end run
Keyframes
~$1.20
6 × gpt-image
i2v animation
~$6.60
6 × kling-v3-i2v 10s
VO + music
~$0.55
gemini-tts + minimax-music
Total
~$8.35
+ local ffmpeg fit = free
Reproduce with your own story — the playbook is open
This reel was built from the story-to-screen playbook. Same 4-stage pipeline works for any short story up to ~2,000 words, any style (Ghibli watercolor, Pixar 3D, inked manga, Mucha art-nouveau, pixel-art JRPG), any panel count from 4 to 16, any narration voice from gemini-tts. Paste your text into the YAML brief, choose animated-video mode, run. ~$8 and ~10 minutes later you have a reel like this.
Want the same story as a vertical webtoon scroll instead? See the webtoon scroll example — same 6 panels, same cast, same style, but with caption boxes burned into each panel for vertical-feed reading.