uploadandnap.com

Consistent faces in Flux 2 with the new PuLID nodes.

Flux has always been great at realism and bad at keeping one face across scenes. The new PuLID nodes for Flux 2 fix that — give it one reference photo and a prompt, and the identity carries through.

PuLID is a set of ComfyUI nodes for identity consistency: you feed in a reference face, and the model keeps that face in whatever scene you prompt. It's been around for other models, and support for Flux 2 just landed.

The official example workflows were a tangled mess and didn't work well, so they've been rebuilt and flattened into two cleaner versions: one for Flux 2 Dev and one for Flux 2 Klein.

which version? Flux 2 Dev loads a lot into system RAM — it was tested on a 5090 with 128GB RAM. On a typical setup, start with the Klein workflow.

01Models you'll need

FILENOTES
Flux 2 Dev FP8 mixedThe checkpoint (or Flux 2 Klein for the lighter workflow).
Mistral 3 text encoderLarge, but gave noticeably nicer results.
PuLID Flux 0.9.1The identity model. On Hugging Face.
8-step Turbo LoRAOptional speed-up, with a built-in toggle.
Flux 2 model loaders and prompt node in the PuLID workflow
model loading and the prompt, flattened so it's readable.

02Add a good reference face

Load one clear photo of your character into the PuLID reference node. Quality matters: a low-resolution reference gives a weaker result, so use your sharpest image.

Reference face image loaded into the PuLID node
the reference face feeding the pulid identity nodes.

03Normal or Turbo

The workflow includes an 8-step Turbo LoRA with a single toggle — switch it and the right nodes are selected automatically. Turbo was left on for these tests and looks good, though it may contribute to the artifacts covered below.

Turbo LoRA toggle group in the workflow
one switch flips between normal and turbo generation.

04Prompt and generate

Short, scene-focused prompts work well. The face comes from the reference, so the prompt only needs the setting, outfit, angle and mood. A tip: ask an LLM like Claude for a batch of lifestyle prompts to test with.

Example prompt: laying on white linen bedsheets, soft morning light, silk pajama set, candid, scrolling phone, overhead angle, lifestyle editorial.

Generated image of the character lying on bedsheets with a phone
first try, no cherry-picking: about a minute including model load.

Hands and the phone hold up, and the face reads as the reference. Then a completely different scene with a different reference — Mediterranean cliffside sunset, white linen dress, wind in hair, looking at ocean, three-quarter back angle, travel influencer aesthetic, cinematic:

Generated image of a woman in a white dress on a Mediterranean cliff at sunset
59 seconds. identity holds even at a three-quarter back angle.

05Fix the crosshatching

Some results show a faint crosshatch or tiling texture. The fix: change the upscale method in the workflow to nearest-exact. That cleared most of it.

Clean result after switching the upscale method to nearest-exact
after switching to nearest-exact: cleaner skin, earrings and all, in 45 seconds.

How it stacks up

Against cloud models like Nano Banana Pro and Nano Banana 2, open-source Flux is a different ballgame — those are hard to beat right now. But knowing how to get consistent faces from open models matters. Cloud access can get restricted or change, and a local workflow is yours to keep.

Both versions of this workflow (Dev and Klein) are on the smallzero.io member site. For a training-based approach instead, see how to train an AI influencer LoRA.

$ ls ../related

SeedVR2: Upscale AI Video From 720p to 1440p→ ComfyUI MCP: Connect Claude Code or Codex to ComfyUI→ LTX 2.3 Low VRAM Workflow: AI Video on 8GB GPUs→
next steps

$want the datasets, workflows and LoRAs behind posts like this?

they're shared inside the skool community. come join us.