Flux Text Enhancer ⚡
Make your Flux prompt louder without retyping it
- conditioning
- CONDITIONING
You wrote a good prompt, but the model is under-adhering - the subject's there, the details aren't. On SDXL you'd reach for an attention-weighted prompt or a CFG tweak. On Flux, where negative prompts and CFG behave differently, one option is to scale the conditioning vectors themselves. Flux Text Enhancer does exactly that: normalize, contrast, and magnitude adjustments on the active text tokens, so you can push a whole prompt harder (or softer) without rewriting a single word.
It's from the ChrisColeTech/ComfyUI-Flux-Reference-Tools pack - the conditioning-side sibling to Flux Detail Controller. Where Detail Controller splits the prompt into thirds, Text Enhancer operates on the whole active region at once.
How it works
Like Detail Controller, it finds the active text region (attention-mask-aware, no hardcoded 77) and skips the BOS token by default (skip_bos, which the author sets true - messing with the sequence-start marker tends to do more harm than good). Then three independent adjustments apply, in order:
- magnitude (default 1.0, range 0–3) - a plain scalar on the active token vectors. 1.0 is unchanged; above 1 amplifies, below damps. This is the "prompt volume" knob.
- contrast (default 0, range -1 to 2) - pushes token vectors away from (positive) or toward (negative) their sequence mean. The negative side uses an exponential scale rather than a sign flip, so it never inverts your conditioning - the "safe negative-contrast formula" the README advertises. Crank contrast and distinct tokens get more distinct; the prompt's shape sharpens.
- normalize_strength (default 0, range 0–1) - blends toward equalizing token norms to the mean, which de-emphasizes outlier tokens. At 1.0 every active token has the same length, which smooths prompt behavior at the cost of losing emphasis.
All three default to no-ops, and if none is active the node passes conditioning through untouched.
The inputs that matter
- conditioning - in, CONDITIONING out.
- magnitude - the one you'll use most. Start at 1.1–1.3 for a subtle adherence bump.
- contrast - sharpens token distinctions; small positive values (0.1–0.3) are the safe playground.
- normalize_strength - the "calm it down" knob for when a prompt is too emphatic.
- skip_bos (default true) - leave it.
Output is a single CONDITIONING to continue toward your sampler.
Where it sits in the workflow
On the conditioning path between your CLIP encode and the reference/attention nodes - it composes with everything else in the pack (and with Flux Text/Ref Balance, which is the reference-aware version of the same trade-off). Classic pairing: Text Enhancer to make the prompt land, Flux Text/Ref Balance to keep it from swamping your reference images.
Install
Same one-liner as the rest of the pack - no dependencies beyond ComfyUI's own, no downloads:
cd ComfyUI/custom_nodes
git clone https://github.com/ChrisColeTech/ComfyUI-Flux-Reference-Tools
Restart, search "Flux Text Enhancer" under 🤖 CCTech/Flux Reference, or use ComfyUI Manager.
Common issues
- No change. All three sliders at defaults is a detected no-op - set something off 1.0.
- Prompt gets "louder" but the image gets worse. Magnitude much above ~1.5 over-amplifies conditioning and tends to produce saturated, artifacty output. Small increments; this is a scalpel, not a hammer.
- Feels redundant with CFG / prompt weighting. Fair - it overlaps with those approaches. Where it earns its keep is as a deterministic, node-graph adjustment you can chain, branch, and bake into a shared workflow, and its negative-contrast formula is deliberately safe where crude conditioning math isn't.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | — | |
| magnitude | FLOAT | 1.000–3 | — |
| contrastopt | FLOAT | 0.00-1–2 | — |
| normalize_strengthopt | FLOAT | 0.000–1 | — |
| skip_bosopt | BOOLEAN | true | — |
| debugopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |