To keep an AI character consistent across shots, you do two things: lock identity before you generate, and filter continuity on every frame after. An identity lock is a canonical reference, a character sheet image, fixed physical facts, exact prop specs, that the model is forced to match instead of re-inventing. A continuity filter is a check that compares each new frame against that canon before it is ever approved. Everything else is downstream of those two moves.
Why AI characters drift
The fastest way to spot AI footage is to watch one character across three shots. The face shifts. The jacket changes color. The bag in their hand is a different bag. That drift, not resolution, not motion, is the number-one tell that something was generated rather than directed.
It happens because generative models re-imagine the subject on every render. Ask for the same person twice and you get two cousins. Each shot is a fresh roll of the dice, so faces, wardrobe, props, and lighting wander unless something external holds them in place. The model has no memory of the last frame. The director has to supply it. This is where most AI content fails, people prompt harder, with longer descriptions and more adjectives, and get more variation, not less. The answer lives upstream of the prompt.
Step one: build an identity lock
An identity lock is a fixed reference the model must match, never re-invent. At KURACONV it starts with a character sheet, a canonical image of the person fed into every generation as a reference, never described from scratch in text. Words alone produce a generic subject; the reference image anchors a specific one.
- Pin the unchangeable physical facts, height, build, hair, skin tone, eye color, written once and reused verbatim across every shot.
- Pass the character sheet as an image reference on every render, not just the first. In Seedance, that means a role-tagged image input each time.
- Lock props the same way. A signature bag gets an exact hex color and form, treated as a character in its own right.
- Anchor every subject to a fixed object in the scene, a parked car, a doorway, so the model holds spatial position from shot to shot.
- Cap the variables per generation at two: subject and camera. Add location, motion, and a second person on top, and identity collapses.
Step two: run a continuity filter on every frame
A lock prevents drift. A continuity filter catches what slips through. Before any frame is approved, it is checked against the canonical references and the frames already approved for that scene, face against the character sheet, wardrobe against the outfit sheet for that moment, props against their exact specification, lighting and color temperature against the scene standard.
At KURACONV this filter is not optional, and it is not the director's gut. Every decision passes a council of 22 minds, photographers, directors, philosophers, strategists, that screens the work against AI slop before it reaches the founders. Continuity is treated as ethics, not preference. A frame with a continuity error costs more than the render it takes to fix it, so it never ships.
We direct AI, we do not prompt it. Consistency is a directing decision, made before the first frame, enforced on every frame after.
Direction over generation
The principle behind both steps is the one that runs the studio: AI is the new lens, direction is the eye. A lens does not remember the last shot, the director does. Consistency comes from the shotlist, the locked references, the per-second blocking, and the filter, not from a better model. The tools we direct (GPT-Image-2, Seedance, Higgsfield, Kling, Veo) all drift the same way. The craft controls are what hold the line.
This is why work like Dubai Falcon and Everest reads as film rather than feed. The character you meet in shot one is the same character in shot nine, because the identity was locked before generation began, and every frame was filtered before it was kept.
AI characters drift because the model re-imagines the subject on every render, consistency comes from an identity lock set before generation and a continuity filter run on every frame after.