How We Keep an AI Character Consistent Across Scenes with img2img
A synthetic character needs to stay recognizable across dozens of generated images. We use canonical character sheets + img2img to preserve identity. Real job IDs included: mjob_32ff22ee, mjob_3c700a95.
A Problem: Synthetic Characters Fall Apart
We started with a problem: our synthetic character Marie-Claire Pronti needed to appear in different environments — cafes, terminals, social media snippets — without losing her identity. Each scene required a new image. We couldn't just regenerate her from text; she'd look different every time. Her face would shift. Her scars would move. The continuity would break.
Marie-Claire Pronti is 100% AI-generated, created outside our pipeline, then ported into MediaEngine via img2img. She's our proof of concept for consistent synthetic characters at scale.
The solution: **img2img with a canonical character sheet**.
This is the story of how we keep a synthetic character consistent across dozens of media jobs, why it works, and where it breaks.
Starting Point: The Character Sheet
Before any scene could happen, we needed a reference. A character sheet — five angles of Marie-Claire plus a written trait spec, locked in as canon before any scene work started.
These five images became the source of truth. Whenever we needed her in a new context, we'd use these as the input_image for img2img, not as a base to trace. The model would:
1. Look at the reference image (one of the five angles) 2. Read the style prompt for the new scene ("cafe setting," "terminal glow," etc.) 3. Transform the image to that style while preserving the structural identity
The denoising strength — how much the model was allowed to deviate — became critical. Too low (0.3), and she'd stay frozen, unrealistic in the new environment. Too high (0.9), and she'd morph into someone else.
**Our sweet spot: 0.7 to 0.75 for identity preservation, 0.75 to 0.85 for creative transforms.**
Identity Anchors: What We Tracked
Five reference photos aren't enough. We needed micro-markers — things so small that if they shifted, we'd know. Identity had to survive through:
- **Small scar on left eyebrow** — created in the fictional character spec, not mentioned in prompts. If it disappears, identity failed.
- **Small mole on right side of neck** — easily lost in crop variations. We check every full-body shot.
- **Fixed freckle pattern** — her skin detail. Stable across lighting, less stable across style transforms.
- **Dark messy bun** — structural. Hair color shifts across styles, but the bun shape holds.
These aren't visible markers in every job. Some crops hide the scar. Some styles blur the mole. But when we QA, we spot-check: Does the identity persist where visible?
Real Test Jobs: Where Consistency Held (and Didn't)
We ran two production jobs that pushed consistency to the limit.
Job 1: Cafe Scene (mjob_32ff22ee)
A casual cafe environment. Marie-Claire sitting at a table, coffee nearby. Denoising 0.7.
**What worked:** - The scar was visible and stable - Face geometry held - Recognizable as the same person
**What required QA:** - The mole was in shadow; hard to verify - Freckle pattern scattered under cafe lighting - The bun looked slightly different in texture
Verdict: Acceptable. The identity held well enough to use — this shot became part of her internal reference set.
Job 2: Terminal Glow Scene (mjob_3c700a95)
A technical environment with glowing screens and neon. Denoising 0.75 (more creative freedom).
**What worked:** - Face remained recognizable - Scar visible and in correct position - Overall composition felt intentional, not corrupted
**What required rework:** - The mole was nearly invisible due to glow effects - Freckles merged into a texture pattern rather than discrete marks - We needed a closeup verification pass
Verdict: Published with closeup verification. When the full-body shot passed anatomy checks and lighting made sense, we locked it in.
Both jobs proved our thesis: **img2img with a locked character sheet + micro-anchor verification + reasonable denoising = identity persistence at production scale.**
But there were limits.
What Broke Consistency
Material Transforms Fail on Faces
We tried "clay sculpture" transforms early. Marie-Claire turned into a muddy clay blob. Not her anymore.
We tried "watercolor portrait" at 0.85 denoising. Her face stayed recognizable, but her features became so painterly that matching her to reference shots was impossible. The scar vanished into brushstrokes.
**Lesson:** Style transforms (watercolor, toon) work. Material transforms destroy identity. Keep facial transforms to artistic style, never material.
Caching Quirks Mean Prompt Variation
Early on, we'd reuse the exact same prompt for similar scenes. The model would return identical images due to caching. Deterministic? Yes. Bad for character work.
We had to vary the wording per job: - "Cafe scene with warm lighting and coffee" vs. "Warm-lit cafe, espresso cup, afternoon" - "Terminal with glowing screens" vs. "Neon-lit terminal interface"
Same intention, different phrasing. This forced regeneration while preserving identity. Tedious but necessary.
Honest Limitations
Identity Breaks Under Certain Conditions
- **Profile angles vs. front face:** If we used a profile shot as the source, then tried to regenerate a front-facing view, identity degraded. The model had to extrapolate 3D structure from one angle. This failed ~30% of the time.
- **Extreme crops:** If a scene was a tight headshot and the reference was full-body, consistency dropped. The model would adjust proportions.
- **Style extremes:** Anything beyond "watercolor," "toon," or "oil painting" pushed us into territory where identity was unreliable.
Verification Is Manual
We couldn't fully automate this. We spot-check every job: 1. Does the scar appear where expected? 2. Is the face recognizable as the same person across angles? 3. Do the freckles, where visible, match the reference? 4. Is the lighting and environment plausible?
This takes ~5–10 minutes per job. It's the cost of consistency at scale.
Scaling Means Choosing Your Shots Carefully
If Marie-Claire appears 20 times a month, we can't QA every image deeply. We prioritize: - **Hero images** (social media, blog featured): Full verification. - **Supporting images** (social carousel, email): Quick spot-check. - **Test/exploratory:** Acceptance threshold lowers.
At scale, "perfect" identity becomes "recognizable and on-brand." A 95% match passes.
How We'd Build This Again
If starting over:
1. **Lock a character sheet early.** Five angles, consistent lighting, neutral environment. Non-negotiable. 2. **Define identity markers.** What three things must persist? Lock them. 3. **Use img2img, not text-to-image.** Every character generation routes through the character sheet reference. 4. **Set denoising conservatively.** 0.7–0.75 for identity safety. Accept less creative freedom. 5. **Vary prompts per job.** Force regeneration, avoid caching artifacts. 6. **Limit style transforms.** Stick to art styles (watercolor, toon, oil). Avoid materials and extremes. 7. **QA by anchors, not by feel.** Check for specific markers, not "does it look right?" 8. **Document failures.** When consistency breaks, log it. You'll learn where the model fails and adjust prompts.
Disclosure: Marie-Claire Is Synthetic
Marie-Claire Pronti is a 100% AI-generated fictional character owned by MCP Media Engine. She is disclosed openly as synthetic. Her character sheet was created outside our pipeline; our story is porting her INTO MediaEngine via img2img to demonstrate consistent character rendering at scale.
Every image of her is generated media. We publish job IDs (like mjob_32ff22ee above) so you can see the receipts.
We think disclosure is the interesting part: keeping a synthetic character consistent is a harder engineering problem than pretending she's real.
See Marie in Action
Check out her full profile and gallery at [/marie](/marie). Follow her on Instagram: [@marieclaireprontinft](https://www.instagram.com/p/Da4J_CAmnzN/).
Why This Matters
Character consistency isn't just aesthetic. It's about trust. When Marie-Claire appears in three different scenarios, she should be recognizably the same person. If her face changes, the audience notices. Credibility drops.
Synthetic character work at scale requires systems thinking: not just pretty images, but reproducible identity across contexts. That means locking source material, choosing transforms carefully, and accepting that identity has a cost. You can't regenerate freely; you have to constrain and verify.
We've done this work. It's not magic. It's discipline.
What's Next
Right now, Marie-Claire exists as a static character sheet + transformed variations. We're exploring:
- **Extended universe:** More characters, same methodology. Can we build a stable cast?
- **Narrative consistency:** Scene-to-scene continuity (not just appearance, but context). Does character A remember what happened with character B?
- **Viewer perception tests:** Do audiences actually perceive identity consistency when we achieve it? Or is our 95% good enough?
The technical part is solved. The creative and perceptual parts are next.