ByteDance Seedance 2.0, direct on the Volcengine Ark official channel. Text / image / multimodal reference, billed on official token usage. Real-person video requires registering the face in the asset library (account: "official") to get an asset:// reference — raw real faces are rejected, asset:// passes moderation.
Near-identical names, different upstreams & capabilities. You are viewing the highlighted row.
| Model | Channel | Real person | Price |
|---|---|---|---|
| Seedance 2.0 | Chenyu · real-person multimodal | Real faces directly | $0.11–$0.33/s |
| Seedance 2.0 Official ← | Volcengine Ark direct | Via asset:// library | token-settled |
| Seedance 2.0 (sd-A) | Custom-A · Topaz HD | Via asset:// library | $0.073–$0.365/s |
| Seedance 2.0 Lite | Low-cost / anime | Own portrait library | $0.04–$0.15/s |
| Seedance 2.0 Cinematic | RunningHub film-grade | — | $1 / $2 / $3 |
| Field | Required | Type | Description |
|---|---|---|---|
| Model | API name | Resolution | Billing |
| Seedance 2.0 Official | seedance-2.0-official | 480p / 720p / 1080p | token (official ×1.35) |
| Seedance 2.0 Fast Official | seedance-2.0-fast-official | 480p / 720p | token (official ×1.30) |
| Seedance 2.0 Mini Official | seedance-2.0-mini-official | 480p / 720p | token (official ×1.30, cheapest) |
Billed on official token usage (4-15s), charged only on success. For per-second pricing + direct real faces, use Seedance 2.0。
/api/v1/video/generations# Text-to-video (model: seedance-2.0-official / -fast-official / -mini-official)
curl -X POST https://apimodels.app/api/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0-fast-official",
"prompt": "a hummingbird hovering near a bright flower, slow motion",
"resolution": "720p",
"aspect_ratio": "16:9",
"duration": 5
}'
# Real-person: register the face in the asset library first (see below), then
# reference it — raw real faces are rejected, asset:// passes moderation:
# "reference_image_urls": ["asset://asset-2026...-xxxx"]
# Image-to-video: "first_frame_url" (+ "last_frame_url"); web search: "web_search": trueReal faces passed as a plain reference are rejected by moderation. To make real-person video, register the face in the asset library to get an asset:// reference and pass it in reference_image_urls. The group MUST be created with account: "official" (same account/project as official generation) for the asset to resolve; each upload costs $0.01.
# 1) Create a group ON THE OFFICIAL account (account: "official")
curl -X POST https://apimodels.app/api/v1/assets/groups \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "my-people", "account": "official"}'
# → { "data": { "id": 1, "account": "official", ... } }
# 2) Register a face from a public URL (charged $0.01). Inherits the group's account.
curl -X POST https://apimodels.app/api/v1/assets \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"url": "https://example.com/face.jpg", "asset_type": "Image", "group_id": 1}'
# → { "data": { "id": "asset-2026...-xxxx", "asset_url": "asset://asset-2026...-xxxx" } }
# 3) Poll until Active, then use asset_url in generation (reference_image_urls)
curl -X POST https://apimodels.app/api/v1/assets/get \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"id": "asset-2026...-xxxx"}'| Field | Required | Type | Description |
|---|---|---|---|
| Endpoint | Description | ||
| POST /v1/assets/groups | Create a group with account:"official" → official account/apimodel | ||
| POST /v1/assets | Register a face from a URL → asset:// ($0.01), inherits the group account | ||
| POST /v1/assets/get | Get one asset (poll until Active) | ||
| POST /v1/assets/delete | Delete an asset |
Try it in the Playground
Register the face in the asset library (account "official") to get an asset:// reference, then pass it in reference_image_urls. Raw real faces are rejected by moderation; asset:// passes.