API Reference

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

ModelText-to-videoImage-to-video (first frame)First/last frameMultimodal 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

FieldTypeRequiredDescription
modelstringYesSeeDance model name (see table above)
promptstringYesVideo prompt; empty returns 400 prompt is required
imagesstring[]NoReference image URLs for image-to-video (first frame); multiple references also go here
imagestringNoSingle reference image URL; normalized into images when images is empty
secondsstringNoDuration in seconds; a positive integer maps to upstream duration, equivalent to metadata.duration
metadataobjectNoSeeDance advanced parameters — see metadata advanced parameters

Text-to-Video

Provide only prompt; add resolution, duration, aspect ratio, etc. via metadata.

curl https://api.tensoraxis.ai/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.ai/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.

FieldForwarded asTypeRange / DefaultDescription
resolutionresolutionstring480p / 720p / 1080p / 2k, default 1080pOutput resolution
ratioratiostring16:9 / 9:16 / 4:3 / 3:4 / 21:9 / 1:1 / adaptiveAspect ratio
durationdurationinteger415, default 5Duration in seconds; equivalent to top-level seconds
framesframesintegerModel-definedTotal frame count (tied to fps/duration)
seedseedintegerRandom seedFix randomness to reproduce results
camera_fixedcamera_fixedbooleanDefault falseWhether to fix the camera
watermarkwatermarkbooleanDefault falseWhether to add a watermark
generate_audiogenerate_audiobooleanDefault falseGenerate native audio (Seedance 2.0)
return_last_framereturn_last_framebooleanDefault falseReturn the last frame image
draftdraftbooleanDefault falseDraft/preview mode
service_tierservice_tierstringModel-definedService tier
execution_expires_afterexecution_expires_afterintegerModel-definedTask expiry (seconds)
callback_urlcallback_urlstringTask completion callback URL
toolstoolsarrayTool configuration (e.g. web search)
contentcontentarrayAdvanced content array, see below

Notes:

  • metadata.model is removed and cannot override the billed model.
  • metadata keys not mapped to the fields above are usually not forwarded upstream.
  • If both seconds and metadata.duration are sent, metadata.duration wins.

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 typeFieldsOfficial constraints (upstream-defined)
image_urlimage_url.url, optional roleImage ≤30MB, ≤9 items; role is for first/last frame
video_urlvideo_url.urlVideo 2–15s, ≤3 clips
audio_urlaudio_url.urlAudio ≤15MB, ≤3 clips
texttextIgnored; 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 generate tier.
  • Video input (video reference/continuation) is detected from the real media content and falls into the cheaper video_input discount 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.