
A sentence becomes a film: the local production chain
A video model renders five seconds. A film needs a story, shots that follow each other, sound that matches the picture, music, and an edit. Our chain chains all of it behind one command: you write a sentence, you get a film. Nobody launches seven scripts by hand.
How these figures were obtained. Measured on our own machines (see the protocol), usually a single run, with speeds as reported by the server itself; we do not publish raw logs. Treat them as orders of magnitude on this hardware, not as guarantees on yours. Figures from outside are labelled with their source.
What you get. From "a watchmaker repairs an old watch, at night" to an edited short film with foley and music, on your own cards. A storyboard of the whole film in 33 seconds before any long render, and four valid shot lists out of four on the first try.
realiser.py "A watchmaker repairs an old watch, at night" --plans=8
1. The chain, and what each step costs
| Step | Tool | Cost |
|---|---|---|
| the sentence becomes a scene and a shot list | a local 27B model, then a checker | a few seconds, no card |
| the shots | Wan 2.2 in ComfyUI | about 115 s per shot in fast mode (774 s at 20 steps) |
| foley, synchronised to the picture | MMAudio | 6 s per shot |
| the music | ACE-Step | 27 s for 3 minutes |
| mix, cut and edit | small scripts and ffmpeg | a few seconds |
2. Three decisions that drive the rest
The model proposes, the code refuses. The language model writes the technical sheet; a checker refuses it before a card lights up: unknown references, framings off the list, missing shots, and above all resolved actions. A video model renders the seconds that follow what you describe: "he closes the door" gives a door already closed. Every shot must say still or use a present participle. A shot costs thirteen minutes; an invalid sheet found afterwards costs two hours.
Cut before adding sound. The video model slows down at the end of a shot. The chain cuts at the last frame still in motion, and only then lets the foley model look at the frames; otherwise the sound slides by a third over the scene.
Storyboards before shots. --mode=planches renders one frame per shot: 33 seconds instead of 13 minutes. You check the breakdown, the characters and the framings, everything decided at that stage, before the full render.
3. Fast mode, and why it is the default
Distillation LoRAs render in four steps instead of twenty. Measured on 33 frames, same seed: 225 s at 20 steps, 33 s in four steps (6.8 times faster). And the picture was better: the 20-step reference came out dark and soft, the four-step render sharp. The metric said "very different", not "worse": it took looking to know.
With these LoRAs, guidance drops to 1.0, and both LoRAs are needed, one per expert of the model. Only one, and the other expert stays at its old pace.
Traps
Compare an upscale against a bicubic control of the same size, not against the source: doubling the resolution increases flicker by itself, and without a control the bench blames the wrong tool.
Never trust a single number for an image. Look at the frames.
Found this useful? Tell us what to measure next.