Pro API: generate videos with sound
A clip from a prompt, or an animation of a still you supply. The file is an MP4, with sound when you ask for it.
Submit a video
POST /videos
{ "prompt": "a woman in a white linen dress walks along a beach at sunset, wind in her hair, she turns and smiles at the camera",
"width": 1080, "height": 1920, "audio": true }
| Field | Type | Default | What it does |
|---|---|---|---|
prompt | string | required | The action, the mood, the light. Describe the movement. |
width, height | int | 720 x 1280 | Vertical by default. See the price grid below. |
mode | string | ltx25 | ltx25: engine 2.5 (sound, automatic duration, 1080p, end frame). turbo: the fast, cheap lane in 480p, no end frame. |
duration_auto | bool | true | The engine picks the length from the prompt, and length becomes a ceiling. Set false for a fixed length. |
length | int | 121 | Length (or ceiling) in frames at 24 fps, always of the form 8n+1: 73 (3 s), 121 (5 s), 241 (10 s), 361 (15 s), 481 (20 s). |
audio | bool | false | Sound generated along with the picture (ambience, voice). |
image | string | Start frame in base64: the video animates this image. | |
end_image | string | End frame in base64, alongside image: the clip transitions from one to the other (engine 2.5 only). | |
lora, lora_strength | string, number | A trained character on the account (name from GET /loras) and its strength (0 to 1). | |
lora2, lora2_strength | string, number | A second character. | |
steps | int | engine | Leave empty. |
The answer:
{ "jobId": "...", "seed": 908172, "cost": 30 }
The cost is computed and announced at submission, before anything is charged.
Formats and price
A video is priced per format, as a flat rate independent of its length. Base: 5 credits.
| Format | Short side | Example sizes | Silent | With sound |
|---|---|---|---|---|
| 480p | 480 | 480 x 832, 832 x 480 | 5 | 10 |
| 720p | 720 | 720 x 1280, 1280 x 720 | 10 | 20 |
| 1080p | 1080 | 1080 x 1920, 1920 x 1080 | 15 | 30 |
The turbo lane prices differently: 480p, 1 credit per 2.5 seconds (5 s = 2 credits, 10 s = 4),
sound included, no end frame.
Poll, download, cancel
The same routes as images, under /videos.
GET /videos/{jobId}:pending/completed/failed, same fields.GET /videos/{jobId}/file: the MP4 (Content-Type: video/mp4).POST /videos/{jobId}/cancel: cancels, and nothing is charged.
A video takes 1 to 5 minutes, longer when the engine starts cold. Poll every 3 seconds and
download as soon as the status is completed: the file is not archived.