Skip to main content
Seedance 2.0 image- and reference-to-video models can drive a video from a human face you supply. When the Venice API detects a face in your submitted media, it requires a one-time consent attestation before the media is processed. This is a provider requirement for face-bearing inputs and protects against non-consensual likeness use. This guide covers exactly what you send, what you get back, and how returning requests are handled. Consent is only requested when both are true:
  1. The model is a face-eligible Seedance variant:
    • seedance-2-0-image-to-video, seedance-2-0-reference-to-video
    • seedance-2-0-fast-image-to-video, seedance-2-0-fast-reference-to-video
  2. The submitted media actually contains a detectable human face, in any of these fields: image_url, end_image_url, reference_image_urls, reference_video_urls.
If there is no face in any of those fields, the request proceeds normally with no consent step. Text-to-video never enters this flow.
Consent does not unlock restricted content. A detected minor combined with sexually-suggestive prompts/NSFW, or a recognizable public-figure likeness, is rejected as a content-policy violation (422) and cannot be made acceptable by attesting consent.

The two-call flow

Submit your generation request as usual — no consent field:
If a face is detected and you have not yet attested, you get a non-charging 409:
No credits or x402 payment are charged on a 409. Resend the same request body, adding a consents.seedance object with three confirmations, all true:
A successful submission returns the normal queue response:
Then poll POST /api/v1/video/retrieve with the queue_id as usual (see Video Generation).
All three fields must be the boolean true. Any missing field, a false, or any extra field — including a consent_version — is rejected with a 400. The policy version is always set by the server; clients never send or pick a version.

Returning requests (dedupe)

If you submit the exact same media bytes you have already attested to, the API recognizes it and proceeds without asking for consent again — you can omit consents.seedance on subsequent identical submissions. This match is by exact image bytes: re-encoding, resizing, or cropping produces different bytes and will prompt for consent again. A partial match (one previously-attested input plus one new face input) still requires a fresh consents.seedance on the new submission.

Revocation

To revoke consent and erase stored face assets, sign in to the Venice web app (Settings). Revocation is not available through the public API. After revoking, the next request using that media will prompt for consent again.

Payment

The consent decision always happens before any charge, for both payment methods:
  • API key: a 409/422 returns before the credit charge; nothing is billed for a blocked request.
  • x402: the consumption charge runs only after a successful generation, so a 409/422 settles nothing. Re-submit with consent (and a fresh x402 authorization) to proceed.

Error reference

References