A creative studio workspace with a portrait reference pinned up, illustrating the idea of meeting an AI character once and then taking that same face into many new images with IPAdapter FaceID in ComfyUI

Meet your character once, then take her anywhere. That is the whole promise of FaceID.

Same Face, Every Single Time

You finally generate a character you adore, the exact face, the exact vibe, and then you try to make a second image of her and she comes back as a total stranger. It is the most deflating moment in AI art. The fix is a tool called IPAdapter FaceID inside ComfyUI, and once it clicks you stop rolling the dice on identity and start building a character you can return to again and again. Let me walk you through it like a friend leaning over your shoulder.

Posted June 24, 2026 · Craft · by the RealAIGirls crew

Share on X Share on Facebook Share on Reddit

Hey friends. Character consistency is the wall almost everyone hits eventually. You can write a glorious prompt, get a face you love, and feel like you have created a real person. Then the very next render hands you someone with a different nose, different eyes, a different soul. The text prompt simply cannot hold a face still, because words like "green eyes, soft jaw, wavy auburn hair" describe a type, not a specific individual. There are a million people who fit that description, and the model picks a fresh one every time.

What we need is a way to show the model a face instead of describing it, and that is exactly what IPAdapter does. The standard node pack for this in ComfyUI is ComfyUI_IPAdapter_plus by cubiq, and it ships with a few key pieces: an IPAdapter Unified Loader that handles loading the models, an IPAdapter FaceID node built specifically for identity, and an IPAdapter Advanced node for finer control. FaceID is the one that lets you say, in effect, "this exact person, in a new situation." It is the difference between describing a stranger and bringing your character back to life.

What IPAdapter FaceID Actually Does

Here is the mental model that makes everything else easy. A normal prompt is a description. IPAdapter is a reference photo. Instead of telling the model what your character looks like in words, you hand it one or more pictures of her, and the FaceID node reads the actual facial identity out of those pictures and steers the generation toward it. The model still listens to your text for the scene, the outfit, the lighting, and the pose, but the face is anchored to the reference. That is why you can change everything around a character while keeping her recognizably herself.

The FaceID models, the files with names like ip-adapter-faceid-plusv2_sd15 for Stable Diffusion 1.5 and ip-adapter-faceid-plusv2_sdxl for SDXL, do one important thing differently from the regular IPAdapter models. They lean on a face-analysis library called insightface to detect and encode the face. This matters in a very practical way: if insightface is not installed in your ComfyUI environment, the FaceID node will simply error out and refuse to run. So before you fight your settings, make sure insightface is installed. A lot of "it is broken" frustration is really just a missing dependency, and once it is in place the node behaves.

A soft, evenly lit portrait of a single face, the kind of clean reference image that works best as input for an IPAdapter FaceID node when building a consistent AI character

A clean, well-lit reference face is gold. FaceID reads identity from your reference, so feed it your character's best, clearest portrait.

The Settings That Actually Move The Needle

The IPAdapter FaceID node has a handful of controls, and you do not need to master all of them on day one. A few matter far more than the rest, so let us focus there. The big one is weight, which controls how hard the reference pulls the result toward your character. Its range runs from -1 all the way to 3, and the default is 1.0. There is also a second, FaceID-specific dial called weight_faceidv2, which ranges from -1 to 5.0 with a default of 1.0, and it lets you tune the strength of the v2 face signal on its own.

If you crank weight too high, something funny happens: you get a perfect likeness, but the model starts ignoring your prompt. The scene, the outfit, the mood all get steamrolled by the reference. cubiq's own tuning advice is the cure here. Lower the weight to at least 0.8 and increase your sampler steps so the model has more room to reconcile the face with everything else you asked for. If prompt adherence is still fighting you, switching to the IPAdapter Advanced node and trying a different weight type is the next lever to pull. Think of it as loosening the grip just enough that your text gets heard again, without losing the face.

The other settings are worth knowing in passing. The combine_embeds option decides how multiple reference images get merged, with choices like concat, add, subtract, average, and norm average. The embeds_scaling option (with modes such as "V only," "K+V," "K+V with a context penalty," and a mean-of-V variant with a context penalty) changes how the reference signal is injected into the model. And start_at and end_at, both running 0.0 to 1.0 and defaulting to 0.0 and 1.0, let you control during which slice of the sampling steps the FaceID influence is active. You can ignore these at first and revisit them once you want surgical control.

The one habit that saves most consistency runs: start at a primary weight around 0.8 rather than the default 1.0, and bump up your sampler steps a little. Almost every "the face is right but it ignored my prompt" problem traces back to a weight that is too aggressive. Loosen it slightly, give the sampler more steps, and you usually get both at once: the face you want and the scene you described.

More Embeds, Better Results: Stacking References

Here is a tip that genuinely surprised me the first time. In cubiq's own testing, the headline finding was simple: more embeds, better results. A single reference works, but the strongest, most stable likeness came from stacking multiple IPAdapter signals together. The recipe that performed best combined FaceID Plus v2 with one of the other reference types, a face-focused preset, a standard FaceID, or a full-face preset, using a weight of about 0.8 for the primary embedding and roughly 0.4 for the secondary one. The secondary signal reinforces identity without overpowering the prompt.

There is a related move for feeding several reference photos of the same person. You can pass multiple images into the node by routing them through a Batch Images node, which bundles them so FaceID can learn the face from more than one angle. Community guidance here is gentle and worth respecting: two to three reference images tends to work beautifully, and beyond that the identity can actually start to blur, because you are averaging across too many slightly different captures. So curate. Pick two or three of your character's clearest, most consistent portraits rather than dumping in a dozen.

The Real Magic: Same Face, Brand New Scene

This is the part that turns FaceID from a neat trick into a creative superpower. FaceID handles identity, and that is all it should handle. To put your character into a specific pose or camera angle, you bring in a second tool: ControlNet, usually with OpenPose, which feeds the model a skeleton describing the body position. Now you have a clean division of labor. IPAdapter FaceID locks the face, ControlNet OpenPose locks the pose, and your text prompt fills in the scene, wardrobe, and lighting. Suddenly you can place the exact same character standing on a rooftop, sitting in a cafe, or mid-stride down a runway, and she stays herself the whole time.

If you want to go deeper on the pose-and-structure half of that pairing, our walkthrough of camera and lens language helps you frame each new scene like a photographer once the identity is solved. And when a generated image is almost perfect but a hand or an expression drifts, our guide to inpainting and fixing hands and faces is the perfect finishing step, letting you repair one detail without losing the consistent face you just worked to lock in.

Keep The Anchor Steady In Your Prompt

One last habit, and it is a subtle one that quietly makes or breaks consistency. Even with FaceID doing the heavy lifting, your text prompt should keep a fixed character anchor: a short, unchanging description of the defining traits, things like age, hair color, eye color, and a couple of signature features. Write that anchor once, then keep it identical from render to render and only change the variable part, the scene, the outfit, the pose, the lighting.

The reason is that if you rewrite the character description every time, you start fighting the IPAdapter. The reference is pulling the face one way while your shifting words tug it another, and the result drifts. When the anchor stays constant, your text and your reference agree, and the face settles. Pair that discipline with a good base model for realism, cubiq's testing found realisticVisionV51_v51VAE, the v5.1 release, performed best for realistic faces, and you have a genuinely repeatable character.

SymptomThe fix to try first
FaceID node errors and will not runInstall insightface in your ComfyUI environment
Great likeness but prompt is ignoredLower weight to at least 0.8, increase sampler steps
Still fighting prompt adherenceUse IPAdapter Advanced and try a different weight type
Likeness feels weak or unstableStack a second embedding (around 0.4) with your primary (around 0.8)
Face blurs across many referencesTrim to two or three of your clearest portraits via Batch Images
Identity drifts between rendersKeep a fixed character anchor in the prompt, change only the scene

Go Meet Your Character

Here is the encouraging truth to take with you. Character consistency is not some locked, expert-only feature. It is a workflow you can stand up today: install insightface, drop in the IPAdapter FaceID node from cubiq's pack, feed it two or three clean references, start your weight around 0.8 with a few extra steps, stack a second embedding for strength, add ControlNet OpenPose when you want a new pose, and keep a steady anchor in your text. That is the whole recipe.

Do that, and the most deflating moment in AI art quietly disappears. You stop generating beautiful strangers and start building a character you actually know, one you can place in any scene, any mood, any story, and trust that she will still be herself. Meet her once, then take her anywhere. Now go make her real, and have fun doing it.