You generated twenty images of "the same" character and got a family reunion instead. Face drift has exactly five root causes, and each has a specific fix. Diagnostic guide below — find your symptom, apply the fix.
1. No image anchor at all
Symptom: every image is a different person who matches the same description. Cause: you're describing the character in text and hoping. A text prompt is a lossy description matching millions of faces; the model samples a new one each run — this is structural, not bad luck. Fix: anchor identity in images. Pick one canonical seed image and generate from it (reference conditioning), or train on a dataset (LoRA route). There is no prompt-engineering fix for this one — wording cannot pin a face.
2. Re-describing the character alongside references
Symptom: you have reference images attached, yet faces still wobble — and odd features appear (wrong hair color in some renders, exaggerated physiques). Cause: your scene prompts include appearance language ("blonde 25-year-old, slim, blue eyes…"). The model must reconcile your lossy words with the exact pixels, and the words win just often enough to hurt. A name can even backfire — "Golden" reads as a color to the model. Fix: strip every appearance word from scene prompts. Describe where she is and what's happening; let references carry who she is. (Fifty correctly-shaped prompts here.)
3. Library gaps: asking for angles that don't exist
Symptom: frontal close-ups are rock solid; profiles, full-body shots, or unusual lighting drift. Cause: your reference set doesn't cover those cells. Asked for a profile with only frontal references, the model invents the missing geometry — differently each time. Drift concentrated in specific shot types is always a coverage gap. Fix: extend the library along its gaps — profiles, full-body, varied light — until every framing you actually prompt is covered by multiple references. Coverage, not count, is the spec.
4. Polluted references: drift that compounds
Symptom: the character was consistent in month one and has gradually become someone slightly different. Cause: off-model images entered the reference pool — usually because generated references were never verified, or because good outputs got recycled into the library without a quality gate. Each slightly-off reference pulls future generations further; drift compounds like interest. Fix: audit the library against the original seed and delete anything that isn't her — ideally with face-similarity scoring rather than tired eyeballs, since near-misses are exactly what eyeballs forgive at image forty. Then lock the set: growth only through the same verify-and-curate gate.
5. Style bleed
Symptom: identity holds in photorealistic scenes but melts when you prompt heavy styles ("anime portrait," "oil painting," "cyberpunk neon"). Cause: strong style instructions compete with reference conditioning; the further from photographic, the weaker the facial geometry transfer. Fix: keep a persona account photographic (it's also what reads as "an influencer" rather than "an art project"). If you need stylized versions of the character regularly, that's the one use case where a LoRA on top of your verified library earns its training cost.
The meta-fix
All five causes share a root: treating consistency as a prompting problem when it's a pipeline problem. The durable setup is boring and mechanical — one seed, a coverage-complete golden set, automated similarity filtering, human curation, locked library, scene-only prompts. Build that once and drift stops being a thing you fight per-image.
Or skip the plumbing: AI CMO runs that exact pipeline — seed to locked, ArcFace-verified library in minutes. First character: $19.