Skip to content

elements[].type: "voice"

Voice, subtitles and images — declared, not produced

Neural voiceovers with word-timed subtitles and prompt-generated images — declared inline in the same JSON document.

Neural voiceover

Add a voice element with text and a voice. The renderer synthesizes the narration and can size the scene to fit it exactly.

Word-timed subtitles

Auto subtitles come from the speech synthesis itself, so each word highlights at the exact moment it is spoken — no transcription step.

Generated images

Give an image element a prompt instead of a URL. Seeded generations are reproducible, and repeated renders reuse the cache for free.

AI-drafted documents

Describe the video you want in a sentence and get back a valid document to refine in the editor — validated before you ever see it.

Deterministic renders

Same document, same output. Generation happens in a prepare step, so the render itself is a pure function of the document.

Metered fairly

Image generations are metered per generated image; cache hits and re-renders cost nothing extra.

scene.elements
{
  "id": "voiceover",
  "type": "voice",
  "text": "{{script}}",
  "voiceId": "Joanna",
  "language": "en-US"
},
{ "id": "captions", "type": "subtitles" },
{
  "id": "backdrop",
  "type": "image",
  "generate": { "prompt": "sunrise over a city skyline, cinematic", "seed": 7 }
}