Active, add its asset://... URI to a Seedance video task.
Authentication
Every asset endpoint uses a LaoZhang API key:LAOZHANG_API_KEY:
Billing
Whether verification and asset calls are billed separately is shown on the console pricing page and in call logs. Generating a video with an asset is a separate Seedance task, billed like any other Seedance task; see Seedance billing and pricing.Endpoints
Virtual human assets:
Real-person assets:
Create a virtual human asset
Virtual human assets support digital people, brand characters, virtual hosts, and enterprise spokesperson workflows. Submit one public HTTPS image that can be fetched without authentication. Private, loopback, cookie-protected, and sign-in-protected image URLs are rejected.id, the asset uri,
and the initial status:
Use
id to retrieve the asset status from YingTu, and use uri in the
Seedance video task. Keep both values exactly as returned. Don’t build or
decode internal identifiers from the examples.Create a real-person asset
Real-person assets add a consent and liveness step before asset creation. The API caller can start this flow inside its own product, but theverification_url must be delivered to the represented person.
1
Create a verification session
Call
POST /api/seedance-assets/real-persons/verifications with an HTTPS
callback_url.The optional language accepts:zh(the default)enzh-Hant
2
Have the represented person complete verification
Deliver the one-time
verification_url securely to that person. It expires
after 30 minutes and must not be logged or stored long term.3
Retrieve the verification result
Read
verification_id from the callback and retrieve its status. A pending
verification still returns HTTP 200. Create the asset only after the status
is verified.4
Create and retrieve the real-person asset
Submit a public HTTPS URL for a clear, front-facing image of the same
person. Retrieve the returned public
id until the asset becomes Active.Check asset status
Both asset types use the publicid from the create response. For example:
A failed asset can still return HTTP 200 with
status set to Failed and a
failure object. Don’t treat the HTTP status alone as proof that an asset is
ready.
Use an asset in a Seedance video task
After a real-person or virtual human asset becomesActive, add its complete
asset://... URI to content as a reference_image. Video generation runs
through the LaoZhang API
Seedance video generation API:
https://yingtu.ai/api/seedance-assets/....
Video task creation and result retrieval use
https://api.laozhang.ai/seedance/api/v3/.... The two domains handle
different steps, and both accept the LaoZhang API key.
Limits, errors, and acceptance
- Each API key can make up to 12 create-operation
POSTrequests per hour. Asset-statusGETrequests don’t count toward this limit. On429, wait for the time inRetry-After. - A real-person verification link is valid for 30 minutes. An expired session
returns
410 verification_expiredand must be created again. - Creating a real-person asset while verification is still pending returns
409 verification_pending. 403 capability_unavailablemeans the account doesn’t have the private portrait-asset entitlement, so changing the image won’t help. Contact support at hi@laozhang.ai or on Telegram (@laozhang_cn) with therequest_idto ask about access.- Every success and error response includes
request_id. Include it when you contact support, but never include the complete API key. - An integration is complete when an asset retrieval returns
Activeand a Seedance task that uses the returnedasset://...URI succeeds.
Frequently asked questions
Can I use a photo of a real person as a reference image?
No. Volcengine doesn’t accept reference images or videos that contain real human faces for the Seedance 2.0 models or Seedance 2.5, and upstream content moderation blocks such requests. If a specific real person must appear, that person completes verification and you create a real-person asset. If you only need a realistic character rather than a particular person, create a virtual human asset. Either way, wait until the asset isActive, then send its asset://... URI as a reference_image.
Should I use a virtual human asset or a real-person asset?
It depends on whether the video has to show a specific real person. Digital humans, brand characters, and virtual hosts that don’t stand for a real individual need only a virtual human asset, created from one public HTTPS image. To keep a real person’s identity and likeness, use a real-person asset: that person must complete the official H5 consent and liveness checks within 30 minutes, and the caller can’t complete them on the person’s behalf. A virtual character based on a real person still needs the relevant likeness, voice, name, and usage rights.Can I still retrieve my assets after switching API keys?
No. Verification and asset records are bound to the API key that created them, so retrieving them, or creating a real-person asset from that verification, with another key returns403 resource_not_owned. Before you rotate or disable a key, make sure you no longer need to retrieve those assets. See Authentication.