Nunchaku FLUX.2 Klein Text Enhancer
The simpler dial for pushing a Klein prompt harder or softer
- conditioning
- CONDITIONING
Your prompt is a whisper or a shout, and ComfyUI's normal weighting syntax is deaf. The NunchakuKleinTextEnhancer is the stripped-down sibling of the pack's full Enhancer: three knobs that scale and reshape the Qwen3 text conditioning after encoding, no layer-slice depth required. Where the full Enhancer lets you aim at structural vs. semantic layers separately, this one just asks "how loud is the prompt, and how distinct are the tokens?"
It's part of the same family as the Klein Enhancer port - experimental, close-to-but-not-identical to the original Flux2Klein-Enhancer behavior - and the README marks it as one of the "Enhancer" nodes that only work on the 9B variant. Feed it a 4B model's conditioning and it may simply not apply. Worth knowing before you build a workflow around it.
What the knobs do
magnitude- the main event. Scale the text embeddings: below 1.0 makes the prompt weaker, above 1.0 makes it stronger. This is the closest thing Klein has to a global "prompt weight" slider, and it's a lot more predictable than trying to emphasize individual words.contrast- token differentiation. Positive sharpens the difference between tokens (stronger topic separation), negative blends them together (everything influences everything). Zero is off. Think of it as the "is my prompt coherent or a pile of unrelated nouns" dial.normalize_strength- equalizes token magnitudes across the sequence. Useful when one concept is hogging the conditioning; 1.0 flattens everyone to the same volume.skip_bos- default on, and leave it on. Token 0, the beginning-of-sequence token, has a huge norm that would dominate any normalization. The tooltip tells you exactly why it exists.
Output is CONDITIONING, wired straight to the KSampler.
How to actually use it
Start at magnitude 1.0 and nudge in 0.05-0.1 steps. This is conditioning-space surgery; the model was trained on Qwen3's natural distribution, and shoving magnitude to 2.0 produces images that look like the prompt was shouted at them. A common pattern is pairing it with the Detail Controller or Sectioned Encoder upstream, then using magnitude as the master volume and contrast to tighten topic focus.
Install is the pack standard - Manager → "Nunchaku-Klein", or:
cd ComfyUI/custom_nodes
git clone https://github.com/tom-m-2020/ComfyUI-Nunchaku-Klein
Backend first: Vitoom Nunchaku wheel, then the tonera Klein checkpoint in diffusion_models/.
Common issues
- No effect at all - check your model size. This node targets the 9B per the README; on a 4B setup it won't do what you expect.
- Everything looks oversaturated - you're combining magnitude >1 with contrast >0 and normalize_strength 0. Pick one axis of attack at a time.
- Same seed, different output - the README documents that Nunchaku can produce materially different outputs run-to-run; don't burn time chasing determinism here.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | — | |
| magnitude | FLOAT | 1.000–3 | Scale text embeddings. <1=weaker prompt, >1=stronger |
| contrastopt | FLOAT | 0.00-1–2 | Token differentiation. >0=sharper, <0=blended |
| normalize_strengthopt | FLOAT | 0.000–1 | Equalize token magnitudes |
| skip_bosopt | BOOLEAN | true | Skip token 0 (BOS token with huge norm) |
| debugopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |