How it works
What this tool does, what it deliberately doesn't, and where the generation happens.
The six stages
- 01
Idea
One or two sentences: who it's about, what goes wrong, what's at stake. Everything else is expanded from this, and you can rewrite it at any point without losing the work below it.
- 02
Story
The premise is a paragraph of what actually happens. The bible is the part that matters: characters, locations, visual style, palette, lighting, film stock. Every shot prompt inherits it, which is what stops your character's face changing between shots.
- 03
Scenes
A scene is a place and a stretch of time. Give it a setting, a time of day, a mood and a target length, and the board tells you when its shots don't add up to that target.
- 04
Shots
The unit of work. Shot type, camera angle, camera move and lens come from a fixed film vocabulary, so the compiler can turn them into real camera language. Subject is who's in frame; action is what visibly happens — that's what the video model animates.
- 05
Setup image
Each shot gets one still you look at and approve, generated from a prompt compiled out of the bible and the shot. Make several candidates and keep the best. This still becomes frame one of the video, which is the whole reason the film stays consistent.
- 06
Video prompt
The motion half. It deliberately doesn't re-describe the scene — the setup image is already frame one, and repeating it fights the reference. Export the shot list as machine JSON your local pipeline iterates, or as a readable call sheet.
Image-first is the whole trick
The hard problem in AI video isn't motion, it's consistency: the same character has to be the same character six shots later. Text-to-video regenerates the world from scratch every clip, so it drifts.
So every shot here gets a setup image first — one still you look at and approve. That still becomes frame one of an image-to-video generation, which means the video model inherits the look instead of inventing it. You can generate three or four candidates per shot and keep the one that matches.
The bible is the consistency lever
Character and location descriptions live once, at project level. The prompt compiler pastes them into every shot those characters appear in, along with your visual style, palette, film stock and style tokens.
That's why prompts here are compiled, not stored. Fix a description once and every shot that uses it changes. You can still hand-write any individual prompt — the app just tells you plainly when you've done that, because a hand-written prompt stops inheriting those fixes.
The film knowledge base
Shot types, angles, camera moves, lenses, lighting and pacing are a fixed vocabulary, not free text. Each entry carries the exact camera language a generator understands — a low angle becomes "camera below the subject looking up, subject appears imposing", not the word "low".
The AI drafts against the same vocabulary, so it can't invent a shot type the rest of the app doesn't understand.
Where generation happens
Not here. Images and video are generated on the owner's own RTX 3090 — free, private, and the local models are the ones he wants. This app plans and hands his machine correct prompts, exported as machine JSON his pipeline can iterate and as a readable shot list.
A live bridge to a local ComfyUI endpoint is scaffolded and documented but not built. Until it is, the loop is: copy the prompt → generate locally → drop the PNG back onto the shot.
Where your projects live
In this browser, in localStorage. No accounts, no upload, no database. That's the right trade for a single-operator planning tool — but it means clearing this browser's storage deletes your projects. Export the project JSON for anything you care about.
Drafting from a logline is the one thing that touches a server: the logline goes to the Anthropic API and the drafted structure comes back. Without an API key configured, drafting falls back to a built-in film-grammar skeleton and says so.