Conditioning (Average keep magnitude)
Blend two prompts without washing them out
- conditioning_to
- conditioning_from
- CONDITIONING
Mixing two conditionings by averaging their vectors sounds harmless, but it has a dirty secret: averaging shrinks magnitude. Two vectors pointing in different directions pull each other toward the middle, and the result is shorter than either original. Since a conditioning's magnitude is basically its prompt strength, every blend you've ever done has quietly diluted both prompts. This node from the Vector Sculptor pack is the fix: a weighted average that keeps the combined magnitude intact.
The author calls it "a cheap slerp," which is the right mental model. Where a plain average of conditioning_to and conditioning_from collapses toward zero the more they disagree, this one rescales the result back up so the loudness you'd expect from the blend is preserved. Think of it as blending two paints by volume instead of just mixing the colors - you still get the mix, you just don't lose half the tube.
The mechanism, briefly
average_and_keep_mag in the pack's nodes.py does the whole trick in a few lines: weighted average the two vectors, normalize to unit length, then rescale to m1*p1 + m2*(1-p1) where m1 and m2 are the two original magnitudes. Direction gets blended, magnitude gets budgeted. On SDXL it runs the two encoder halves (clip_l and clip_g) separately, which matters because they live at different scales in the 2048-dim conditioning.
Inputs and output
- conditioning_to - the first conditioning.
- conditioning_from - the second one.
- conditioning_to_strength (0–1, default 0.5) - the blend ratio; 1.0 means "all of conditioning_to," 0.0 means "all of conditioning_from."
Output is a single CONDITIONING ready for the sampler.
Installing it
It ships with the rest of the pack, so:
cd ComfyUI/custom_nodes
git clone https://github.com/Extraltodeus/Vector_Sculptor_ComfyUI
restart, done. No requirements.txt, no model downloads - the whole pack is one torch file. ComfyUI Manager users: search Vector_Sculptor_ComfyUI.
Where it fits
This is the node you reach for when you want a genuine in-between: a style mix, a prompt-to-prompt morph, or combining a sculpted positive with a normal one. The pack's README shows it being used mid-transition - average-keep-magnitude up to the halfway point, then slerp back - and the two blending nodes are meant to work together like that. The practical rules are the same as any conditioning blend: keep both inputs from the same model family (mixing SD 1.5 with SDXL conditionings produces nonsense), and treat 0.5 as a starting point, not a law. If the blend still feels flat, that's the moment to reach for its sibling, Conditioning (Slerp), which trades the cheap approximation for the mathematically proper interpolation.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning_to | CONDITIONING | — | |
| conditioning_from | CONDITIONING | — | |
| conditioning_to_strength | FLOAT | 0.500–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |