Flux Detail Controller ⚡
The conditioning multiplier nobody's quite sure about
- conditioning
- CONDITIONING
Flux Detail Controller multiplies parts of your text conditioning - not pixels - to make one stretch of your prompt land harder. It splits the active text tokens into front, middle, and end sections and scales each with its own multiplier, the idea being that you can push the model to respect the first clause of a prompt more, or give the ending more weight. "Detail" is doing a lot of work in that name; this is really a front/mid/end prompt-booster.
It's from the ChrisColeTech/ComfyUI-Flux-Reference-Tools pack, and it's one of the two "conditioning-tensor manipulation" nodes (with Flux Text Enhancer) that sit on the text side of the graph rather than the reference side.
How it works
The node walks each conditioning entry, detects where the active text region ends (honest attention_mask read, falling back to full sequence length - note it does not assume 77 tokens), and multiplies the token vectors in each third by front_mult / mid_mult / end_mult. It also supports an explicit emphasis_start/emphasis_end token range with its own emphasis_mult, and a preserve_original blend so you can mix the scaled version with the original.
Here's the honest part the README gives you: Flux-family text encoders have no positional semantic role for tokens. There's no principled reason token 5 should be "the beginning of the prompt" in a way that matters to the model - so the standalone default of a fixed 25/50/25 split is, in the author's own words, "arbitrary boundaries... but functional." The node only becomes principled when Comfy-GGUF's Klein-specific Flux Klein Sectioned Encoder is also installed and leaves meta["klein_sections"] on the conditioning - then this node uses those real section boundaries instead of the fixed split.
That caveat is the difference between "reach for this" and "this is a fiddly power tool." The fixed-split mode is a heuristic you'll have to tune blind; the Klein-sections mode is the intended, meaningful use.
The inputs that matter
- conditioning - in, CONDITIONING out. No model input; it's pure conditioning math.
- front_mult / mid_mult / end_mult (defaults 1.0, range 0–10) - the per-section multipliers. 1.0 leaves that section alone.
- emphasis_start / emphasis_end / emphasis_mult - an explicit token-range multiplier on top, if you want to target something the thirds don't capture.
- preserve_original (0–1) - blend back toward the unmodified conditioning; useful for taming over-amplification.
- debug - logs the active region and which split source it used.
Output is a single CONDITIONING to continue down the graph.
Where it sits in the workflow
On the conditioning path between your CLIP encoder and the reference/attention nodes, per the pack's example chain. It composes with the rest of the family: boost the front third of your prompt, then attach references and balance them.
Install
Same trivial install as the rest of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/ChrisColeTech/ComfyUI-Flux-Reference-Tools
Restart, search "Flux Detail Controller" under 🤖 CCTech/Flux Reference, or use ComfyUI Manager. No extra dependencies, no downloads.
Common issues
- It does nothing. All multipliers at 1.0, no emphasis range,
preserve_original0 - the node detects that no-op and passes conditioning straight through. Set at least one multiplier off 1.0. - "Sections" feel arbitrary. That's because standalone they are - see above. Either accept it as a tune-blind knob, or install Comfy-GGUF's Sectioned Encoder so real Klein section metadata feeds it.
- Output looks overcooked. Multipliers much above ~1.5 on text conditioning tend to over-saturate prompt adherence into artifacts;
preserve_originalat 0.2–0.3 is the intended safety valve.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | — | |
| front_multopt | FLOAT | 1.000–10 | — |
| mid_multopt | FLOAT | 1.000–10 | — |
| end_multopt | FLOAT | 1.000–10 | — |
| emphasis_startopt | INT | 00–512 | — |
| emphasis_endopt | INT | 00–512 | — |
| emphasis_multopt | FLOAT | 1.00–10 | — |
| preserve_originalopt | FLOAT | 0.000–1 | — |
| debugopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |