SeeDance Video Generation
Call the Volcengine Ark Doubao Seedance models through TENSORAXIS — text-to-video, image-to-video, first/last frame, video reference/continuation, plus metadata advanced parameters and billing.
SeeDance is the TENSORAXIS integration of the Volcengine Ark Doubao Seedance video models (channel doubao-video). Like every video model it is asynchronous: submit a task to get a task_id, poll the task status, then read the video URL after completion. The shared submit/poll flow lives in the Video Generation overview; this page covers only the SeeDance-specific capabilities and parameters.
Use the TENSORAXIS request fields prompt, images, and metadata; the relay translates them into the Volcengine content generation task shape. Do not send the upstream top-level content[] body directly to /v1/video/generations, or TENSORAXIS will not find a prompt and will return 400 prompt is required.
Models and Capability Matrix
| Model | Text-to-video | Image-to-video (first frame) | First/last frame | Multimodal reference (image/video/audio) | Native audio |
|---|---|---|---|---|---|
doubao-seedance-1-0-lite-t2v | ✅ | — | — | — | — |
doubao-seedance-1-0-lite-i2v | — | ✅ | — | — | — |
doubao-seedance-1-0-pro-250528 | ✅ | ✅ | — | — | — |
doubao-seedance-1-5-pro-251215 | ✅ | ✅ | — | — | — |
doubao-seedance-2-0-260128 | ✅ | ✅ | ✅ | ✅ | ✅ |
doubao-seedance-2-0-fast-260128 | ✅ | ✅ | ✅ | ✅ | ✅ |
2-0-fast matches 2-0 in capability but is optimized for faster generation. Capability support is ultimately defined by the upstream model.
Request Fields
POST /v1/video/generations
| Field | Type | Required | Description |
|---|---|---|---|
model | string | Yes | SeeDance model name (see table above) |
prompt | string | Yes | Video prompt; empty returns 400 prompt is required |
images | string[] | No | Reference image URLs for image-to-video (first frame); multiple references also go here |
image | string | No | Single reference image URL; normalized into images when images is empty |
seconds | string | No | Duration in seconds; a positive integer maps to upstream duration, equivalent to metadata.duration |
metadata | object | No | SeeDance advanced parameters — see metadata advanced parameters |
Text-to-Video
Provide only prompt; add resolution, duration, aspect ratio, etc. via metadata.
curl https://api.tensoraxis.com/v1/video/generations \
-H "Authorization: Bearer $TENSORAXIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-260128",
"prompt": "An old man wearing a hat smiles and walks forward down an autumn street",
"metadata": {
"resolution": "1080p",
"ratio": "16:9",
"duration": 5
}
}'Image-to-Video
First-frame
Pass a reference image via images to use it as the first frame; other parameters match text-to-video.
curl https://api.tensoraxis.com/v1/video/generations \
-H "Authorization: Bearer $TENSORAXIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-0-lite-i2v",
"prompt": "Slow push-in, the subject smiles",
"images": ["https://example.com/first-frame.jpg"],
"metadata": {
"resolution": "1080p",
"duration": 5
}
}'First/last frame (Seedance 2.0)
First/last frame requires metadata.content to tag each image with an explicit role (first_frame / last_frame); it overrides the content list generated from images. See metadata.content shape.
{
"model": "doubao-seedance-2-0-260128",
"prompt": "A time-lapse from dawn to sunset",
"metadata": {
"resolution": "1080p",
"duration": 5,
"content": [
{ "type": "image_url", "image_url": { "url": "https://example.com/start.jpg" }, "role": "first_frame" },
{ "type": "image_url", "image_url": { "url": "https://example.com/end.jpg" }, "role": "last_frame" }
]
}
}Video Reference / Continuation (equivalent to "video edit")
The SeeDance backend has no dedicated frame-level video-edit endpoint. Seedance 2.0's "video multimodal reference" capability lets you feed a video as a reference/continuation source — pass a metadata.content item with video_url.
{
"model": "doubao-seedance-2-0-260128",
"prompt": "Continue the motion in this clip, the camera keeps panning right",
"metadata": {
"resolution": "1080p",
"content": [
{ "type": "video_url", "video_url": { "url": "https://example.com/source.mp4" } }
]
}
}When a request carries video input, TENSORAXIS classifies it as "video input" based on the real media content (not the metadata declaration) and bills it under the cheaper tier — see Billing. If you need frame-level video editing (replacing/repainting specific segments), use HappyHorse video edit (happyhorse-1.0-video-edit) instead.
metadata Advanced Parameters
Fields under metadata map to top-level fields of the Volcengine task. The "Range / Default" column comes from the official Volcengine documentation and is ultimately defined by the upstream model; TENSORAXIS only receives and forwards these fields.
| Field | Forwarded as | Type | Range / Default | Description |
|---|---|---|---|---|
resolution | resolution | string | 480p / 720p / 1080p / 2k, default 1080p | Output resolution |
ratio | ratio | string | 16:9 / 9:16 / 4:3 / 3:4 / 21:9 / 1:1 / adaptive | Aspect ratio |
duration | duration | integer | 4–15, default 5 | Duration in seconds; equivalent to top-level seconds |
frames | frames | integer | Model-defined | Total frame count (tied to fps/duration) |
seed | seed | integer | Random seed | Fix randomness to reproduce results |
camera_fixed | camera_fixed | boolean | Default false | Whether to fix the camera |
watermark | watermark | boolean | Default false | Whether to add a watermark |
generate_audio | generate_audio | boolean | Default false | Generate native audio (Seedance 2.0) |
return_last_frame | return_last_frame | boolean | Default false | Return the last frame image |
draft | draft | boolean | Default false | Draft/preview mode |
service_tier | service_tier | string | Model-defined | Service tier |
execution_expires_after | execution_expires_after | integer | Model-defined | Task expiry (seconds) |
callback_url | callback_url | string | — | Task completion callback URL |
tools | tools | array | — | Tool configuration (e.g. web search) |
content | content | array | — | Advanced content array, see below |
Notes:
metadata.modelis removed and cannot override the billed model.metadatakeys not mapped to the fields above are usually not forwarded upstream.- If both
secondsandmetadata.durationare sent,metadata.durationwins.
metadata.content shape
metadata.content is an advanced content array used for first/last frame, video reference, audio reference, etc. Once provided, it overrides the content list generated from images (any type: text item is ignored; the body comes from prompt).
| Item type | Fields | Official constraints (upstream-defined) |
|---|---|---|
image_url | image_url.url, optional role | Image ≤30MB, ≤9 items; role is for first/last frame |
video_url | video_url.url | Video 2–15s, ≤3 clips |
audio_url | audio_url.url | Audio ≤15MB, ≤3 clips |
text | text | Ignored; the body comes from the top-level prompt |
Billing
SeeDance is billed by token; resolution is already reflected in the token count, so no separate resolution coefficient applies.
- Plain generation (text/image-to-video) uses the
generatetier. - Video input (video reference/continuation) is detected from the real media content and falls into the cheaper
video_inputdiscount tier (lower unit price than plain generation).
Exact unit prices follow the console "Video Pricing" configuration and the pricing page; operators may override the defaults with the latest official rates.
Task Polling
The shared submit/poll flow, status codes, and OpenAI/Sora-compatible fetch paths are in the Video Generation overview.
Video Generation
Submit video generation tasks, poll task status, and pass Seedance/Doubao advanced parameters through TENSORAXIS.
HappyHorse Video Generation
Call the Alibaba Cloud Bailian (DashScope) HappyHorse models through TENSORAXIS — text-to-video, image-to-video, reference-to-video, and video editing, plus parameters and billing.