/v1/media/v1/contents/generations/tasksSeedance 2.0 video generation
Seedance 2.0 is the current video generation model on ATP. It supports text-to-video, image-to-video, first and last frame control, reference images, optional generated audio, and async task polling.
Use seedance-2-0 in the model field. Other Seedance variants may exist in internal pricing data, but they are not exposed in the public catalog yet.
Supported modes#
Media roles#
Parameters#
Image inputs#
Use an HTTPS image URL, base64 image URL, or an asset://… URI from the asset API (use the returned AssetUri exactly as is). To get an asset URI, register the image through the asset API and wait until it is Completed; the steps are on video generation. Put the URI in image_url.url only; the part has no top-level url.
Examples#
Text to video#
curl "$ATP_BASE_URL/v1/media/v1/contents/generations/tasks" \
-H "Authorization: Bearer $ATP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0",
"content": [
{
"type": "text",
"text": "A cinematic tracking shot of Taipei at night, neon reflections, smooth camera motion"
}
],
"resolution": "480p",
"ratio": "16:9",
"duration": 4,
"generate_audio": false
}'The create response returns a task id such as cgt_....
Image to video#
{
"model": "seedance-2-0",
"content": [
{
"type": "text",
"text": "Animate this product shot with a slow premium studio push-in."
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/product.jpg"
},
"role": "first_frame"
}
],
"resolution": "720p",
"ratio": "16:9",
"duration": 4,
"generate_audio": false,
"return_last_frame": true
}First and last frame#
{
"model": "seedance-2-0",
"content": [
{
"type": "text",
"text": "Create a smooth transition from morning to night with consistent camera framing."
},
{
"type": "image_url",
"image_url": {
"url": "asset://tya_first_frame"
},
"role": "first_frame"
},
{
"type": "image_url",
"image_url": {
"url": "asset://tya_last_frame"
},
"role": "last_frame"
}
],
"resolution": "720p",
"ratio": "16:9",
"duration": 6,
"return_last_frame": true
}Get the result#
curl "$ATP_BASE_URL/v1/media/v1/contents/generations/tasks/cgt_xxx" \
-H "Authorization: Bearer $ATP_API_KEY"Poll until the task reaches succeeded, failed, or canceled. Successful responses include the generated video URL and usage metadata.
Billing#
Video is billed on video tokens:
video_tokens = width × height × seconds × 24 ÷ 1024
cost = video_tokens × resolution_rateFailed tasks are not billed. Use 480p, duration: 4, and generate_audio: false for the cheapest end-to-end smoke test.