⭐ Storyboard MCP · Flagship · MTV with lyric typewriter
City LightThe MTV playbook — with lyrics · one indie-pop song into a polished music video in ~10 minutes
An anthemic indie-pop song generated by minimax-music at 110 BPM with a warm female vocal, paired with 6 painterly-noir cinematic scenes, beat-locked transitions, and an animated typewriter overlay of the lyrics — sync'd line-by-line to the song's structure. The video below is the proof: the playbook took 10 minutes wall-clock and ~$4 in inference to produce.
City Light · 1920×1080 cinema · lyrics sync57.5s · 6 scenes + 6 lyric reveals · minimax indie-pop · all paths reproducible
The lyrics — sung by minimax-music (via `lyrics_prompt`) and overlaid by Pillow + ffmpeg typewriter
I drew a city light tonight
and waited for the world to find
the way you used to walk through rain
and turn around to say my name
the city sleeps, the city wakes
I'm still here, for old time's sake
The 6 scenes — painterly noir, structure-locked to song sections

S1 · INTROcafe window, rain

S2 · VERSE 1waiting at the table

S3 · VERSE 2walking POV memory

S4 · BRIDGEthe call back

S5 · CHORUSdawn arriving over the city

S6 · CODApeaceful resolution
Pipeline trace — end-to-end with crossfade transitions + lyric overlay
Stage 1 — UNDERSTAND THE MUSIC
1 × create_media action=music, model=minimax-music with TWO inputs:
prompt = "anthemic indie-pop, 110 BPM, warm female vocal, soft synths" ← STYLE
lyrics_prompt = "[Verse]\nI drew a city light tonight\n…\n[Outro]\nfor old time's sake" ← WORDS
Output: 60s mp3 with the lyrics above sung by a warm female vocal at 110 BPM → done in ~37s
⚠ BUG class fixed 2026-06-03: prior runs left lyrics_prompt blank,
so the singer literally sang the STYLE prompt out loud. Now create_media
requires explicit lyrics_prompt — fails fast if missing.
Stage 2 — SCENE PLAN (agent-derived)
6 scenes × ~10s each, one per song section (intro / 2 verses / bridge / chorus / coda)
Each scene's prompt embeds the visual_style + palette + per-section narrative beat
Stage 3 — KEYFRAMES (parallel)
6 × create_media model=krea-2-large, ~28s each → all done in ~30s
Stage 4 — ANIMATE (parallel)
6 × create_media action=animate, model=kling-v3-i2v, duration=10s → all done in ~100s
Stage 5 — LYRIC TYPEWRITER OVERLAY
Python + Pillow renders 6 × 1920×1080 transparent PNGs, one per lyric line
Font: Times New Roman, 64pt, warm-cream (#f4e8d0) with soft shadow, positioned at y=880
ffmpeg overlay chain with enable=between(t,start,end) per line — staggered every ~9.6s
Stage 6 — STITCH (local ffmpeg, deterministic)
6a · vertical-fit each 1:1 anim to 1920×1080 with blurred side bars
6b · xfade chain — 0.5s crossfade between adjacent clips at offsets 9.5/19/28.5/38/47.5
6c · overlay lyric PNGs at staggered timestamps with fade in/out
6d · mux music at 1.0 volume (no duck — the song IS the soundtrack)
Output → city-light-reel.mp4 · 1920×1080 · 57.5s · 22MB · H.264 + AAC
Cost — honest end-to-end
Music
~$0.30
1 × minimax-music
Keyframes
~$0.38
6 × krea-2-large @ $0.063
Animations
~$3.15
6 × kling-v3-i2v @ $0.525
Stitching
$0.00
local ffmpeg + Pillow
Total: ~$3.83 for a 57.5-second MTV-grade reel with lyric typewriter. The per-second cost ($0.067/s) is cheaper than any agency-produced music video on the market.
Reproduce — the playbook is open
Pipeline lives in the music-video-mtv playbook. Bring your own Suno track, your own minimax-music brief, or any mp3 URL — the chassis works the same. Toggle lyric overlay via mode: "lyrics" or mode: "instrumental" in the brief.