Skip to content

Seedance_sup ​

Seedance 2.0 is ByteDance's video generation model family, supporting text-to-video and image/video reference generation. It uses the unified POST /v1/videos endpoint and returns responses in OpenAI Video style (id / status / result_url).

Difference from native Seedance V3

The platform also offers native Seedance V3 (doubao-seedance-*): it uses the Volcengine-native protocol /v3/video/tasks and ships with a separate asset library at /v3/assets. Model names, endpoints and asset libraries differ — do not mix them up. The Seedance_sup (this page) has its own asset library at /v1/assets — see Asset Library; the native one is at Asset Library V3.

Endpoints ​

  • Create task: POST $URL/v1/videos
  • Query task: GET $URL/v1/videos/{task_id}

Available Models ​

Model NamePositioningSupported Resolutions
seedance-2-0Standard version, highest quality720p / 1080p / 4K
seedance-2-0-fastFast version, balance of speed and quality720p / 1080p
seedance-2-0-miniLightweight version, best cost performance720p

Parameters ​

ParameterTypeRequiredDescription
modelstringYesseedance-2-0 / seedance-2-0-fast / seedance-2-0-mini
promptstringYesVideo content description; describe subject, action, scene and camera shot
secondsstringNoOutput video duration in seconds, e.g. "5", "10"
sizestringNoResolution: 720p / 1080p / 4k, default 720p
imagestringNoReference image URL (single image, image-to-video)
imagesarrayNoReference image URLs (multi-image reference)
input_referencestringNoReference image or video URL for image-to-video / video-reference generation
metadata.ratiostringNoAspect ratio, e.g. 16:9, 9:16, 1:1
metadata.generate_audiobooleanNoWhether to generate audio
modestringNoGeneration mode, defaults to std (auto-filled by the server, optional)

Asset library for this family

This series (Seedance_sup) has its own asset library (/v1/assets, virtual/real portrait libraries): upload assets and reference them via asset://asset-xxx in images. You may also pass publicly accessible image/video URLs directly in image / images / input_reference (the upstream fetches them server-side; internal or localhost URLs will fail). See Asset Library.

Request Example ​

Text-to-video ​

bash
# 1. Create video task
curl $URL/v1/videos \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0",
    "prompt": "A cat wearing sunglasses walking on a neon street, cyberpunk style",
    "seconds": "5",
    "size": "720p",
    "metadata": { "ratio": "16:9", "generate_audio": true }
  }'

# 2. Query task status (replace {task_id} with the id from step 1)
curl $URL/v1/videos/{task_id} \
  -H "Authorization: Bearer $YOUR_API_KEY"
python
import time
import requests

url = "$URL/v1/videos"
headers = {"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"}
payload = {"model": "seedance-2-0", "prompt": "A cat walking on a neon street", "seconds": "5", "size": "720p"}

task = requests.post(url, json=payload, headers=headers).json()
task_id = task["id"]

while True:
    result = requests.get(f"{url}/{task_id}", headers=headers).json()
    if result["status"] in ("completed", "failed"):
        break
    time.sleep(8)

print(result)

Image-to-video ​

bash
curl $URL/v1/videos \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0",
    "prompt": "Make the person in the frame turn and walk toward the camera",
    "image": "https://example.com/ref.png",
    "seconds": "5",
    "size": "720p"
  }'

Response Fields ​

Both create and query return the same structure (OpenAI Video style):

FieldTypeDescription
idstringTask ID
statusstringTask status (see below)
result_urlstringVideo URL after completion (at the top level of the response, only when completed)
progressintegerGeneration progress, 0~100
completed_atintegerCompletion timestamp (seconds, only when completed)
error.messagestringFailure reason (only when failed)

Task Status ​

StatusMeaningAction
queuedQueuedKeep polling
in_progressGeneratingKeep polling
completedSuccessGet the video URL from the response and download it soon
failedFailedCheck error.message

Poll every 5-10 seconds

Video URLs expire after a while — download and save them as soon as the task completes.

Response Example ​

json
{ "id": "task_xxxxxxxx", "status": "in_progress", "progress": 30 }

After completion:

json
{ "id": "task_xxxxxxxx", "status": "completed", "progress": 100, "result_url": "https://cdn.volctokens.com/.../result.mp4", "completed_at": 1786431715 }

FAQ ​

Q: How long does a task take?

Usually 1-3 minutes for 720p/5s; 4K takes longer. Poll the query endpoint; tasks stuck over 20 minutes are auto-failed.

Q: Do video links expire?

Yes. Download and store the video soon after generation completes.

Q: Does this family have an asset library?

Yes. The Seedance_sup (this page) has its own /v1/assets library (virtual/real portrait libraries — see Asset Library); native Seedance V3 has a separate /v3/assets library (see Asset Library V3). Assets cannot be referenced across the two.

© 2026 Euno AI. All rights reserved.