Nunchaku FLUX.2 Klein Identity Guidance
Face identity on edits
- model
- identity_latent
- MODEL
Here's the honest ranking: Qwen-Image-Edit holds a face better than Klein; Klein looks better and drifts more. That identity drift on edits is the single most common complaint about the model - you ask for a small change and get a new person. The NunchakuKleinIdentityGuidance is this pack's answer: a post-CFG patch that pulls the latents toward a reference image during sampling, step by step, so the face you want stays the face you get. It's the direct, unsubtle cousin of the much more elaborate Identity Feature Transfer node, and for "keep this person's identity" it's the one to start with.
How it works
You VAE-encode the reference at full resolution into identity_latent. Every step, the sampler nudges the denoising latents toward that reference by strength - at 0.3, it moves 30% of the distance each step. Two scheduling knobs control when it acts:
start_percent/end_percent- default 0.0 → 0.8. The last 20% runs freely for texture refinement. This matters more than people think: pulling at identity too late in the schedule fights the model's detail work and you get a waxy face.mode- three flavors.adaptive(default) pulls only where the prediction already resembles the reference, which is the safest against smearing.directpulls everywhere equally - strongest lock, most risk of looking pasted.channel_matchmatches color/feature statistics without copying spatial content, which is the mode you want when you care about palette but not pose.
strength at 0.3 is a real starting point; the tooltip's math is honest ("0.3 = move 30% of the distance"). Going to 0.7+ is how you get the "plastered face" look.
Inputs and outputs
model (from the pack's Model Loader), identity_latent (VAE-encoded reference, full resolution per the tooltip), and the three knobs above. Output: MODEL, through to the KSampler. The README notes this node is 9B-only in the current build - on a 4B setup it won't behave.
Installing
Same pack, same backend story:
cd ComfyUI/custom_nodes
git clone https://github.com/tom-m-2020/ComfyUI-Nunchaku-Klein
Vitoom Nunchaku wheel first (huggingface.co/tonera/vitoom-nunchaku), then the tonera Klein checkpoint in diffusion_models/.
Common issues
- Face still drifts - pair it with a consistency LoRA; the community's Klein Consistency LoRA exists precisely for this. Also check
end_percent: ending correction at 0.8 leaves the identity-defining early steps covered. - Face looks pasted on -
directmode + high strength. Switch toadaptiveand dropstrengthto 0.2-0.3. - Identity correct, colors wrong - Klein's warm cast still applies; stack a Color Anchor. Different knobs, different problems.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| identity_latent | LATENT | VAE-encoded reference image at full resolution. | |
| strength | FLOAT | 0.300–1 | How hard to pull toward the reference each step. 0.3 = move 30% of the distance. |
| start_percent | FLOAT | 0.000–1 | When to start correcting. 0.0 = beginning of denoising. |
| end_percent | FLOAT | 0.800–1 | When to stop correcting. 0.8 = last 20% runs freely for texture refinement. |
| mode | COMBO | adaptive | adaptive: pulls only where prediction resembles reference. direct: pulls everywhere equally. channel_match: matches color/feature statistics without copying spatial content. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |