Seedance 2.0 — Volcano / Ark Native Entry
Besides the OpenAI-compatible /v1/video/generations path, Seedance 2.0 also exposes Volcano Ark / BytePlus-native entry points so clients already written against Ark docs or the BytePlus SDK can integrate with zero protocol changes.
This entry uses the same EZModel API key, account, and billing rules as /v1/video/generations; only the request and response shapes differ.
Equivalent paths
The three prefixes below behave identically; pick any one:
| Operation | Method | /api/v3 (official Ark path) | /v3 (common shorthand) | /ark/api/v3 |
|---|---|---|---|---|
| Create video task | POST | /api/v3/contents/generations/tasks | /v3/contents/generations/tasks | /ark/api/v3/contents/generations/tasks |
| Query task status | GET | /api/v3/contents/generations/tasks/{task_id} | /v3/contents/generations/tasks/{task_id} | /ark/api/v3/contents/generations/tasks/{task_id} |
| Upload asset | POST | /api/v3/sd/assets | /v3/sd/assets | /ark/api/v3/sd/assets |
| Query asset | GET | /api/v3/sd/assets/{asset_id} | /v3/sd/assets/{asset_id} | /ark/api/v3/sd/assets/{asset_id} |
About /v3
Partner questionnaires often write /v3/contents/generations/tasks (dropping /api). This platform mounts both /v3 and /api/v3. Unmatched /v3/* paths return an API 404 JSON, not the SPA HTML page.
Authentication
Authorization: Bearer YOUR_EZMODEL_API_KEY
Content-Type: application/jsonUse an EZModel token; it is shared with /v1/video/generations.
Base URL
https://www.ezmodel.cloud
# or
https://api.ezmodel.cloudExample: POST https://www.ezmodel.cloud/v3/contents/generations/tasks
Create video — request body
Follows the Ark content-generations-tasks schema:
| Field | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model name, e.g. dreamina-seedance-2-0-hc; use GET /v1/models to list currently available models |
content | array | Yes | Content items (see below) |
duration | integer | No | Duration in seconds |
resolution | string | No | 480p / 720p / 1080p / 4k (Seedance 2.0 Base supports 4K; Fast/Mini: 480p/720p only) |
ratio | string | No | Aspect ratio. Supports adaptive, 16:9, 9:16, 1:1, and other model-supported values. For image-to-video, adaptive follows the reference image's aspect ratio |
generate_audio | boolean | No | Whether to generate audio |
watermark | boolean | No | Whether to add a watermark |
return_last_frame | boolean | No | Return the last frame for continuation |
execution_expires_after | integer | No | Task execution timeout in seconds |
callback_url | string | No | Completion callback URL |
content[] item types:
| type | Fields | Description |
|---|---|---|
text | text | Prompt text (multiple items are joined with newlines) |
image_url | image_url.url + role | Reference image, first frame, or last frame (HTTP(S) or asset://) |
video_url | video_url.url + role | Reference video |
audio_url | audio_url.url + role | Reference audio for speech, singing, or lip sync; include an image or video reference as well |
Roles: reference_image, first_frame, last_frame, reference_video, and reference_audio.
Model capabilities depend on configuration
Available models and their supported resolutions, durations, ratios, and input types may differ. Check GET /v1/models first; unsupported combinations are rejected when the task is submitted.
Real Person / Avatar with Reference Audio
Upload the person image first, then use an HC model with the returned asset:// reference:
{
"model": "dreamina-seedance-2-0-hc",
"content": [
{"type": "text", "text": "Keep the identity and sing the reference audio naturally"},
{"type": "image_url", "image_url": {"url": "asset://mva-0123456789abcdef"}, "role": "reference_image"},
{"type": "audio_url", "audio_url": {"url": "https://example.com/vocal.mp3"}, "role": "reference_audio"}
],
"duration": 5,
"resolution": "480p",
"ratio": "9:16",
"generate_audio": true
}First/Last Frame and Continuation
{
"model": "dreamina-seedance-2-0-hc",
"content": [
{"type": "text", "text": "Transition smoothly from day to night"},
{"type": "image_url", "image_url": {"url": "https://example.com/day.jpg"}, "role": "first_frame"},
{"type": "image_url", "image_url": {"url": "https://example.com/night.jpg"}, "role": "last_frame"}
],
"duration": 4,
"resolution": "720p",
"return_last_frame": true,
"execution_expires_after": 3600,
"callback_url": "https://example.com/callbacks/seedance"
}return_last_frame is forwarded to the generation service. When the upstream returns a final frame, the completed task response includes a top-level last_frame_url; it can be reused as first_frame in a continuation request.
Reference Video and Video Modification
There is no separate edit endpoint. Submit the source video as reference_video in a new task:
{
"model": "dreamina-seedance-2-0-hc",
"content": [
{"type": "text", "text": "Keep the person and motion; change the background to a rainy night street"},
{"type": "video_url", "video_url": {"url": "https://example.com/source.mp4"}, "role": "reference_video"}
],
"duration": 5,
"resolution": "720p",
"ratio": "16:9"
}The video can also be uploaded with AssetType: "Video" and referenced through asset://.
Text-to-video example
curl https://www.ezmodel.cloud/v3/contents/generations/tasks \
-H "Authorization: Bearer $YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dreamina-seedance-2-0-260128",
"content": [
{"type": "text", "text": "A cinematic shot of a glass perfume bottle on a marble table, slow camera push in"}
],
"duration": 4,
"resolution": "720p",
"ratio": "16:9"
}'Response (Ark shape):
{
"id": "mvt-512d4ffd9ce54256",
"status": "queued"
}Asset library (private avatar / real-person)
Virtual-avatar and real-person assets share one asset API. AssetType is the media type (Image / Video / Audio), not a person category. Use any *-hc model (-hc / -fast-hc / -mini-hc) when generating with real-person / avatar references.
EZModel uses the SD direct-upload flow and does not require an Asset Group. The historical /v1/asset-groups + /v1/assets flow is retired. Doubao's /v1/doubao-sd-1/assets flow is not exposed. GroupId may be null.
Upload
curl https://www.ezmodel.cloud/v3/sd/assets \
-H "Authorization: Bearer $YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"URL": "https://example.com/avatar_front.jpg",
"Name": "avatar_front",
"AssetType": "Image"
}'Query
curl https://www.ezmodel.cloud/v3/sd/assets/mva-0123456789abcdef \
-H "Authorization: Bearer $YOUR_API_KEY"Assets are isolated by account. Accessing another account's asset returns 404 asset not found.
Generate with an asset (hc)
curl https://www.ezmodel.cloud/v3/contents/generations/tasks \
-H "Authorization: Bearer $YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dreamina-seedance-2-0-hc",
"content": [
{"type": "text", "text": "The man in a black suit looks confidently at the camera and nods"},
{"type": "image_url", "image_url": {"url": "asset://mva-0123456789abcdef"}}
],
"duration": 5,
"resolution": "480p",
"ratio": "9:16"
}'Query task status
curl https://www.ezmodel.cloud/v3/contents/generations/tasks/mvt-512d4ffd9ce54256 \
-H "Authorization: Bearer $YOUR_API_KEY"On success, read the video URL from content.video_url.
Query fields
Query responses preserve the following fields submitted when the task was created: model, duration, resolution, ratio, generate_audio, watermark, return_last_frame, and execution_expires_after.
Boolean false values are preserved. Optional fields without an actual response or submitted value are omitted.
Status mapping: queued / processing / succeeded / failed.
Only single-task lookup is exposed; GET /v1/video/tasks listing is not. callback_url is forwarded to the generation service. Use a public HTTPS endpoint that responds 2xx quickly and handles retries idempotently, then query the task once to confirm the final video URL and usage.
Relation to the OpenAI-compatible entry
Both entries share the same API key, account, and billing rules. task_id values are interchangeable across entries (mind path and response shape differences). Asset paths /v1/sd/assets and /v3/sd/assets (plus /api/v3/sd, /ark/api/v3/sd) are equivalent.
Notes
- Prefer the
dreamina-seedance-*names returned byGET /v1/models. - Real-person / avatar images and
asset://references require any*-hcmodel. - Seedance 2.0 Base supports
4k; Fast / Mini support480p/720ponly. Other model families follow their currently available capabilities. - Fast models support only
480pand720p. - Only actual video input (an HTTP(S)
video_urlor anasset://reference to a video asset) selectswith_ref. Text-only, image-reference, and audio-reference requests selectno_ref. See the Seedance 2.0 main doc. - New uploads normally return an
mva-*ID. Historicalasset-*IDs remain compatible and can still be queried and referenced. - Asset upload itself is free.
- All
*-epmodels are retired and must not be configured or requested.
