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.

FormExampleSpeaker
NARRATION: / VOICEOVER: / VO:VO: Every drop is measured.Narrator
Label with a nameNARRATION (Grant): Every drop is measured.Grant
ALL-CAPS name + colonGRANT: Every drop is measured.Grant
ALL-CAPS cue on its own lineGRANT then the line beneath itGrant
Cue with a delivery noteGRANT (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: hello is dialogue; Grant: hello is 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 lengthSpoken wordsBest for
5s~12Fast cuts, montage, punchlines
8s~20Default — B-roll with or without narration
12s~30An avatar carrying a full thought
15s~37Maximum; 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: or VO:, not GRANT:. 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.