Dreamina Seedance 2.0 — the international line. Channel. Text / image / multimodal reference at native resolution (480→480, native 4K on the standard tier, no upscaling). Real-person video requires registering the face in the asset library (account: "intl") to get an asset:// reference — a raw real-person image is rejected outright by upstream moderation (InputImageSensitiveContentDetected), while asset:// passes.
| Field | Required | Type | Description |
|---|---|---|---|
| Model | API name | Resolution | Billing (per second) |
| Dreamina Seedance 2.0 | dreamina-seedance-2-0 | 480p / 720p / 1080p / native 4K | $0.10 / $0.22 / $0.55 / $2.57 |
| Dreamina Seedance 2.0 Fast | dreamina-seedance-2-0-fast | 480p / 720p | $0.0644 / $0.1372 |
| Dreamina Seedance 2.0 Mini | dreamina-seedance-2-0-mini | 480p / 720p | $0.0225 / $0.048 |
Per-second billing (4-15s), charged only on success and refunded on failure. Native resolution — no upscaling.
Price cut on 8 August 2026: Mini down ~56%, Fast down ~24%, standard tier unchanged. A job carrying a reference video bills on a different basis — a lower per-second rate, but charged on (source seconds + output seconds), so editing or continuing a clip into an output of the same length is not cheaper than generating it outright. Mini $0.0138 / $0.030, Fast $0.0378 / $0.0812 (480p / 720p).
/api/v1/video/generations# Text-to-video (model: dreamina-seedance-2-0 / -fast / -mini)
curl -X POST https://api.apimodels.app/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dreamina-seedance-2-0-fast",
"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 (account "intl", see below),
# then reference it — a RAW real face URL is rejected at create-time
# (InputImageSensitiveContentDetected.PrivacyInformation), asset:// passes:
# "reference_image_urls": ["asset://asset-2026...-xxxx"]
#
# Image-to-video of a specific real person: pass the asset:// AS the first frame.
# (first_frame_url and reference_image_urls are mutually exclusive — when a first
# frame is present, reference_image_urls is ignored, so put the person there):
# "first_frame_url": "asset://asset-2026...-xxxx"| Field | Required | Type | Description |
|---|---|---|---|
| Field | Type | Description | |
| model | string | dreamina-seedance-2-0 / -fast / -mini | |
| prompt | string | Prompt (required for text-to-video; optional when a visual input is provided) | |
| resolution | string | 480p / 720p / 1080p / 4k (fast & mini: 480p/720p only) | |
| aspect_ratio | string | adaptive / 16:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9 | |
| duration | number | 4-15 seconds | |
| generate_audio | boolean | Native synchronized audio, default true | |
| content_filter | boolean | Content filtering, default true (standard). Pass false to relax the content restrictions; that request is billed +10%. Illegal and prohibited content is blocked either way. Omit it and you get standard filtering at the normal price. | |
| first_frame_url / last_frame_url | string | First / last frame for image-to-video (https:// or asset://) | |
| reference_image_urls / _video_urls / _audio_urls | string[] | Multimodal references — https:// or asset:// (use asset:// for real people) | |
| web_search | boolean | Web search tool |
A photorealistic real face passed as a raw input image is rejected by upstream moderation ("may contain real person"). To make real-person video, register the face in the asset library to get an asset:// reference and pass it in. The group MUST be created with account: "intl" (same account/project, billing19, as intl generation) for the asset to resolve; each upload costs $0.01.
# 1) Create a group ON THE INTL account (account: "intl")
curl -X POST https://api.apimodels.app/v1/assets/groups \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "my-people", "account": "intl"}'
# → { "data": { "id": 1, "account": "intl", ... } }
# 2) Register a face from a public URL. The call WAITS until the asset is confirmed
# usable (~3s), so the returned id is ready to use right away. Charged $0.01 ONLY
# on success — if the image can't be fetched or fails moderation you get HTTP 422
# and are NOT charged.
curl -X POST https://api.apimodels.app/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", "status": "Active" } }
# (on failure: HTTP 422, not charged)
# 3) Use asset_url in generation — either reference_image_urls (multi-image) or, to
# animate that exact person, first_frame_url. No polling needed once Active.| Field | Required | Type | Description |
|---|---|---|---|
| Endpoint | Description | ||
| POST /v1/assets/groups | Create a group with account:"intl" → intl account (billing19) | ||
| 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/list | List assets (paginated) | ||
| POST /v1/assets/delete | Delete an asset |
The Playground has two uploads: "Portrait" and "Reference images". Real people go through "Portrait" only — it auto-registers the face to asset:// and clears moderation, the one correct entry for real people. Four steps:
| Field | Required | Type | Description |
|---|---|---|---|
| You want | What to upload | ||
| Just a real-person video | Portrait only (one face), Text-to-video mode | ||
| Real person + extra scene / style reference | Portrait + reference images (non-real-person), in Multi-image / Multimodal reference mode | ||
| Animate a specific real photo as the first frame | Not in the Playground; via API, put that portrait's asset:// in first_frame_url (see the code above) |
Try it in the Playground
Register the face in the asset library (account "intl") to get an asset:// reference, then pass it in reference_image_urls — or, to animate that exact person, in first_frame_url. A raw real-person image is rejected by moderation; asset:// passes.