Skip to main content
AI

Seedance 2.0 Video Generation

Seedance 2.0 supports text-to-video, image-to-video, first-last-frame generation, multi-reference generation, and compatible edit or extension modes. New integrations should use the new create task page, not the deprecated old task interface.

Supported Models

ModelNotes
seedance2.0-480pStandard tier.
seedance2.0-720pStandard tier.
seedance2.0-1080pStandard tier.
seedance2.0-4k4K tier when enabled.
seedance2.0-fast-480pFast tier.
seedance2.0-fast-720pFast tier.
seedance2.0-mini-480pMini tier.
seedance2.0-mini-720pMini tier.

Endpoint

POST /v1/video/generations
GET /v1/videos/{task_id}

Some compatibility clients may see /v1/videos/generations, but the selected source page uses /v1/video/generations for task creation.

Authentication

Authorization: Bearer sk-***
Content-Type: application/json

Request Parameters

ParameterTypeRequiredDescription
modelstringYesSeedance 2.0 model ID.
promptstringYesPrompt. Prompt-only requests are text-to-video.
durationinteger/stringConditionalSource range: any value from 5 to 15.
aspect_ratiostringNo9:16, 1:1, or 16:9.
imagestringConditionalSingle source image for image-to-video.
last_imagestringConditionalLast frame image; use with image.
imagesstring[]ConditionalReference image URLs for all-purpose reference mode. Maximum 9.
videosstring[]ConditionalReference video URLs. Maximum 3; each 2 to 15 seconds; total duration no more than 15 seconds.
audiosstring[]NoReference audio URLs.
extra_body.generate_audiobooleanNoWhether to generate video with audio.
extra_body.seedintegerNoRandom seed.
extra_body.watermarkboolean/stringNoWatermark switch.
extra_body.camera_fixedboolean/stringNoFixed camera switch.
extra_body.return_last_frameboolean/stringNoWhether to return the last frame.
extra_body.operationstringCompatibility onlyreference_to_video, edit_video, extend_video, or first_last_frame; ignored by content-array style clients.

Request Example

curl -X POST "{BASE_URL}/v1/video/generations" \
-H "Authorization: Bearer sk-***" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance2.0-720p",
"prompt": "A clean commercial product video with slow camera movement, soft reflections, and realistic lighting.",
"duration": 8,
"aspect_ratio": "16:9",
"extra_body": {
"generate_audio": false,
"seed": 42,
"watermark": false
}
}'

Multi-Reference Example

curl -X POST "{BASE_URL}/v1/video/generations" \
-H "Authorization: Bearer sk-***" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance2.0-fast-720p",
"prompt": "Create a fast fashion lookbook clip while preserving the product identity.",
"images": [
"https://example.com/model.png",
"https://example.com/outfit.png"
],
"duration": 6,
"aspect_ratio": "9:16",
"extra_body": {
"generate_audio": true,
"camera_fixed": false
}
}'

Query Task Status

curl "{BASE_URL}/v1/videos/task_xxx" \
-H "Authorization: Bearer sk-***"
{
"id": "task_xxx",
"task_id": "task_xxx",
"object": "video.generation.job",
"model": "seedance2.0-720p",
"status": "completed",
"progress": 100,
"video_url": "https://example.com/output.mp4"
}

Billing Notes

Seedance billing depends on the selected model tier, output resolution, duration, and whether reference media or audio generation is used. Final billing should follow the platform settlement record.

Common Errors

  • Using the deprecated create task interface for a new integration.
  • Sending more than 9 reference images.
  • Sending more than 3 reference videos or reference videos whose total duration exceeds 15 seconds.
  • Using a duration outside 5 to 15.
  • Passing incompatible operation hints together with the new input format.