asset://<ID>) in Seedance requests instead of public URLs.
Asset Management is independent of video generation. Use
volc-asset, volc-asset-video, or volc-asset-audio when creating assets, then pass the resulting asset://<ID> to a supported Seedance model.For specific content requests, select the corresponding model under the
Direct resource group: volc-asset-nsfw for images, volc-asset-video-nsfw for videos, or volc-asset-audio-nsfw for audio. Each NSFW model ID adds the -nsfw suffix to the standard model ID.Supported Seedance models
Why use Asset Management?
- Persistent storage — Assets are stored on Volcengine and don’t expire like temporary URLs
- Multi-format support — Upload images, videos, and audio files
- Organized by groups — Group related assets (e.g. per project or campaign)
- Data isolation — Each API token sees only its own assets
- Direct integration — Use
asset://<ID>directly in Seedanceimage_url,video_url,audio_urlfields
Supported formats
Seedance 2.5 enhanced input capabilities
This section applies only toseedance-2.5 and supplements the existing asset-management instructions above. Media inputs can be supplied through public URLs, supported Base64 data, or asset://<ID> references.
These limits describe media used as input to Seedance 2.5. For the upstream specification and examples, see the official Seedance 2.5 reference.
Image requirements
- Input methods: Image URL, Base64-encoded image, or asset ID.
- Formats: JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC, and HEIF.
- Dimensions: Aspect ratio (width/height) from
0.4to2.5; width and height from300to6000px. - Size: Each image must be smaller than 30 MB. The complete request body must not exceed 64 MB. Do not use Base64 for large files.
Video requirements
- Input methods: Video URL or asset ID. Video Base64 input is not supported.
- Formats: MP4 and MOV.
- Resolution: 480p or 720p.
- Duration and count: Each video must be 2–30 seconds. You can provide up to 10 reference videos, with a combined duration of no more than 30 seconds.
- Dimensions: Aspect ratio (width/height) from
0.4to2.5; width and height from300to6000px. - Total pixels: Width multiplied by height must be between
409600(640 × 640) and8295044(3326 × 2494). - Size: Each video must not exceed 200 MB.
- Frame rate: 24–60 FPS.
Audio requirements
- Input methods: Audio URL, Base64-encoded audio, or asset ID.
- Formats: WAV and MP3.
- Duration and count: Each audio clip must be 2–30 seconds. You can provide up to 10 reference audio clips, with a combined duration of no more than 30 seconds.
- Size: Each audio clip must not exceed 15 MB. The complete request body must not exceed 64 MB. Do not use Base64 for large files.
Retention periods
- Task records: Retained for 7 days. The query interval is
[T-7 days, T), whereTis the request time as a UTC Unix timestamp in seconds. - Generated video URLs: Retained for 24 hours and limited to 100 downloads. Download or transfer generated videos promptly.
The 24-hour period applies to generated video result URLs. It is separate from the temporary URL returned by
GetAsset; continue to use asset://<asset_id> as the persistent asset reference.Rate limits
- RPM: The maximum number of video generation tasks that an account can create per minute for the same model. Requests above this limit return an error.
- Concurrency: The maximum number of tasks that can be processed simultaneously for the same model under an account. Additional tasks wait in the queue.
Billing models
Asset review and activation time
These times are ideal estimates. Actual timing may vary based on file size, media format, and review queue load. When the review queue is congested, asset activation may be delayed by about 10 seconds to 2 minutes. Use the asset through
asset://<ID> only after its status becomes Active.Asynchronous processing and asset URLs
CreateAsset is asynchronous. The API returns an asset ID after accepting the upload request, but the asset still needs upstream preprocessing before it can be used for inference. Poll GetAsset until Status becomes Active.
Workflow
LivenessFace workflow
Use the LivenessFace flow when you need a private real-person portrait group. AnyFast creates a mobile verification page, the user completes liveness face verification on a phone, and the result becomes aLivenessFace asset group.
1
Create a validation session
Call
CreateVisualValidateSession to obtain H5Link and BytedToken.cURL
2
Open the H5Link on a phone
Send the returned
H5Link to the user and ask them to complete liveness face verification.3
Query the result
After verification, call
GetVisualValidateResult with the BytedToken. A successful verification returns a GroupId.cURL
4
Manage the LivenessFace group
Use the returned
GroupId with UpdateAssetGroup, ListAssetGroups, CreateAsset, ListAssets, and GetAsset. When listing liveness groups or assets, include Filter.GroupType: "LivenessFace".If verification is not completed or did not create a group,
GetVisualValidateResult may return {"GroupId": ""}. Invalid or expired tokens return an upstream error.When uploading an image to a LivenessFace group, the image must match the verified person. Mismatched faces return
FaceMismatch and the asset status becomes Failed.Step 1: Create an Asset Group
First, create a Group to obtain a Group ID.Step 2: Create an Asset within the Group
Using the Group ID from Step 1, upload your image asset (e.g., a character reference face).TheURLfield accepts three formats:Base64 / Data URI are automatically uploaded to object storage.
- Public URL:
https://example.com/image.jpg- Data URI:
data:image/png;base64,iVBOR...- Raw Base64 string (auto-detected, treated as PNG by default)
Upload video
Video uploads must specify"model": "volc-asset-video"and"AssetType": "Video".
cURL
Upload audio
Audio uploads must specify"model": "volc-asset-audio"and"AssetType": "Audio".
cURL
File upload (multipart)
Upload image
Upload video
Upload audio
Step 3: Generate a Video Using the Asset
Reference the Asset ID from Step 2 to generate a video.Important: Assets must be passed in strict order:text,image_url,video_url,audio_url. Do not reorder them — doing so may cause errors. When multiple assets are included, do not mix in other asset types.
cURL
asyn).
Step 4: Poll for the Result
Use the task ID to check the generation status.cURL
- The download link expires after 12 hours.
- If the task reaches 100% progress but returns an error, this typically means the output was flagged by the provider’s content moderation (e.g., celebrity likeness or copyrighted IP). In this case, try modifying your prompt or using a different reference image.
Query assets
List asset groups with combined filters
cURL
200
List assets in a group
cURL
Manage assets
Update an asset group
cURL
Update an asset
cURL
Delete an asset
cURL
Delete an asset group
cURL
Billing
Data isolation
When using token-based access, the system automatically prefixes asset group names with[u-{userID}]-[t-{tokenID}], providing user and token-level data isolation. Queries automatically filter to return only data accessible by the current token.
API Reference
Create Asset Group
Create a new asset group.
Create Asset
Upload an asset (image, video, audio) to a group.
Create Liveness Session
Create a mobile liveness face validation session.
Get Liveness Result
Query the LivenessFace group created by a validation session.
List Asset Groups
Query asset groups.
List Assets
Query assets within groups.
Update Asset Group
Update asset group information.
Update Asset
Update asset information.
Delete Asset
Delete an asset.
Delete Asset Group
Delete an asset group.