Krea2CondRebalance
Krea 2's text conditioning is under-weighted — this node rebalances it
- conditioning
- conditioning
Krea 2 is the open-weights model Krea shipped in June 2026 - a ~12B Qwen3-VL-based image model whose Raw variant is CFG-guided and built for control. And it has a well-known quirk: its text conditioning comes out of the encoder under-weighted, especially in the deep layers that carry fine detail and identity. The community has been chasing that with rebalancing tricks since week one - Image Oasis added an automatic "Krea 2 conditioning rebalance" in v1.4, with the release notes explaining that alignment training under-weights exactly those deep text-encoder layers. wcx_Krea2CondRebalance is this pack's manual version of that idea.
Here's the mechanism, from the source. Krea 2 conditioning arrives as a tensor of shape (batch, seq, 12 × 2560) - twelve Qwen3-VL text-encoder "taps" flattened into the feature dimension. This node reshapes that into 12 separate slices, applies a gain to each one, flattens it back, and then scales the whole thing by a master multiplier. The masks and pooled output that ride along in the conditioning structure are left untouched.
The two knobs that matter:
- multiplier (default 4.0) - the overall gain on the conditioning. Krea 2 Raw genuinely wants a big multiplier; stock conditioning reads too weak, which is why 4.0 is the default. This is the coarse "make the prompt matter more" dial.
- per_layer_weights (default
1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.5,5.0,1.1,4.0,1.0) - twelve comma-separated floats, one per text-encoder tap. Look at the tail of that string: the deep layers get boosted to 2.5, 5.0, 1.1, 4.0. That's the whole point - the later, deep layers are the ones alignment training starved, so they get the biggest gains. The list is fully editable, so you can flatten it to all-1.0 if the defaults feel too aggressive.
One conditioning comes out, ready to feed your KSampler as usual.
Three honest caveats:
- This is Krea 2-only. The reshape only kicks in when the feature dimension divides evenly by 12. Feed it SDXL or Flux conditioning and it falls back to plain
multiplierscaling - harmless, but pointless. Don't bolt it into an SDXL workflow and expect magic. - It's a gain, not a true renormalization. The fancier rebalancers (like Image Oasis) RMS-renormalize so overall conditioning strength stays constant while the layers get reweighted. This node just multiplies - layer gains stack on top of the ×4 multiplier, so the deep layers end up effectively ×10–20. The result is usually stronger prompt adherence, but it's a different curve, so tune rather than trust the defaults blindly.
- Fewer than two weights and the per-layer logic is skipped entirely, leaving you with plain multiplier scaling. Keep the list at 12 values.
The pack README is a single line, so this node is documented by its code - but the code is clean and the intent is clear. Install is the pack standard:
# ComfyUI Manager: search "ComfyUI-Practical-Tools" → Install → restart
# or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/wenchengxiang/ComfyUI-Practical-Tools
# restart ComfyUI
No model files, no heavy dependencies - just conditioning math. If you're fighting Krea 2 for prompt adherence and the CFG knob isn't cutting it, this is the node that attacks the actual cause.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | — | |
| multiplier | FLOAT | 4.00-1000000000–1000000000 | — |
| per_layer_weights | STRING | 1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.5,5.0,1.1,4.0,1.0 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |