Nodes/ComfyUI-Nunchaku-Klein/Nunchaku FLUX.2 Klein Detail Controller
ComfyUI Node

Nunchaku FLUX.2 Klein Detail Controller

Detail control for Klein, section by section

By tom-m-2020·Created 2 months ago·Updated 17 days ago· 2
Nunchaku FLUX.2 Klein Detail Controller
  • conditioning
  • CONDITIONING
front_mult1.00
mid_mult1.00
end_mult1.00
emphasis_start0
emphasis_end0
emphasis_mult1.0
preserve_original0.00
deviceauto
debugfalse

Klein's conditioning is one flat blob of Qwen3 embeddings, and when you want "more detail in the subject, less in the background" you have no clean way to say that. The NunchakuKleinDetailController is the tool for it: it multiplies the strength of different token ranges in the conditioning - front, middle, end - independently. Turn the END section down and the tail of your prompt stops fighting the subject for attention.

The honest caveat is in the tooltips. The three multipliers only mean something precise if a NunchakuKleinSectionedEncoder is upstream, because that's what records the real token boundaries. Without it, the controller falls back to "front = first 25% of active tokens," which the author calls arbitrary. It still does something; it just isn't aiming at your words.

The inputs that matter

  • front_mult, mid_mult, end_mult - the three section multipliers, 0-10, default 1.0. Pair with the Sectioned Encoder and these become true per-section detail dials. Raise the section containing your subject; lower the section describing the empty background.
  • emphasis_start / emphasis_end / emphasis_mult - a custom token-index range with its own multiplier, useful when you want to target one concept that isn't neatly at a section boundary. emphasis_end of 0 disables it.
  • preserve_original - blend back toward the untouched conditioning. A cheap A/B switch to check you're not over-cooking.

All multipliers act on the same insight as the rest of this pack: Klein was trained on Qwen3's natural embedding distribution, and every step away from 1.0 pushes further off that distribution. Aggressive section boosting gives you that "everything is shouting" look.

How to wire it

Sectioned Encoder → Detail Controller → KSampler, with the Sectioned Encoder's conditioning output feeding the controller's conditioning input. The controller outputs CONDITIONING on to the sampler. If you skip the encoder, the fallback 25%-split still gives you a coarse "start vs. rest" control that's genuinely useful for dialing back a verbose prompt.

Install is the pack's one install, repeated:

cd ComfyUI/custom_nodes
git clone https://github.com/tom-m-2020/ComfyUI-Nunchaku-Klein

Vitoom Nunchaku backend wheel first, then the tonera Klein checkpoint in diffusion_models/.

Common issues

  • Multiplying a section does nothing visible - the section likely holds filler words Qwen3 barely weights, or you're on the fallback split and your target isn't in the first 25%. Wire up the Sectioned Encoder.
  • Image gets crunchy/high-contrast - front_mult at 3.0 will do that. This is an embedding-space operation; 1.2-1.8 is a reasonable band before things get weird.
  • Same seed, different image - the pack's README documents Nunchaku's run-to-run nondeterminism; not your multipliers.
CategoryNunchaku/FLUX.2 Klein/Enhancer/Text

Inputs (10)

NameTypeDefaultDescription
conditioningCONDITIONING
front_multoptFLOAT1.000–10Multiplier for the FRONT section. With Sectioned Encoder upstream this is the actual front token range; otherwise it's the first 25% of active tokens (arbitrary).
mid_multoptFLOAT1.000–10Multiplier for the MID section.
end_multoptFLOAT1.000–10Multiplier for the END section.
emphasis_startoptINT00–512Custom emphasis range start (token index).
emphasis_endoptINT00–512Custom emphasis range end (0 = disabled).
emphasis_multoptFLOAT1.00–10Multiplier applied inside [emphasis_start, emphasis_end).
preserve_originaloptFLOAT0.000–1Linear blend back the unmodified active region. 0 = full effect.
deviceoptCOMBOauto2 options: auto, cpu
debugoptBOOLEANfalse

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING