Correction, 2026-10-01: the first version gave an order in which characters drift (face under expression first, "characters drift younger, consistently", hair before the rest of the silhouette), said wide shots hold identity worse than mediums and that big smiles break identity fastest, and said the gain from more references drops off after about seven. We have not measured any of that, so those lines are now checks and advice. It also did not say which video models on 8frame can take a reference set at all: Kling v3 and Wan 3.0 take one start image and no reference images, and Seedance, Gemini Omni Flash and Happy Horse take a start image or references, not both. That is added below.
Hold a character across a campaign by locking a reference set once and generating everything from it, never from the last output. Drift is cumulative: generating asset three from asset two, and asset four from asset three, carries every small difference forward until the person in the last frame may not be the person in the first. Every asset should trace back to the same originals.
Build the reference set first
Before generating any campaign asset, produce and freeze a reference set of the character:
Three angles. Front, three-quarter, profile. Neutral expression, even light.
One full-body. For proportion and wardrobe.
Two expressions. Whatever range the campaign needs.
One in campaign lighting. The look the campaign actually uses, so the references match the light of the final assets.
Save these as the canonical set, name them clearly, and store them with the asset structure so nobody six weeks later generates from a screenshot of an ad.
Which models on 8frame can use the set
Image models that take references, and the reference modes of several video models, use the set directly rather than as a description. The set above is seven images. For stills, Seedream takes up to 14 references and Nano Banana up to 10. For video, Grok Imagine's reference mode takes 1 to 10, Happy Horse 1 to 9 and Seedance up to 9 on the canvas, Gemini Omni Flash 1 to 7 and Kling O1 Reference up to 7. Veo 3.1 multi-reference takes up to 3, so pick the three that matter for the shot.
Two catches. On Seedance, Gemini Omni Flash and Happy Horse you attach either a start image or references: if both are attached, the references are sent and the start image is dropped. And Kling v3, where the Kling tool opens, and Wan 3.0 take one start image and no reference images. With those, the set works through the start frame: make each start frame from the set first, for example on Nano Banana Pro with the set as references (21 credits a still at 1K or 2K), then animate that still.
What to check in every asset
We have not measured which of these slips first, or on which model, so check all of them every time.
The face under expression. Compare every smiling or talking version against the neutral references, not only against the previous asset.
Apparent age. The character should read as the same age in every asset. Keep the age in the prompt and check it.
Hair detail. Length, parting and texture. If the references alone do not hold them, name them in the prompt.
Wardrobe specifics. Buttons, seams and logo placement, checked as closely as the face.
Skin tone under different light. Warm and cool setups can make the same person read differently, which is both a quality problem and a representation problem worth being deliberate about.
The shot rules that reduce drift
Generate from the reference set every time. The single most important rule.
Keep framing consistent where you can. When a shot is wide, check the face as closely as you would in a close-up: a small face is easy to overlook in review.
Keep expressions moderate. Ask for big smiles and shouting only where the campaign needs them, and check those assets against the reference set first.
Keep lighting families consistent. If the campaign needs both a warm interior and an overcast exterior, generate a reference in each and treat them as two reference sets for one character.
Regenerate rather than iterate. If asset seven is wrong, go back to the reference set, not to asset six.
The review pass that catches it
Put every character asset side by side at the end, at the same size, and look at them as a set rather than individually. Small differences are hard to see one asset at a time and much easier to see in a grid. This is the check that catches the campaign where the person in week four is subtly a different person from week one.
Anything that fails the grid gets regenerated from the reference set, not corrected.
When to give up and cast a person
Honest limits, because this fails in specific ways.
When the character speaks at length. A long take has to hold lip sync, identity and performance at once. If you try it, keep lines short and check every take; otherwise cast a performer.
When the campaign runs for months. The longer the work runs and the more people pick it up, the more chances someone generates from something other than the reference set. Keep the set locked and documented, or cast.
When the character is the brand. A recurring spokesperson the audience will come to know is a strong case for a real person.
When representation matters specifically. If the character exists to represent a real community, generating them is a decision with implications beyond production convenience.
Where generation is easiest to manage: short-form, campaign-length, non-speaking or lightly speaking work, with a reference set and a grid check.
FAQ
How many reference images do I need? The set above is seven: three angles, one full body, two expressions, one in campaign light. Attach the ones each shot needs rather than all of them: more references are not automatically better, and the caps differ by model (Veo 3.1 multi-reference 3, Gemini Omni Flash and Kling O1 Reference 7, Happy Horse and Seedance 9 on the canvas, Grok Imagine 10). The full list is in AI reference image limits by model.
Can I keep a character consistent across both stills and video? Yes, if both come from the same reference set. A video made from a still that was itself generated from the set is one step further from the originals, so check it against the set too, not only against the still.
Can I attach a start image and the reference set together? Not on Seedance, Gemini Omni Flash or Happy Horse: with both attached, the references are used and the start image is dropped. Kling v3 and Wan 3.0 take only a start image, so make that frame from the set.
What if the character has to speak? Consider a real performer, or accept short lines and check every one. See best AI video generator for consistent characters 2026 for the model comparison and AI character consistency workflow for the step-by-step.
Sources
- Reference limits per model, start-image rules and the start-image-or-references behaviour of Seedance, Gemini Omni Flash and Happy Horse: the 8frame tool configuration and the settings 8frame sends to each provider, read 2026-10-01
- Nano Banana Pro price: the 8frame tool registry cost functions, read 2026-10-01
Freeze the reference set, generate everything from it, and review the campaign as a grid rather than as assets.
Try it without signing up: the 8frame canvas opens on a real board. The canvas is free and unlimited; generation is paid from $19/month.