Skip to content

Asset Management for Seedance 2.0

SIRAYA-Seedance-2.0 Family can use a reference image or video to steer generation — copying a motion, keeping a character consistent across shots, or swapping in a specific face. This guide covers the one rule that trips people up: reference material containing a human face can't be passed as a plain URL. It has to go through the Asset Management API first.

Access — this feature is opt-in

Asset Management is not enabled by default. If calls return 403 FEATURE_INACTIVE, contact us to have it turned on for your account. See the Asset Management API overview for the full access model.

Why Reference Material with Faces Needs an Asset

When your reference image or video contains a human face (not a celebrity or public figure), Seedance 2.0 requires that material to be a trusted asset before it can be used — you can't pass a public URL directly. Upload the face-containing image or video through the Asset Management API first, then reference the resulting assetId in your generation request.

Any other reference material (no human face, or the face belongs to a celebrity/public figure) is passed the normal way — a plain public URL.

A sample face reference photo of the kind uploaded as an asset

Example: a face-containing reference photo. This has to be uploaded as an asset before Seedance 2.0 can use it.

Celebrities and public figures are not supported

The Asset feature does not support uploading portraits of celebrities, public figures, or similar likenesses, regardless of whether you use it for face-swap or motion reference.

Workflow: reference material with a human face is uploaded as an asset and referenced as asset://{asset_id}; material without a face is passed as a public URL — both feed into Seedance 2.0 video generation

What This Enables

Use case Input Result
Motion reference An amateur motion video + a character image The character performing the motion from the video
Character consistency A single face image (uploaded as an asset) Multiple short videos of the same person across different backgrounds/scenes

Quickstart

  1. Upload the face-containing image or video as an asset, via the Platform UI or the API.
  2. Obtain the assetId from the upload response (or the UI).
  3. Call Seedance 2.0 with input_references pointing at asset://{assetId} so the generated video references the content in that asset.

Method 1: Upload via the Platform UI

  1. In the console, open Assets in the left-hand navigation.

    Assets module in the SIRAYA console, with the Assets nav item highlighted

  2. Click Upload in the top-right corner, then drag your face-containing image or video into the drop zone (or click to browse). Supported: image, video, audio.

    Upload button highlighted in the Assets module, with a drag-and-drop zone below it

  3. After the upload finishes, click the asset and confirm Status = active before using it — an asset that's still processing isn't ready for generation. Copy its Asset ID from the detail panel.

    Asset detail panel showing the uploaded photo, Status = active, and the Asset ID field

  4. Place the Asset ID in your Seedance 2.0 request as asset://{assetId} (see below).

Tip

Uploads are asynchronous. If the asset still shows processing right after upload, wait a moment and re-open it — don't copy the Asset ID until status is active.

Method 2: Upload via the API

Use the Asset Management API directly:

Action Reference
Upload a file or a public URL Upload an Asset
Poll for status: "active" and read assetId Get an Asset
Browse existing assets List Assets
Remove an asset you no longer need Delete an Asset

Passing the Asset to Seedance 2.0

Once the asset is active, reference it from input_references using the asset://{assetId} scheme instead of a public URL:

"input_references": [
  {
    "type": "image",
    "url": "https://your-domain.com/character.jpg",
    "role": "reference_image"
  }
]
"input_references": [
  {
    "type": "image",
    "url": "asset://{assetId}",
    "role": "reference_image"
  }
]

For a video asset, use "type": "video" and "role": "reference_video". See Seedance → input_references for the full parameter reference and mode-exclusivity rules.

FAQ

Why don't I see Assets in the console, or get 403 on the Assets API? This feature is enabled per account on request. Contact us to have it turned on.

I have Assets enabled, but my sub-account's key gets rejected. Assets-related endpoints currently only work with your Root Account's API key. Sub-account keys aren't supported yet — use the Root Account key.

My generated video doesn't match what I expected from the reference asset. First confirm the asset's status is active — a processing asset won't produce a correct reference. Then try a different prompt; output quality with reference materials can vary, and a few attempts are often needed.

Why can't I use the Group API (/assets/groups*) from the docs? Asset Groups are a separate, VIP-only capability, not generally available. See Plans in the Asset Management API overview. Most integrations never need it — the standard single-asset workflow works without any groupId.