Stories (90-second videos)
A story turns one script and nine images into nine 10-second scenes, generated independently and stitched into a single video — the way to get past the per-clip length limit.
How it works
- Paste a script. We break it into 9 editable scene prompts — one per 10-second segment — or you can write the scenes yourself.
- 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.
- Pick one settings set — model, aspect ratio, resolution, quality — shared by all 9 scenes so the cuts stitch cleanly. You see the total price before submitting.
- Submit and walk away. The scenes render as ordinary jobs; when all nine are done we stitch them into one MP4, deliver it on the story page, and fire your webhook once.
Billing: per successful scene
Each scene is billed only if it completes — a story's price is simply 9 × 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. Once every scene is done, stitching and delivery are free.
Limits (current)
| Setting | Story Mode |
|---|---|
| Scenes | 9 × 10 seconds (90s total) |
| Resolution | Up to 720p (1080p remains single-clip-only for now) |
| Settings | One model / aspect ratio / resolution / quality for all scenes |
| Transitions | Hard 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:
{
"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).