Milimo Storyboard Analyst Skill
SkillMediaExpertise in the Milimo Video Storyboard pipeline, from script parsing (Regex vs AI via Gemma) to generating concept art thumbnails and handling the Smart Element Matching engine. Use this when debugging storyboard extraction, prompt generation for chained video chunks, or modifying the scene/shot hierarchy logic.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Milimo Storyboard Analyst Skill skill
What this skill tells your AI
The instructions your AI receives, as published by mainza-ai/milimovideo in skills/skills/milimo-storyboard-analyst/SKILL.md and read by ahel’s review.
As the Milimo Storyboard Analyst, your domain is transforming plain text screenplays into generation-ready, strictly formatted data structures (Scene and Shot records), and enriching those structures with intelligent context.
1. Script Parsing Pipelines
The frontend StoryboardView.tsx accepts raw script text. The backend processes it through two main parsing methodologies:
A. The Regex Parser (services/script_parser.py)
- Fast, deterministic. Good for perfectly formatted standard screenplays.
- Uses regex to detect
INT./EXT.(Scenes), ALL CAPS (Character Names), and action blocks. - Failures: Will miss non-standard formatting, prose descriptions, or poorly formatted text.
B. The AI Parser (services/ai_storyboard.py)
- Dispatched via
POST /storyboard/ai-parsewhen the brain icon is clicked. - Routes through the LTX-2 Text Encoder's chat completion interface (
_enhance()), defaulting to Gemma 3. - Instructs the AI (via
AI_STORYBOARD_SYSTEM_PROMPT) to act as a storyboard artist and build a cinematic[ { "scene_heading": "...", "shots": [ ... ] } ]JSON array. - Evaluates implicit action descriptions to generate varied, appropriate cinematic
shot_types(close_up,wide,tracking, etc.). - Fallback: If Gemma unavailable, automatically routes back to Regex parser.
2. Smart Element Matching (services/element_matcher.py)
After a script is parsed but before it is committed to the database, the backend attempts to auto-link the newly discovered shots to existing Project Elements (characters, locations, items).
- No LLM required: Evaluates 8 discrete signals deterministically.
- Calculates a composite confidence score:
- Exact character match:
1.0 - Trigger word in action:
0.95 - Name in action:
0.85, etc.
- Exact character match:
- Matches with score
>= 0.35are linked into theshot.matched_elementsJSON field. - Why it matters:
StoryboardManageruses this data to inject visual conditioning (IP-Adapter reference images) into the generation pipeline for that shot.
3. Thumbnail Generation & The Job Queue
- UI triggers thumbnail generation:
POST /projects/{id}/storyboard/thumbnails. - Generates 512x320 concept art using Flux 2 (
generate_image_task). - Creates a backend
Jobmarked withis_thumbnail=True. - The
BackgroundTasksworker fulfills the generation, saves toShot.thumbnail_url, and fires an SSE"complete"event containingshot_idinstead oflastJobId. - CRITICAL: The frontend ServerSlice deliberately ignores
thumbnailUrlupdates if they do not matchshot.lastJobIdunlessis_thumbnail: trueis set, ensuring video generation jobs and thumbnail generation jobs do not conflict in the UI state.
4. Continuity (The Pipeline Handoff)
- To ensure flow across scenes, when
StoryboardManager.prepare_shot_generation()is called on shotN, it attempts to pull the last frame of shotN-1. - Uses
asyncio.create_subprocess_execffmpeg extraction (-sseof -0.1) to grab the frame without blocking the FastAPI event loop. - Modifies the generation request to include this extracted image as
conditioning_imageatframe_0.
Signals
- GitHub stars
- 85
- Forks
- 19
- Last commit
- Mar 2026
Advanced
- Catalog kind
- skill
- Gateway key
milimo-storyboard-analyst- Source
- github.com/mainza-ai/milimovideo