Nodes/ComfyUI-Nunchaku-Klein/Nunchaku FLUX.2 Klein Identity Guidance
ComfyUI Node

Nunchaku FLUX.2 Klein Identity Guidance

Face identity on edits

By tom-m-2020·Created 2 months ago·Updated 17 days ago· 2
Nunchaku FLUX.2 Klein Identity Guidance
  • model
  • identity_latent
  • MODEL
strength0.30
start_percent0.00
end_percent0.80
modeadaptive

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. direct pulls everywhere equally - strongest lock, most risk of looking pasted. channel_match matches 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 - direct mode + high strength. Switch to adaptive and drop strength to 0.2-0.3.
  • Identity correct, colors wrong - Klein's warm cast still applies; stack a Color Anchor. Different knobs, different problems.
CategoryNunchaku/FLUX.2 Klein/Enhancer/Post-CFG

Inputs (6)

NameTypeDefaultDescription
modelMODEL
identity_latentLATENTVAE-encoded reference image at full resolution.
strengthFLOAT0.300–1How hard to pull toward the reference each step. 0.3 = move 30% of the distance.
start_percentFLOAT0.000–1When to start correcting. 0.0 = beginning of denoising.
end_percentFLOAT0.800–1When to stop correcting. 0.8 = last 20% runs freely for texture refinement.
modeCOMBOadaptiveadaptive: pulls only where prediction resembles reference. direct: pulls everywhere equally. channel_match: matches color/feature statistics without copying spatial content.

Outputs (1)

NameTypeDescription
MODELMODEL