The hardest part of AI character work is not making one good portrait. It’s making the same face twice. You nail a striking knight in one render, go to generate her from a different angle, and the model hands you a stranger. If you write AI character prompts for any kind of series work — a comic, a brand mascot, a set of profile cards — consistency is the whole game, and most of it comes down to technique rather than luck.

I build character sets for client decks and personal comics, so I’ve burned a lot of hours on this exact problem. Here’s what actually holds a face together across a batch, tool by tool, with prompts you can paste and run. No hype. Some of these features are genuinely good. Some are oversold, and I’ll tell you which.

Why AI character prompts drift #

A text-to-image model has no memory of yesterday’s render. Every generation starts from fresh noise, and your words are the only thing steering it. “A red-haired elf warrior” describes a category, not a person — there are a million red-haired elf warriors in that latent space, and the model picks a different one each time. So consistency is really two jobs: pin the identity hard enough that the model lands near the same person, and remove the randomness that lets it wander.

Three levers do most of the work. Fixed, unusually specific descriptors. A locked seed. And the model’s own identity-reference tools. Stack all three and you go from “vaguely similar” to “clearly the same character.”

Lever one: descriptors that don’t move #

Before any special parameter, write a character “sheet” — a block of fixed descriptors you paste into every prompt unchanged. The trick is to be specific in ways the model can actually latch onto. “Pretty woman” drifts. “Woman, late 20s, sharp jawline, copper-red hair in a low braid, pale grey eyes, faint freckles across the nose, small scar through the left eyebrow” drifts far less, because each detail narrows the pool.

Pick a few signature features and never let them vary. A scar. A specific hair color and cut. Heterochromia. A distinctive nose. These act like anchors. Here’s a reusable sheet in Midjourney syntax:

/imagine prompt: portrait of Mara, woman in her late 20s, sharp angular
jawline, copper-red hair in a tight low braid, pale grey eyes, light
freckles across the nose, small vertical scar through the left eyebrow,
weathered leather armor, neutral expression, soft overcast light,
85mm, shallow depth of field --ar 4:5 --style raw --v 6.1

To put her in a new scene, change only the scene words and keep the identity block byte-for-byte identical:

/imagine prompt: portrait of Mara, woman in her late 20s, sharp angular
jawline, copper-red hair in a tight low braid, pale grey eyes, light
freckles across the nose, small vertical scar through the left eyebrow,
laughing, golden hour light in a wheat field, 85mm, shallow depth of
field --ar 4:5 --style raw --v 6.1

This alone — a frozen descriptor block plus a single named feature like that eyebrow scar — gets you most of the way. Do it before you reach for anything fancier. Naming the character (“Mara”) doesn’t summon a specific person from the model’s training, but it does keep you disciplined about pasting the same block every time.

Lever two: lock the seed #

The seed is the starting noise pattern. Same seed plus same prompt equals the same image; same seed plus a slightly changed prompt gives you a related image instead of a random one. That relationship is what you want when you tweak an expression or outfit and need the face to stay put.

In Midjourney, grab a seed by reacting to a finished job with the envelope emoji — the bot DMs you the number. Then reuse it:

/imagine prompt: [your fixed character block], surprised expression,
torchlit stone corridor --ar 4:5 --style raw --seed 1234567 --v 6.1

Be honest about what this does, though. In Midjourney, a fixed seed nudges results toward consistency — it’s a strong influence, not a hard lock, and the face can still shift when you change the prompt a lot. In Stable Diffusion the seed is far more literal: same seed, same model, same settings reproduces the image exactly, and small prompt edits stay genuinely close. So the seed is a precision tool in SD and a helpful tendency in Midjourney. Use it either way, but calibrate your expectations to the tool.

Lever three: the model’s identity tools #

This is where the real consistency lives, and each platform does it differently.

Midjourney –cref and –sref

Midjourney’s character reference flag, --cref, takes an image URL and carries that character’s identity — face, hair, general features — into a new generation. You point it at a render you already like:

/imagine prompt: full body, Mara standing on a castle rampart at dawn,
wind in her hair, wide cinematic shot --ar 16:9 --cref
https://your-image-url/mara.png --cw 100 --v 6.1

The companion knob is --cw (character weight, 0–100). At --cw 100 Midjourney tries to copy the full character including clothing and hair. Drop toward --cw 0 and it keeps mainly the face, letting you restyle the outfit. That low setting is the one you want for putting a character in new costumes:

/imagine prompt: Mara in a formal black evening gown at a grand ball,
chandeliers --ar 4:5 --cref https://your-image-url/mara.png --cw 20 --v 6.1

Separately, --sref is style reference, not character. It copies the look — palette, rendering, line quality — of a reference image without copying the subject. People mix these up constantly. Use --cref to keep the person; use --sref to keep the art style across a whole set so every panel feels like one hand drew it. They stack:

/imagine prompt: Mara reading by candlelight --ar 4:5
--cref https://your-image-url/mara.png --cw 40
--sref https://your-image-url/style-plate.png --v 6.1

Realistic expectation: --cref is good, not flawless. It holds identity well in medium shots and similar lighting. Push to extreme angles, very different lighting, or tiny faces in a wide shot and it loosens. Generate a few and cherry-pick — that’s normal workflow, not failure. For more on combining flags cleanly, the breakdown in our Midjourney parameters guide goes deeper on weights and ordering.

Stable Diffusion: same seed, then a LoRA

In Stable Diffusion you have two tiers. Tier one is the cheap version of everything above: a fixed descriptor block, a locked seed, and a low denoise on img2img to riff on an existing pose. That’s free and gets you consistent-ish results in an afternoon.

Positive: portrait of a woman, late 20s, copper-red braided hair,
grey eyes, freckles, scar through left eyebrow, leather armor,
soft window light, detailed face, sharp focus
Negative: deformed, extra fingers, blurry, lowres, inconsistent face,
asymmetry, watermark, text
Seed: 1234567 | Steps: 30 | CFG: 6 | Sampler: DPM++ 2M Karras

Tier two is the real answer for a recurring character: train a small LoRA. A LoRA is a lightweight add-on you train on a set of images — 15 to 30 is a sane range — that teaches the base model one specific concept, in this case one face. Once trained, you summon the character with a trigger word and it stays remarkably stable across poses, outfits, and scenes, because the identity now lives in the weights instead of in your prompt.

Positive: maracharacter, full body, sitting at a tavern table,
warm firelight, fantasy illustration, detailed
Negative: deformed, extra fingers, blurry, lowres, watermark
Seed: -1 | Steps: 30 | CFG: 6.5 | <lora:maracharacter:0.8>

That <lora:maracharacter:0.8> loads the LoRA at 80% strength. The honest catch: training a LoRA takes setup, decent source images, and some trial and error on strength (too high and it overfits, baking in one pose; too low and the likeness fades). It’s the most reliable method by a distance, and it’s the most work. If you’re shipping a real character series, it’s worth it. For one-off art, stick with descriptors and seeds. Our Stable Diffusion prompts guide covers the prompt side in more depth.

DALL·E 3 and the gen-and-edit loop

DALL·E 3 has no --cref equivalent and no LoRA. Consistency there leans almost entirely on a richly specific written description plus, within a single chat, asking for variations of an established image so the model keeps context. It’s the weakest of the three for strict character continuity — fine for concepting a look, frustrating for a 20-panel comic. Know that going in and pick the tool to match the job. The DALL·E 3 prompts guide has natural-language patterns that help.

Framing a portrait so the face reads #

Consistency aside, a portrait still has to be a good portrait. A few descriptors carry enormous weight here. Lens length sets the perspective: 85mm or 135mm gives the flattering compression headshot photographers use, while 24mm up close distorts features. Name the light and its direction — Rembrandt lighting, soft window light from the left, butterfly lighting — and you control the entire mood. Add sharp catchlights in the eyes and a portrait stops looking dead.

/imagine prompt: cinematic close-up portrait, [character block],
contemplative, single softbox key light camera left, subtle rim light,
sharp catchlights, dark neutral background, 135mm, f2 --ar 4:5
--style raw --v 6.1

One named, directional light source does more for a portrait than any quality token. “Soft window light from the left” beats “masterpiece, best quality” every time.

A workflow that actually holds a character #

  1. Write a fixed descriptor block. Lock in two or three signature features that never change.
  2. Generate a batch and choose your “hero” reference — the canonical look.
  3. For new scenes in Midjourney, feed that hero image to --cref and tune --cw (high to keep the outfit, low to restyle).
  4. Keep a single --sref plate across the whole set so the art style stays unified.
  5. For a serious series in Stable Diffusion, train a LoRA on 15–30 images and drive it with a trigger word.
  6. Cherry-pick. Even with every lever pulled, generate several and keep the best match. That’s the craft, not a shortcut.

None of this is magic, and anyone promising a one-click identical character is selling you something. But stack a frozen descriptor block, a locked seed, and the right reference tool, and you’ll hold a face across a whole project. Start with the descriptor sheet today — it’s free, it’s fast, and it’s the foundation everything else builds on. When you’re ready to drop your character into full scenes, the landscape and environment prompts library pairs well with this one.