Reelune
Keeping an AI Character's Face Consistent — Three Methods, Measured
20 images × 3 conditions: why identity drifts, and what actually fixes it
- AI character consistency
- same AI character
- consistent face AI generation
- IP-Adapter consistency
Reelune
Currently in the feed
Auto-pulled from the latest Plays. Refreshes as new videos publish.
Afternoon light, this calm feels good.
@yuki-r
Sunlit cafe moments, can't help but smile
@nell-r
A quiet bar at dusk, a shy smile
@wren-r
Salty air and sunlight, this laugh just broke out
@tala-r
Window light, my quiet little moment
@nell-r
Just me, this light, and a moment
@wren-r
A quiet breath in the morning kitchen
@nell-r
Studio light, this mood feels right. 🤎
@nova-r
Ask an image model for the same character twice and you get two different people. On Reelune the same character appears across many videos, so this was not cosmetic — it was fatal. We measured three approaches under identical conditions and published what actually held up, including the settings that made things worse.
The three methods side by side
| Consistency | Cost | Best for | |
|---|---|---|---|
| Tags only | Low (different people) | None | One-off images |
| Tags, heavily pinned | Low (better, not enough) | None | One-off images |
| Reference image (IP-Adapter) | High | Low | Recurring characters |
| Fine-tuning (LoRA) | Highest | High | When a reference is not enough |
Why consistency is hard
An image model builds a picture from scratch every time, satisfying whatever the prompt asks for. Ask for "silver hair, hime cut, grey eyes" and you get that. But an unlimited number of faces satisfy those words.
Everything you did not specify is decided by the seed:
- Face shape
- How the eyes are drawn
- Lip weight
- Apparent age
For a one-off illustration that does not matter. For a service where the same character returns in video after video, it is fatal.
Viewers come back looking for the girl they saw last week. A different face is a different person, and the character stops existing.
How we measured
We changed exactly one variable and generated 20 images per condition.
| Setting | Value |
|---|---|
| Model | SDXL-family illustration model |
| Resolution | 832 × 1216 |
| Sampler | Euler / normal |
| CFG | 4.5 |
| Steps | 30 |
| Variable | seed only (20 values) |
Outfit, pose, framing and location were all pinned. Adding variables would make it impossible to tell whether drift came from the seed or from the settings.
Judging was by eye. Whether something reads as the same character is a perception, not a specification, so a similarity score would not have answered the question.
Method 1: More tags — did not work
First we described the character in tags: silver hair hime cut blunt bangs grey eyes slender expressionless.
The result was twenty different people sharing a haircut.
| Outcome | |
|---|---|
| Held | Hair colour, length, fringe, skin tone, outfit, expression |
| Drifted | Face shape, eye rendering, lips, apparent age, side locks, shading style |
Eyes and lips drifted most. Seed variance flows into whatever you left unspecified, which means the more tags you write, the more concentrated the drift becomes in what remains.
Pinning the drift did not help either
So we named the drifting attributes explicitly: eye shape, brows, lip colour, face shape, framing.
- Framing held
- The face still drifted
It also backfired. Adding sharp narrow eyes and thin eyebrows pushed the model toward hollow, unsettling faces — worse looking than before we added the tags.
The lesson: tag prompting can narrow the spread, but it cannot pin identity.
A failure worth publishing: we blacked out the frame
While iterating we also tried to pin the lighting, stacking four tags at once: dim indoor lighting soft shadows low key lighting night.
The output was almost entirely black — faces sunk into a blue-cast frame, and the comparison stopped being possible at all.
Lighting tags multiply. Four words that each mean darker do not darken independently; they compound. One was enough.
The original problem was the face, not the lighting. Touching things outside the actual problem creates new ones.
Method 2: Reference image — this worked
Next we transferred appearance from a reference image (IP-Adapter). We picked one image from the first batch and pinned it as the reference.
We tested three strengths, 8 images each.
| Strength | Face match | Side effect |
|---|---|---|
0.5 | Somewhat | Noticeable drift remains |
| `0.7` | Holds | Usable |
0.9 | Strongest | Flattens the art and pins composition too, killing variety |
0.7 was the sweet spot.
But holding up in the same scene and outfit proves nothing. What a service actually needs is the same character across changing scenes and clothes. So we kept the reference fixed and varied outfit and location across 8 settings:
- Office (suit)
- Living room (blouse)
- Summer festival (kimono)
- Mansion (evening dress)
- Bedroom (hoodie)
- Poolside (swimwear)
- Lingerie
- Oversized sweater
All 8 read as the same person.
Two residual issues: hair occasionally shifts toward blonde, and body proportions vary slightly by scene. Both were acceptable.
Method 3: Fine-tuning (LoRA) — not needed here
The most reliable way to pin a character is to train on images of them (LoRA).
That requires two things:
- Assembling a consistent training set
- Standing up a training environment
Method 2 gave us enough consistency, so we skipped the investment.
If a reference image is sufficient, try that first. Jumping straight to training gets the order backwards.
Face-detection methods do not always apply
For photoreal work, injecting facial embeddings via face detection is powerful. It does not work on illustration. The underlying detector only finds photographic faces; on anime art it finds nothing.
| Method | Photoreal | Illustration |
|---|---|---|
| Face-detection based | Strong | Does not run |
| Image-embedding based (IP-Adapter) | Works | Works |
When choosing a consistency method, check that it runs on your art style first.
What it actually costs in time
The comparison above only asked whether faces held. In production, speed matters too.
The first image is slow because it includes loading a 6.7GB checkpoint from disk onto the GPU. As long as you keep generating with the same model, you pay that once.
Which means: generating one image at a time while switching models pays 90 seconds every time. Twenty images requested separately take 30 minutes; batched, two and a half.
Adding the reference image barely changed per-image time. The extra computation is one image embedding, negligible against sampling itself. Consistency costs essentially nothing.
If you are building this — the order to try things
For a service where one character recurs, this order gets you there fastest.
- Generate a few dozen with tags alone and see the drift yourself. Skip this and you will pay for training without knowing whether you needed it.
- Identify what drifts, then try a reference image. Change one thing at a time. We touched lighting at the same time and blacked out the frame; that destroys your ability to attribute cause.
- Always test multiple strengths.
0.5and0.9are different products. Defaults tend to land on either no effect or too much. - Re-measure with varied outfits and locations. Holding in one fixed scene proves nothing.
- Only then consider training. Characters without a distinctive feature (common hair colour, average build) are meaningfully harder.
Characters in the cast
FAQ
Where does the reference image come from?
Generate a few dozen with tags alone, then pick the one that reads as the character. A human has to choose that first image.
Isn't a higher strength always better?
No. At 0.9 faces match best, but the art flattens and composition gets pinned too, so scenes lose variety. 0.7 was the practical trade-off.
Does it really hold when clothes and location change?
We tested 8 scenes twice each and all read as the same person. Hair occasionally drifted toward blonde.
Can you get consistency without LoRA?
For this character, yes. Characters without a distinctive feature (common hair colour, average build) are harder, so training may still be required.
Does the same approach work for photoreal?
Yes, though face-detection methods are more accurate there. Those same methods do not run on illustration, so pick by art style.
Open the feed





