Skip to content

Seedance Integration Guide (Volcano Ark Compatible)

This page is for partners integrating Seedance against the Volcano Ark API.
Delivery mode: fully compatible with Volcano Ark — same paths, request bodies, and response bodies; only base_url and key are platform-issued.

1. Basics

ItemValue
Base URLhttps://www.ezmodel.cloud (also https://api.ezmodel.cloud)
AuthAuthorization: Bearer {platform API Key}
Content-Typeapplication/json
Video tasksPOST/GET /v3/contents/generations/tasks (also /api/v3/..., /ark/api/v3/...)
Asset libraryPOST/GET /v3/sd/assets (also /api/v3/sd/..., /ark/api/v3/sd/..., /v1/sd/...)

The three prefixes are equivalent:

UseRecommendedEquivalents
Create / query video/v3/contents/generations/tasks/api/v3/contents/generations/tasks
/ark/api/v3/contents/generations/tasks
Upload / query asset/v3/sd/assets/api/v3/sd/assets
/ark/api/v3/sd/assets
/v1/sd/assets

2. Models

ModelDescriptionResolutions
dreamina-seedance-2-0-260128Standard480p / 720p / 1080p / 4k
dreamina-seedance-2-0-hcReal-person / avatar (Base); supports asset://480p / 720p / 1080p / 4k
dreamina-seedance-2-0-fast-260128Fast480p / 720p
dreamina-seedance-2-0-fast-hcFast real-person / avatar; supports asset://480p / 720p
dreamina-seedance-2-0-mini-260615Mini480p / 720p
dreamina-seedance-2-0-mini-hcMini real-person / avatar; supports asset://480p / 720p
dreamina-seedance-2-5-hcSeedance 2.5 real-person / avatar; supports asset://480p / 720p

Private virtual-avatar or real-person assets must use any *-hc model.

3. Asset library

Virtual-avatar and real-person assets share one API. AssetType is the media type (Image / Video / Audio), not a person category.

EZModel uses the SD direct-upload flow; no Asset Group is required. GroupId may be null, and the historical /v1/asset-groups + /v1/assets flow is retired. Asset and video endpoints use the same Bearer API key.

Upload

http
POST /v3/sd/assets
Authorization: Bearer {API_KEY}
Content-Type: application/json

{
  "URL": "https://example.com/avatar.jpg",
  "Name": "avatar_front",
  "AssetType": "Image"
}

Success:

json
{
  "success": true,
  "data": {
    "Id": "asset-20260726161146-sh9fq",
    "base_resp": { "status_code": 0, "status_msg": "success" }
  }
}

Query

http
GET /v3/sd/assets/{asset_id}
Authorization: Bearer {API_KEY}

Assets are isolated by account. Another account's Key querying the same id gets HTTP 404 (asset not found). Referencing another account's asset:// in generation is rejected before upstream and is not billed.

4. Create video

ratio supports adaptive, 16:9, 9:16, 1:1, and other model-supported values. For image-to-video, use "ratio": "adaptive" to follow the reference image's aspect ratio. On the OpenAI-compatible /v1/video/generations endpoint, send the same value as metadata.ratio.

http
POST /v3/contents/generations/tasks

Text-to-video:

json
{
  "model": "dreamina-seedance-2-0-260128",
  "content": [
    {"type": "text", "text": "A cinematic shot of a glass perfume bottle on a marble table"}
  ],
  "duration": 4,
  "resolution": "720p",
  "ratio": "16:9"
}

With asset (hc):

json
{
  "model": "dreamina-seedance-2-0-hc",
  "content": [
    {"type": "text", "text": "The man in a black suit looks confidently at the camera"},
    {"type": "image_url", "image_url": {"url": "asset://asset-20260726161146-sh9fq"}}
  ],
  "duration": 5,
  "resolution": "480p",
  "ratio": "9:16"
}

For singing or lip sync, add the HC identity image as reference_image and the audio as reference_audio. Use first_frame / last_frame roles for frame control and reference_video to create a modified version of an existing video. Optional create fields include return_last_frame, execution_expires_after, and callback_url; when upstream supplies it, the query response exposes a top-level last_frame_url.

Submit response: {"id":"mvt-...","status":"queued"}.

5. Query status

http
GET /v3/contents/generations/tasks/{task_id}

On success, content.video_url is a platform CDN direct link (no auth). Response shape matches Ark; only the URL host differs. CDN transfer failure falls back to an authenticated proxy URL. Upstream origin URLs are never exposed.

Statuses: queued / processing / succeeded / failed.

6. Acceptance checklist

#CheckExpected
1POST /v3/sd/assets with a public image200, data.Id
2GET /v3/sd/assets/{id} with same Key200, Status=Active
3Same {id} with another account Key404
4POST /v3/contents/generations/tasks with hc + asset://200, queued
5HC + reference_image + reference_audioTask accepted for singing/lip-sync workflow
6first_frame + last_frameBoth roles are accepted and forwarded
7reference_videoA new task is created using the source video as edit reference
8Create with callback_urlField accepted; query the task after notification for the final result
5Poll until donesucceeded, content.video_url reachable
6Open video_url without authvideo/mp4

企业合作联系:service@ezmodel.cloud