
Joint audio and video generation with millisecond lip sync, dialogue in six languages, cinematic camera moves, and up to 1080p output.
Joint audio and video generation with millisecond lip sync, dialogue in six languages, cinematic camera moves, and up to 1080p output.
Also known as ByteDance Seedance 1.5 Pro
seedance-1-5-pro/v1/videos/generationsbytedance/seedance-1.5-proseedance-1.5-proseedance-1-5-pro-251215Live pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.
Seedance 1.5 Pro runs through POST /v1/videos/generations. The request returns a job_id right away; poll GET /v1/jobs/{job_id} until the job completes and read the output URLs from the result. Get an API key from the EmpirioLabs dashboard.
curl https://api.empiriolabs.ai/v1/videos/generations \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-1-5-pro",
"prompt": "Describe what you want Seedance 1.5 Pro to generate."
}'curl https://api.empiriolabs.ai/v1/jobs/JOB_ID \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY"import requests
response = requests.post(
"https://api.empiriolabs.ai/v1/videos/generations",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
json={
"model": "seedance-1-5-pro",
"prompt": "Describe what you want Seedance 1.5 Pro to generate.",
},
)
job = response.json()
# Generation runs as an async job. Poll until it completes.
import time
while True:
status = requests.get(
f"https://api.empiriolabs.ai/v1/jobs/{job['job_id']}",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
).json()
if status.get("status") in ("completed", "failed"):
print(status)
break
time.sleep(5)Request parameters supported by the Seedance 1.5 Pro API on EmpirioLabs. Defaults apply when a field is omitted.
| Parameter | Type | Default | Range / values | Description |
|---|---|---|---|---|
| prompt | string | - | - | Scene description. Put spoken dialogue in double quotes for lip-synced speech; native audio (dialogue, effects, music) is generated with the video. |
| mode | enum | auto | auto, t2v, i2v_first, i2v_both | auto: detect from the inputs you attach. t2v: text-to-video. i2v_first: animate a first frame. i2v_both: animate between a first and last frame. |
| resolution | enum | 720p | 480p, 720p, 1080p | Output resolution. Audio and silent generations bill at different per-second rates for each resolution. |
| aspect_ratio | enum | adaptive | adaptive, 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 | adaptive lets the model choose. First-frame jobs follow the input image's aspect ratio. |
| custom_duration | boolean | true | - | If false, the model picks the clip length itself. If true, use the duration field. |
| duration | number | 5 | 4 to 12 | Clip length in seconds. Only used when custom_duration is true. |
| generate_audio | boolean | true | - | Generate native synchronized audio (dialogue, effects, music) with the video. Silent output bills at a lower rate. |
| camera_fixed | boolean | false | - | Ask the model to keep the camera position fixed. |
| seed | number | - | -1 to 2147483647 | Integer seed for reproducible-style output. Same seed gives similar, not identical, results. |
| draft | boolean | false | - | Render a cheaper 480p draft first. Re-render the pick at full quality by passing its job id as draft_task_id. |
| return_last_frame | boolean | false | - | Also return the final frame as a PNG, ready to use as the first frame of the next clip. |
| image | string | - | - | First frame image URL. |
| image_end | string | - | - | End-frame image URL for i2v_both. |
| draft_task_id | string | - | - | Job id of a previous draft generation to re-render at full quality. Reuses the draft's prompt, images, audio setting, and seed. |
ByteDance's first joint audio-video model: sound (dialogue, effects, music) is generated together with the picture in one pass.
On EmpirioLabs, Seedance 1.5 Pro is billed pay as you go: With Audio 480P $0.048 per second; With Audio 720P $0.104 per second; With Audio 1080P $0.233 per second. The live rate card on this page always matches what the API charges.
Seedance 1.5 Pro is served through POST /v1/videos/generations on api.empiriolabs.ai with standard bearer-token authentication.
Yes. The EmpirioLabs playground runs Seedance 1.5 Pro in the browser with the same parameters the API exposes, so you can test prompts before writing code.
Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.
Check out our pricing or reach out if you want your own model deployed on our stack.