What is Character consistency? Definition, key points and related tools
Keeping one character's face, build and costume identical across shots and episodes. Achieved in four layers: reproducible appearance text, neutral-light white-background sheets, references injected per segment, and storyboards that list only who is in frame.
Four scopes, four different fixes
Consistency has four scopes, each fixed in a different place:
- Within one shot: the face holds while the head turns. That is model quality, chosen with the model.
- Across cuts inside one segment: the shots share one generation and one set of references, so storyboard wording decides it.
- Across segments: separate calls with no memory, held together by the reference chain and the appearance text.
- Across episodes: weeks apart, sometimes on a newer model version, held together by a persistent cast library with frozen, versioned sheets.
AI short drama depends on the last two. Public benchmarks mostly measure the first: VBench's subject-consistency score compares DINO features of each frame with the first and previous frames of the same video. A high score says a face did not melt inside one clip; it says nothing about whether episode 12 shows the actor from episode 3.
By their own descriptions, tools split this job differently. SceneMixer's site says every clip is generated against the reference sheets, so attaching them is automatic. Kling's Element Library and LTX Studio's Elements store a character once, and both vendors describe reuse across works or projects; you attach or @-tag the element in each generation. On the Vidu and MiniMax APIs, references travel inside each request, so which sheet version goes into which episode is your own bookkeeping.
How to judge it: a cross-segment audit
- Build a contact sheet. For each character, place one face crop per segment next to the face crop from the character sheet, same size, same order. Drift that is invisible in playback is plain side by side.
- Check in the order viewers notice: face shape and features, hair (length, parting, colour), skin tone, build and relative height, costume layers and accessories, then voice.
- Add a number when volume grows. Identity-preservation research scores faces by embedding similarity; the ConsisID paper reports FaceSim-Arc (ArcFace features) and FaceSim-Cur (CurricularFace). The same idea works as triage: embed each segment's face crop, compare it with the sheet, and send the lowest scores to a person. No vendor publishes a pass mark, so use the score to rank, not to approve.
- Do not treat the seed as a lock. Alibaba and Google both document that a fixed seed does not guarantee identical output (details in the FAQ below). References carry identity; seeds do not.
Reference budget per segment
Each character needs about two images (full body and face crop) and the location needs a plate. Vendor caps decide how many people can be fully anchored in one call (official docs, checked 2026-09-12):
| Model | Image references per call | Notes |
|---|---|---|
| MiniMax H3 | up to 9 | first 5 free, then $0.04 each |
| Seedance 2.0 / 2.5 (BytePlus) | 1–9 / 1–30 | references with real human faces are not accepted as direct uploads |
| Wan 3.0 | up to 10 | addressed as Image 1, Image 2 in the order of the media array |
| Vidu reference-to-video | 1–7 | 1–4 on q2-pro when videos are uploaded; a named subject holds up to 3 images |
| Kling VIDEO 3.0 Omni | up to 7 images or elements | 4 with a reference video; each element holds 2–4 images |
| Veo 3.1 | up to 3 | clip fixed at 8 seconds when references are used |
A two-hander in one room is 2 × 2 + 1 = 5 images: within H3's five free slots, over Veo's three. A four-person scene is 9: the cap on H3 (plus $0.16 of surcharge per call) and on Seedance 2.0, within Wan 3.0's ten. Kling counts elements rather than images, so there the same scene uses five of seven slots. Past a cap, some faces enter the shot unreferenced: the mechanical reason crowded frames drift.
Common mistakes and their causes
- Evaluating on a hero shot. One clip looks right, so the model is called consistent; the drift appears across segments, where nobody looked.
- Regenerating a sheet mid-series. A new text-to-image call is a new face, so earlier and later segments now reference different people. Freeze sheets, label them with the episodes they cover, and derive new looks by editing the approved image.
- Forgetting voice. Viewers also recognise a character by voice. Kling and LTX Studio let a character element carry a voice, Vidu's subjects take an optional voice_id, and MiniMax H3 and Seedance 2.0 each take up to 3 reference audio clips, 15 seconds in total (see reference audio).
- Photos of real people. Seedance 2.x does not accept directly uploaded references containing real human faces, and OpenAI's Videos API (scheduled to shut down on 2026-09-24) rejects input images with human faces. Generated characters avoid both the rejection and the likeness risk (see the rights checklist).
The explainer covers mechanisms and the layer-by-layer fix; the guide has the production checklist.
Key figures and sources
| Figure | Value | Source | Date |
|---|---|---|---|
| VBench subject consistency | DINO features of each frame vs the first and previous frame, within one video | arxiv.org | 2026-09-12 |
| ConsisID identity metrics | FaceSim-Arc (ArcFace) and FaceSim-Cur (CurricularFace) | arxiv.org | 2026-09-12 |
| MiniMax H3 reference images | up to 9; first 5 free, then $0.04 each | platform.minimax.io | 2026-09-12 |
| Veo 3.1 reference images | up to 3; clip must be 8 s | ai.google.dev | 2026-09-12 |
| Seedance 2.x references (BytePlus ModelArk) | 2.0: 1–9 images, 2.5: 1–30; real human faces not accepted as direct uploads | docs.byteplus.com | 2026-09-12 |
FAQ
Is there a consistency score I can compare between tools?
Not for the kind that matters in a series. Benchmarks such as VBench score consistency inside one generated clip, and vendors do not publish comparable cross-segment identity figures. Audit your own segments with a contact sheet, and add face-embedding similarity when the volume makes manual review slow.
Does a fixed seed keep the same face?
No. Alibaba says a Wan 3.0 result may differ even with the same seed, and Google describes Veo's seed as improving determinism slightly without guaranteeing it. Any change to the prompt changes the output anyway. Identity comes from references attached to every call.
How many characters can share one segment?
Count images: about two per character plus one plate. Two people (five images) fit every model in the table above except Veo 3.1, which takes three, and Vidu q2-pro when a reference video is uploaded. Four people (nine images) fit MiniMax H3, Seedance 2.x and Wan 3.0, and take five element slots on Kling. Beyond the cap, give extra people their own shots or segments. See reference image for input specs.
Sources
- https://arxiv.org/html/2311.17982
- https://arxiv.org/html/2411.17440
- https://platform.minimax.io/docs/guides/pricing-paygo
- https://platform.minimax.io/docs/api-reference/video-generation-v2-create
- https://docs.byteplus.com/en/docs/ModelArk/1520757
- https://www.alibabacloud.com/help/en/model-studio/wan3-video-generation-api-reference
- https://platform.vidu.com/docs/reference-to-video
- https://kling.ai/quickstart/klingai-element-library-3-user-guide
- https://ltx.io/blog/getting-started-with-elements
- https://scenemixer.com/
- https://ai.google.dev/gemini-api/docs/veo
- https://developers.openai.com/api/docs/guides/video-generation