Jiniu AIJiniu AI
Docs

FAQ

Common questions about Seedance video generation and the asset library

Video generation (Seedance)

Which Seedance models are available?

Three, all under the seedance group:

ModelPositioning
dreamina-seedance-2-0-260128Standard — best quality, the only one supporting 1080p
dreamina-seedance-2-0-fast-260128Fast
dreamina-seedance-2-0-mini-260615Mini — lowest price

Model names must be passed verbatim; do not abbreviate them.

Which resolutions are supported?

Model480p720p1080p2K4K
dreamina-seedance-2-0-260128✅✅✅❌❌
dreamina-seedance-2-0-fast-260128✅✅❌❌❌
dreamina-seedance-2-0-mini-260615✅✅❌❌❌

Actual output sizes: 480p → 864×496, 720p → 1280×720, 1080p → 1920×1080.

Unsupported resolutions return 400 with the upstream error passed through:

{
  "code": "invalid_resolution",
  "message": "resolution 1080p is not supported by dreamina-seedance-2-0-fast-260128"
}

How is it billed?

By the total_tokens reported upstream, and token count grows with pixel count and duration. For a 5-second clip: roughly 50.6K tokens at 480p, 108.9K at 720p and 245.0K at 1080p — the same 1 : 2.15 : 4.84 ratio as the pixel counts.

Price per million tokens (USD):

Model480p / 720p1080pWith reference video (480p / 720p)With reference video (1080p)
dreamina-seedance-2-0-260128$7.0$7.7$4.3$4.73
dreamina-seedance-2-0-fast-260128$5.6—$3.3—
dreamina-seedance-2-0-mini-260615$3.5—$2.1—

Two rules:

  • 480p and 720p cost the same — they share the base tier; 1080p is billed at 1.1× the base price.
  • Generations with a reference video are discounted, to roughly 60% of the base price.

Example: one 480p / 5-second clip on mini ≈ 50,638 tokens × $3.5/M ≈ $0.177.

Why is more deducted than the final cost?

Billing is pre-charge then settle: an upper-bound amount is held when the task is submitted, and the difference is refunded once it finishes and the real token count is known.

For mini at 480p / 5 seconds: 437,500 held → 348,884 refunded → 88,616 actually charged (quota units). The 1080p tier raises the hold by the same 1.1× factor.

Failed or rejected tasks are refunded in full.

Why does cancelling a task usually fail?

This is upstream behaviour, passed through as-is:

  • 409 InvalidAction.RunningTaskDeletion — the task is already running and upstream refuses to delete it. Tasks typically enter that state within two seconds of submission.
  • 404 — a few upstream routes do not implement cancellation at all.

In practice, once a task is accepted it will run to completion and be billed. Do not rely on cancellation to stop a mistake — check the parameters before submitting.

Output is served as a pre-signed object-storage link that is valid for 24 hours. After it expires the /v1/videos/{id}/content proxy cannot retrieve it either, so download and re-host the file while the link is alive.

Asset library

What is the basic flow?

create asset group → upload asset → poll until Active → reference it with asset:// when generating

Assets are downloaded and ingested asynchronously upstream, usually reaching Active within 20 seconds; using one before it is Active will fail. See the asset library docs.

How do I reference an asset in a generation request?

Three forms, recognised in any string field of the request body:

FormMeaning
asset://{assetId}A single asset
asset://{groupId}/{assetId}Group / asset, two-level reference
asset://{groupId}The whole asset group (used for digital-human avatars)

Why must I use the same key that created an asset?

Assets are upstream account-level resources. The gateway binds every asset and asset group to the channel and specific credential that created it, and pins all later reads, writes, deletes and generation requests back to the same place.

Accessing them with a key from a different group simply will not find the record upstream. So: always operate on a set of assets with the same API key.

Can one request reference assets from different sources?

No. If a generation request references assets that belong to different channels, the gateway returns 400 and says so instead of guessing — whichever channel it picked, half the assets would be unavailable.

Can I use assets created directly in the upstream console?

They are not protected. The gateway only maintains ownership records for assets created through the gateway; references it does not recognise fall back to normal routing and may land anywhere. Create assets through the platform's asset library API instead.

How does the digital-human (liveness) flow work?

CreateVisualValidateSession → user completes liveness check in the H5 page → GetVisualValidateResult

Once verification passes you get an asset group ID. From then on it behaves like any other asset group and can be referenced as a whole with asset://{groupId}. Poll for the result using the same key that created the session.

See liveness verification for the endpoint details.

Is there a limit on the number of avatar assets?

No platform-side limit; the effective ceiling is your upstream account quota.