User Guide
Script Format
How to write and format a script so Scene.Video reads it correctly
Scene.Video parses your script to decide three separate things: what gets spoken aloud, what gets shown on screen, and where one scene ends and the next begins. Formatting is not cosmetic here — a line that looks like description to you can end up in an actor's mouth.
This page is the format that gets all three right.
The one rule that matters most
In a pasted script, any line that isn't recognized as direction gets spoken.
When Scene.Video can't find labeled dialogue in a scene, it falls back to reading the prose aloud. That fallback is what turns "Two identical faces appear side by side" into voice-over.
So: label your speech, and label your direction. Never leave a bare paragraph and hope it's understood as visual.
(Scripts written by the in-app Write script page don't have this problem — they mark their prose as visual by construction. The rule applies to anything you paste in yourself.)
The format
SCENE 1 — Cold open
INT. TEST KITCHEN — DAY
Duration: 8s
VISUAL: A steel prep bench under a single hanging lamp. One white
egg sits dead centre, still. Shallow depth of field.
NARRATION: One thing changed yesterday, and almost nobody noticed.
SFX: room tone, a fridge hum
MUSIC: minimal, low pulse, tense
Repeat per scene. Everything in it is optional except the visual line and whatever is spoken — but the more layers you label, the less the pipeline has to guess.
Labels that mark speech
These are read aloud. Everything else on the line is not.
| Form | Example | Speaker |
|---|---|---|
NARRATION: / VOICEOVER: / VO: | VO: Every drop is measured. | Narrator |
| Label with a name | NARRATION (Grant): Every drop is measured. | Grant |
| ALL-CAPS name + colon | GRANT: Every drop is measured. | Grant |
| ALL-CAPS cue on its own line | GRANT then the line beneath it | Grant |
| Cue with a delivery note | GRANT (dry, unimpressed) | Grant, with tone |
| Quoted blockquote | > "Every drop is measured." | Narrator, or the cue above it |
Two things to watch:
- A blank line ends a speech block. Keep one speaker's lines contiguous, then break.
- The ALL-CAPS name form is case-sensitive.
GRANT: hellois dialogue;Grant: hellois not.
Labels that are never spoken
Start a line with any of these and it stays direction:
NOTE · DIRECTION · CAMERA · VISUAL · SFX · SOUND · SOUND FX · MUSIC · ACTION · STAGE · PRODUCTION · TECH · EDIT · B-ROLL · GRAPHICS · TITLE · SUPER · CHYRON · OVER BLACK · MONTAGE · INSERT · INTERCUT · WORD COUNT · TOTAL RUNTIME · RUNTIME · DURATION
Screenplay sluglines and transitions are also safe: INT., EXT., EST., FADE, CUT TO, SMASH CUT, DISSOLVE TO.
You can trail direction after a voice-over on the same row — the speech ends where the directive starts:
VO: "One thing changed yesterday." On-screen: EGG_CARTON, Visual: slow push-in
Traps
These are the ways a script quietly ends up with narration nobody wrote.
An ALL-CAPS label that isn't on the list becomes a character. SETTING: A rain-slick alley parses as a character named SETTING saying "A rain-slick alley" — and it gets spoken. Use VISUAL: instead, or write it mixed-case as Setting:.
A bare direction word with no colon becomes a speaker cue. A lone MONTAGE line reads as a character named MONTAGE, and everything under it becomes their dialogue. Always punctuate: MONTAGE:.
Word-count captions get read aloud. 30 words · ~12 seconds is filtered only in that exact shape. Label it — WORD COUNT: 30 words · ~12 seconds — or leave it out.
Markdown is fine. # headings, **bold**, > blockquotes and - bullets are all stripped before parsing. **VO:** "line" works.
Timing
Two hard limits shape every scene:
- 15 seconds is the ceiling. A talking-avatar clip can't run longer, and AI motion tops out around there too.
- 7–8 seconds is the practical limit without a speaker. Past that a shot with nobody talking over it is a static image holding the screen, and it reads as dead air.
Reach a long runtime with more scenes, never longer ones.
Speech budget at roughly 2.5 words per second:
| Scene length | Spoken words | Best for |
|---|---|---|
| 5s | ~12 | Fast cuts, montage, punchlines |
| 8s | ~20 | Default — B-roll with or without narration |
| 12s | ~30 | An avatar carrying a full thought |
| 15s | ~37 | Maximum; avatar only |
If a passage of copy won't fit, split it across consecutive scenes at a sentence boundary. Never speed up the delivery to make it fit.
One scene = one continuous shot
One location, one continuous camera take, one unified beat. If the action cuts to a new angle or a new place, that's a new scene. A scene that contains a cut can't be rendered as a single clip.
Keep the layers separate:
- Visual — the frozen first frame only. What a photograph of frame 1 would show: subject, setting, light, lens. No movement, no camera moves, no spoken words.
- Action — what happens over the shot, in plain English, one beat at a time. No camera language.
- Camera — one move for the whole shot ("slow push-in on her face"), or none. Never stacked.
- Dialogue — spoken words only.
- Sound — ambient bed and discrete effects. Not speech, not score.
- Music — intent only: presence, style, mood.
Mixing them is the most common way a scene comes out wrong — a camera move buried in an action beat, or dialogue folded into the image description.
Presenter / narrator
If your project has a Presenter, they are a picture-in-picture overlay composited on top of the footage after render. They are never inside a scene's frame and the camera never cuts to them.
So in the script:
- Write their lines as unattributed narration —
NARRATION:orVO:, notGRANT:. Whichever actor is cast will voice it. - Never stage them in a shot. No "Grant turns to camera", no "as Grant delivers the line". Written that way, the video model invents an on-screen stand-in to perform it.
- Every scene is B-roll illustrating what the narration says — the subject, the objects, the places, other cast.
- Other on-camera cast still appear normally. The exclusion is the presenter only.
Cast, locations and props
- Cast — use the exact names of the actors you picked. Don't invent new named characters; an unnamed extra is "a barista", not "Sarah".
- Locations — one per scene, written as a place:
INT. DINER,a rain-slick alley. - Props — uploaded props get an UPPERCASE token. Use that exact token everywhere the object appears, in both prose and visual lines, so the reference image gets attached instead of a lookalike being generated. Don't rename it, don't pluralize it.
Instructions for an AI writing your script
Paste this into ChatGPT, Claude or Grok along with your brief, and the output will drop into Scene.Video cleanly.
Write this as a Scene.Video script.
FORMAT — one block per scene, exactly this shape:
SCENE <n> — <short title>
INT./EXT. <LOCATION> — <TIME OF DAY>
Duration: <n>s
VISUAL: <the frozen first frame only — subject, setting, light, lens.
No movement, no camera moves, no spoken words.>
ACTION: <what happens over the shot, plain English, no camera language>
CAMERA: <one move for the whole shot, or omit the line entirely>
NARRATION: <the spoken words, if any>
SFX: <ambient bed and discrete effects>
MUSIC: <presence, style, mood>
RULES:
1. One scene = one continuous shot. One location, one camera take, one
beat. If it cuts, it's a new scene.
2. No scene longer than <N> seconds. Reach the total runtime with MORE
scenes, never longer ones.
3. Budget spoken words at ~2.5 per second — at most <N x 2.5> words in
any one scene. If a passage doesn't fit, split it across consecutive
scenes at a sentence boundary. Never compress the delivery.
4. Only lines labeled NARRATION:, VO:, or NAME: are spoken. Everything
else must carry a direction label (VISUAL:, ACTION:, CAMERA:, SFX:,
MUSIC:, NOTE:). Never leave a bare unlabeled paragraph.
5. Never use an ALL-CAPS label that isn't one of the above — an unknown
one parses as a character name and gets read aloud.
6. Keep the layers strictly separate: no camera moves inside ACTION, no
dialogue inside VISUAL, no sound effects inside MUSIC.
7. The narrator is an overlay composited on top of the footage. Never
stage them in a shot and never write their name on a spoken line —
every scene is B-roll illustrating what the narration says.
8. Use these exact cast names and no others: <names, or "none">
9. Use these exact UPPERCASE prop tokens wherever the object appears:
<tokens, or "none">
10. Output the scenes only. No preamble, no summary, no word counts.
TARGET RUNTIME: <n> seconds
BRIEF: <your brief>
Fill in the target runtime and the per-scene cap to match what you set on the Write script page, so the writer and the app agree.
Which entry point to use
- Write script (Projects → Write script) — give it a brief or a finished narration and it does the formatting for you, into the structured contract. Your spoken words are reproduced verbatim; it authors the visual layers around them. Set Target length and Target scene length here.
- Script tab — paste a script you already have. This is the path all the formatting rules above protect. Enhance Script will restructure a rough script into scenes for you.