Seedance 2.0 Face Authentication
Some Seedance 2.0 use cases — for example driving a video with a specific person’s face — require the reference asset to be registered and authenticated with the upstream provider before it can be used. Sunra exposes a small Ark Assets API that handles this for you: you submit the URL of an image (or video / audio), Sunra registers it upstream, and once it becomesactive you can reference it in your Seedance 2.0 generation.
These endpoints do not run an inference pipeline — there is no prediction record, no queue, and no per-call inference billing. They are a thin management layer over the upstream asset registry.
Authentication
Authentication is the same as the rest of the Sunra API — send your API key in theAuthorization header:
Workflow
- Create the asset from a source URL → returns an
ark_asset_idwithstatus: "processing". - Poll the asset with Get asset until
statusbecomesactive. - Use
asset://<ark_asset_id>as a reference in a Seedance 2.0 relay request (see Using the asset below).
processing (registering upstream), active (ready to use), failed (registration failed).
Create an asset
| Field | Type | Required | Description |
|---|---|---|---|
source_url | string | yes | Publicly accessible URL of the asset (e.g. a face image). Must be reachable by the server. |
name | string | no | Friendly name. Defaults to the filename inferred from source_url. |
asset_type | image | video | audio | no | Asset type. Inferred from the URL extension when omitted (defaults to image). |
Get an asset
Fetches a single asset and refreshes its status from upstream. When the asset is ready, the response includesark_url.
List assets
| Field | Type | Default | Description |
|---|---|---|---|
status | string | — | Filter by status (processing | active | failed). |
page | integer | 1 | Page number. |
page_size | integer | 20 | Items per page. |
Delete an asset
Soft-deletes the asset from your organization’s list (the upstream registration is unaffected).Examples
Using the asset in Seedance 2.0
Once the asset isactive, reference it as asset://<ark_asset_id> inside reference_images (or reference_videos / reference_audios) of a Seedance 2.0 relay reference-to-video request, and mention it from the prompt with @Image1 (first image = @Image1, second = @Image2, …).
Use the authenticated relay endpoint. Face-authenticated (Ark) assets are only recognized on the relay models —bytedance/seedance-2.0-relayandbytedance/seedance-2.0-fast-relay. Pass the asset asasset://<ark_asset_id>(not a URL). The non-relaybytedance/seedance-2.0(-fast)models go straight to Volcengine and will rejectasset://withInvalidParameter.
| Field | Type | Description |
|---|---|---|
prompt | string | Prompt; reference the asset with @Image1. |
reference_images | string[] | 0–9 references. Put asset://<ark_asset_id> here. |
resolution | 480p | 720p | 1080p | Output resolution (default 720p). |
ratio | string | Aspect ratio; adaptive auto-selects. |
duration | integer | Seconds, 4–15 (or -1 for auto). |
generate_audio | boolean | Generate synchronized audio (default true). |
-fast suffix: bytedance/seedance-2.0-relay/reference-to-video.)
status_url until the prediction finishes (see Queue). If the upstream model’s content moderation rejects the input, the prediction completes with success: false and an unsafe_content error — revise the prompt or reference image and retry. (Real faces combined with minor-implying prompts are a common trigger.)