How to Maintain Consistent Character Style Across Multiple Midjourney Images
Character consistency is one of the most requested and most difficult things to achieve in Midjourney. The model generates differently every time. Even with an identical prompt and the same seed, a character's face, proportions, hair, and clothing can shift noticeably between images. For illustration series, visual storytelling, and any project where the same figure needs to appear across multiple scenes, this is a practical problem that requires deliberate technique rather than hoping the outputs happen to match.
This article covers the tools and approaches that produce real, repeatable consistency, including what each technique can and cannot do.
Understanding Why Character Consistency Is Hard
Midjourney does not have a character memory. Each generation is independent. When you describe a character in text, the model generates a plausible interpretation of that description based on its training data, not based on a stored character definition. The same description can produce multiple different but equally valid interpretations across generations.
This means text description alone, no matter how detailed, is not enough to lock a character's appearance. A description like "tall woman with short dark hair, blue jacket, strong jawline" will produce different outputs every time because each element has a wide range of valid interpretations. The fix requires moving from text description to visual reference.
Technique 1: --cref (Character Reference)
Midjourney's --cref parameter (character reference) is specifically designed for character consistency. It extracts facial features and character appearance from a reference image and applies them to new generations, similar to how --sref works for style but focused on the character's physical attributes.
Basic syntax
your scene description --cref https://your-character-reference.jpg --cw 100
The --cw parameter (character weight) controls how strongly the reference influences the output, on a scale of 0 to 100. Higher values produce closer resemblance to the reference. Lower values allow more variation while maintaining a loose visual connection.
--cw values in practice
- --cw 0: Only the style of the reference transfers, not the specific character features. Closest to a loose aesthetic influence.
- --cw 50: Balanced. The character shares broad visual DNA with the reference without being a strict replica. Good for varied poses and expressions while maintaining recognizability.
- --cw 100: Maximum fidelity. The output closely matches the reference character's features. Use when consistent identification across images is the priority.
What --cref transfers and what it does not
--cref focuses on facial features and overall character appearance. It does not reliably lock clothing, accessories, or background elements. It also works better at human-facing angles than at profiles or extreme angles where the face is partially obscured. For scenes where your character appears from behind or at extreme distance, --cref has less to work with and consistency is reduced.
Choosing a good character reference image
- Front-facing or three-quarter view of the face, with the face filling a significant portion of the frame
- Clear, unobstructed facial features with no heavy shadow across the face
- High resolution, no compression artifacts
- Neutral or simple background so the model focuses on the character rather than the environment
- The pose and expression you want as your baseline, since
--crefcan extrapolate to new poses but works best when the reference gives it a strong starting point
Technique 2: --sref for Consistent Visual Style Around the Character
While --cref handles character features, --sref handles visual style. Using both together lets you anchor the character's appearance with --cref while keeping the rendering style, color palette, and aesthetic consistent with --sref.
your scene description --cref character-url --sref style-url --cw 80 --sw 150
The style reference should be one of your best existing outputs from the series, so the rendering approach transfers consistently across new images. This combination addresses two separate consistency problems simultaneously: what the character looks like and how the image is rendered.
Technique 3: Seed Locking for Controlled Variation
Every Midjourney generation uses a random seed number that influences the output. By locking the seed, you can generate variations of the same underlying image rather than truly independent outputs.
How to find and use seeds
- React to any Midjourney output with the envelope emoji (✉️) in Discord. Midjourney sends you the job details including the seed number.
- To reuse a seed: add
--seed [number]to your prompt. - With the same seed and the same prompt, Midjourney produces very similar outputs. With the same seed and a modified prompt, you get variations that maintain similar underlying structure.
What seed locking is and is not good for
Seed locking is useful for: generating multiple variations of the same scene with slight prompt changes (different lighting, different expression, different outfit) while keeping the character recognizable. It is not a substitute for --cref across completely different scenes or compositions, because changing the scene description significantly produces substantially different outputs even with a locked seed. Think of it as variation control within a scene, not cross-scene character transfer.