Skip to main content
Some video generation models — specifically Seedance 2.0 and SD2 Manxue — support rich multi-modal reference inputs: you can supply reference images, videos, and audio clips to guide the output. However, when your reference media contains faces or virtual avatars, you must first upload those assets to the GlobalAI OPC asset library and wait for them to pass a content review before you can use them in a generation task. This page explains the full upload, review, and usage workflow for both models.

When Do You Need Asset Management?

You only need to go through the asset management workflow in the following situations. For other reference inputs (standard images without faces, publicly accessible URLs), you can pass the URL directly in your generation request.
  • When your reference images contain faces or virtual avatars — these require platform moderation before use and must be uploaded via the asset API.
  • When you want to reuse the same reference media across multiple generation tasks — uploading once and referencing by assetId is more efficient than passing a URL repeatedly.
  • When you want to explicitly manage, audit, or delete uploaded reference media from your account’s asset library.

Seedance 2.0 Asset Workflow

1

Upload the asset

Send a POST request to /kyyReactApiServer/kyyVideo2/asset/upload with the following body parameters:The API responds with an assetId in the format asset-{timestamp}-{random}.
2

Poll for Active status

Send a GET request to /kyyReactApiServer/kyyVideo2/asset/{assetId} and check the status field in the response. Assets involving faces or virtual avatars are subject to a moderation review that may take additional time. Continue polling until the status is Active.
3

Reference the asset in a generation task

Once the asset status is Active, reference it in your Seedance 2.0 generation request using the asset://{assetId} URI format. Use the appropriate parameter depending on the asset type:
  • first_image or last_image — for an image that anchors the first or last frame of the video
  • referenceImages — for one or more style or subject reference images
  • referenceVideos — for a video reference clip
  • referenceAudios — for an audio reference track
For example: "first_image": "asset://asset-20260330142158-q75m8"
4

Delete the asset when done

When you no longer need the asset, send a DELETE request to /kyyReactApiServer/kyyVideo2/asset/{assetId} to remove it from your library.

SD2 Manxue Asset Workflow

SD2 Manxue uses a batch submission model — you can submit multiple image, video, and audio URLs in a single request. Each submitted asset receives its own assetId for individual tracking.
1

Submit assets for review

Send a POST request to /kyyReactApiServer/asset/sd2Manxue/assetUpload with arrays of URLs grouped by media type. You must include at least one non-empty array.The response includes an items array where each entry contains its own assetId and an initial status of submitted.
2

Poll for Active status

Send a POST request to /kyyReactApiServer/asset/sd2Manxue/assetStatus with the assetIds array containing the IDs you want to check. Poll this endpoint until every asset you need reports a status of Active.
3

Reference the assets in a generation task

Once all required assets are Active, reference them using the asset://{assetId} URI format in your SD2 Manxue generation request parameters (for example, referenceImages, referenceVideos, or referenceAudios).

Asset Status Values

The following status values apply to both Seedance 2.0 and SD2 Manxue assets:
Deleted assets cannot be recovered. Before deleting an asset, confirm it is not referenced by any active or pending generation tasks. Once deleted, the assetId is permanently invalidated and cannot be reused.
Always check that your assets have status Active before submitting a generation task that references them. Submitting a generation task with a Processing or Failed asset will cause the task to fail. Build a short polling loop into your asset preparation step to avoid wasted generation calls.