Skip to main content
Seedance 2.0 generates video from trusted reference assets — a face, an outfit, a product, a voice. To keep generation consistent and compliant, those references live in a private asset library that the model trusts at inference time. OrcaRouter exposes that library under /v1/asset. This page explains how the library works and what’s required. For the exact endpoints, parameters, and a try-it console, see API Reference → Seedance Assets.

How the library is structured

  • Asset Group — a container. For a real-human group, one group maps to one real person; for a virtual group, it’s a logical grouping (e.g. one character).
  • Asset — a single file (image, video, or audio) inside a group. Only assets that reach Active status can be referenced in video generation.
You reference a ready asset in a video request as asset://<asset_id>.

Two kinds of group

The upload and management operations are identical for both; they differ only in how the group is created.
Virtual (AIGC)Real-human (LivenessFace)
Use forFictional / AI characters, props, scenesA real person’s likeness
Created byA direct create callA one-time face verification by that person
WhyNo identity to protectPortrait rights — consent is captured at the source
Both libraries require Advanced Creation Rights; the capacity quota is shared between them. The real-human library is available to invited accounts.

Asset file requirements

Assets are provided as a publicly accessible URL (no file upload, no base64). Limits:
TypeFormatsConstraints
Imagejpeg, png, webp, bmp, tiff, gif, heic/heifaspect ratio (W/H) 0.4–2.5 · 300–6000 px per side · < 30 MB
Videomp4, mov480p/720p/1080p · 2–15 s · ratio 0.4–2.5 · 300–6000 px · total pixels 409,600–2,086,876 · 24–60 fps · ≤ 50 MB
Audiowav, mp32–15 s · ≤ 15 MB
Portrait content, best practices (for face consistency):
  • Full-body reference: vertical, full-body frontal shot of the person.
  • Facial close-up: vertical, neutral expression, framed above the shoulders, face filling roughly two-thirds of the frame.
Uploading several good references of the same person into one group improves how faithfully the generated video reproduces their face and clothing.

Asset lifecycle (upload is asynchronous)

Uploading an asset returns immediately with an asset_id; the file is then preprocessed in the background. Poll the asset until its Status settles:
  • Processing — still preprocessing; keep polling.
  • Active — ready; use it in video generation.
  • Failed — preprocessing rejected it; inspect Error (e.g. format/size, a content-moderation block, or — for real-human groups — FaceMismatch).
SLA on upload time is not guaranteed; video assets take longer than images. The signed download URL returned for an asset is temporary (~12 hours).

Real-human verification flow

A real-person group is created by the person verifying themselves once. Your backend never handles their face data — it only orchestrates the flow:
1

Start a session

Your backend asks OrcaRouter to start a verification session. You get back an H5 link (a hosted face-check page) and a session_id.
2

The person verifies

You hand the H5 link to the end user. They open it on their own device — no OrcaRouter login required — and complete the face check. They authorize once; later, new looks for the same person can be added to the same group without re-verifying.
3

The group is created

On success, the verification page redirects the end user’s browser back to an OrcaRouter callback (handled automatically), and the new group is registered for you. If you passed a return_url, the user lands back on your page.
4

Poll for the result

Your backend polls the session until status is success (with the new group_id) or failed. Then you upload assets and generate video exactly like a virtual group.
Face consistency. When you upload an image into a real-human group, it’s compared against the verified reference. A different person (or multiple faces in one image) is rejected — the asset resolves to Failed / FaceMismatch. A group’s name and description can be set after creation via the update-group operation.

Quota

Your account has a maximum asset count (default 100, across all groups). Uploads past the cap are rejected with 403.

Referencing an asset in video generation

Once an asset is Active, reference it by asset://<asset_id> in the Seedance video request’s metadata.content[], and point to it in the prompt by type + position ([Image 1], [Video 1], [Audio 1]) — never by raw asset id:
{
  "model": "byteplus/dreamina-seedance-2-0-260128",
  "prompt": "The girl in [Image 1] arranges items on the counter.",
  "metadata": {
    "content": [
      { "type": "image_url", "role": "reference_image",
        "image_url": { "url": "asset://asset-20260318071009-xy98z" } }
    ]
  }
}

Next

  • API Reference → Seedance Assets — every endpoint, full parameters, and an interactive playground (this is where the request/response samples live).
  • Seedance Video — the video-generation endpoint that consumes these assets.