Krea2 Rebalance Equalizer [darkilNodes]
The 12-fader EQ for Krea 2's conditioning — and the alignment fix nobody advertises
- conditioning
- conditioning
Krea 2 is a genuinely open 12B DiT, which is great, but the open weights shipped with an alignment pass the hosted API never got. The practical result: the model flattens expressions, drops prompt clauses, and generally behaves like it's second-guessing you. The community's two fixes are an uncensor LoRA and a conditioning-rebalance node - and this is the rebalance node with knobs on it. If you've seen Krea 2 output that feels "filtered," this is the node that lets you reach into the text encoder and turn the filter down layer by layer.
It's a per-layer conditioning scaler built for Krea 2's Qwen3-VL-4B text encoder, which feeds the DiT from 12 tapped layers (numbered 2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35). The node renders a horizontal equalizer with one vertical fader per tap, each with a gain range of roughly −2 to 10, plus a global multiplier slider drawn underneath. So instead of one scalar applied to the whole conditioning tensor - which is all the stock ConditioningScale gives you - you get 12 independent gains.
How it actually works
The mechanism is boring and that's a compliment. The conditioning tensor's last dimension is split into 12 equal slices (the tensor width is a multiple of 12 for Krea 2's layout), each slice is multiplied by its fader's gain, and then the whole thing is scaled by multiplier. A negative fader inverts that layer's contribution. The scaling math is vendored from nova452/ComfyUI-ConditioningKrea2Rebalance under Apache-2.0 - credited in THIRD_PARTY_LICENSES.txt - so you're getting the same proven rebalance logic, just with a better UI.
The inputs that matter
conditioning(CONDITIONING) - the Krea 2 conditioning to rescale. Feed it straight from your CLIPTextEncode.multiplier(FLOAT, default 4.0) - the global scale applied after the per-layer gains. The author's own tooltip says exactly that: global scale applied to the whole conditioning.
The one output, conditioning, is the rescaled conditioning - wire it straight into the sampler. There's also a "Reset to defaults" button, and presets are saved server-side to nodes/conditioning/krea2_eq_presets.json, which means a profile you save is shared across every browser and workflow on that machine, with no extra port or service to babysit.
Where people get burned
That default multiplier of 4.0 is a lot. If you drag in the node, forget it's there, and wonder why your Krea 2 image looks radioactive, check it. And remember this node is specific to Krea 2's 12-layer tap layout - feed it SDXL or Flux conditioning and the slice logic silently does nothing useful. If you're not chasing the alignment bypass, a modest multiplier with a couple of faders nudged is all you need for a bit more prompt adherence; crank all 12 and you're in "bypassing the filter" territory, which changes quality in ways you should experiment with at small batches.
Installing
It's part of the pytraveler/comfyui-darkil-nodes pack. In ComfyUI Manager, search for ComfyUI-darkil-nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/pytraveler/comfyui-darkil-nodes
Then restart ComfyUI. No Python dependencies, no model downloads - the equalizer is plain ComfyUI conditioning math plus a custom-drawn web UI with zero external JS deps.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | — | |
| multiplier | FLOAT | 4.00-1000000000–1000000000 | Global scale applied to the whole conditioning |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |