Browse the docs

Stories (multi-scene videos)

A story turns one script and 2–30 images into 10-second scenes, generated independently and stitched into a single video of up to 5 minutes — the way to get past the per-clip length limit.

How it works

  1. Paste a script. Pick how many scenes you want (2–30) and we break it into editable scene prompts — one per 10-second segment — or write the scenes yourself.
  2. Add one image per scene. Each image is that scene's first frame, exactly like a single clip. Storyboard-style images (a deliberate scene change at each cut) look intentional and work best.
  3. Pick one settings set — model, aspect ratio, resolution, quality — shared by all scenes so the cuts stitch cleanly. You see the total price before submitting.
  4. Submit and walk away. The scenes render as ordinary jobs; when all of them are done we stitch them into one MP4, deliver it on the story page, and fire your webhook once.
Stories render scene-by-scene on the same infrastructure as single clips, so expect roughly 30–45 minutes end to end. You don't need to keep the page open — check back, or let the webhook tell you.

Billing: per successful scene

Each scene is billed only if it completes — a story's price is simply scene count × the 10-second clip price for your settings. If a scene fails, it costs $0 and the story page shows a Re-run this scene button; completed scenes are unaffected and never re-billed. Stitching and delivery add nothing to the price.

Limits (current)

SettingStory Mode
Scenes2–30 scenes × 10 seconds each (20s–5min total)
ResolutionUp to 720p (1080p remains single-clip-only for now)
SettingsOne model / aspect ratio / resolution / quality for all scenes
TransitionsHard cuts between scenes

The story webhook

Set a webhook URL on the story (not on individual scenes) and we POST once, when the stitched video is ready — same delivery headers and retry behavior as regular webhooks. For stories, the job_id field carries the story id:

POST your-webhook-url
{
  "job_id": "<story id>",
  "status": "completed",
  "output_url": "https://…/story-<id>.mp4"
}

A needs_attention delivery means a scene failed and is waiting for a re-run; failed means the story gave up (e.g. timed out).