ConditioningAdd
Layer one conditioning onto another at a controlled strength
- conditioning_1
- conditioning_2
- conditioning
ComfyUI's stock ConditioningAverage blends two conditionings by interpolating between them - the more of one, the less of the other. ConditioningAdd does something different: it adds conditioning_2, scaled by multiplier, straight onto conditioning_1. Nothing gets diluted. This is the node for layering a concept on top of a base prompt at a controlled strength - think adding a style or a specific detail to an existing conditioning without softening the base prompt to make room for it.
How it works
conditioning_1 stays intact; conditioning_2 gets scaled by multiplier and summed in. Because it's addition rather than interpolation, multiplier isn't bounded the way an average's blend ratio is - you can push it well past 1.0 to exaggerate the second conditioning's contribution, or into negative territory to subtract it (a rough form of conditioning arithmetic, pushing the result away from whatever conditioning_2 represents).
The inputs and outputs that matter
conditioning_1(CONDITIONING) - the base. This one isn't scaled.conditioning_2(CONDITIONING) - what gets layered on, scaled bymultiplierbefore it's added.multiplier(FLOAT, default 1) - how much ofconditioning_2gets summed in. This is the one knob you'll actually touch.
Output: conditioning (CONDITIONING), ready to wire into your sampler's positive or negative slot like any other conditioning.
How to install it
Via ComfyUI Manager, search "RES4LYF". Or:
cd ComfyUI/custom_nodes
git clone https://github.com/ClownsharkBatwing/RES4LYF/
cd RES4LYF
pip install -r requirements.txt
then restart.
Common issues & troubleshooting
Cranking multiplier up too far is the classic "why does this look fried" moment. Unlike averaging, the output here isn't kept inside the range the model was trained to expect - high multipliers push the embedding magnitude somewhere the model has never seen, and the visual result tends to be exactly what you'd guess: noisy, over-saturated, incoherent. Start around 0.1–0.5 and work up rather than starting at 1.0 and wondering why it broke.
If you wanted a blend, not a layer, this is the wrong node. ConditioningAdd doesn't dilute conditioning_1 at all - for a true interpolation between two prompts, ComfyUI's stock ConditioningAverage, or this pack's own ConditioningAverageScheduler if you want that blend to change over the course of sampling, is the right tool.
Negative multiplier values subtract rather than add, which is a legitimate way to push a generation away from a concept - but it's a blunter instrument than a proper negative prompt, since you're operating on the embedding directly rather than through CFG. Treat it as an experimental lever, not a default replacement for your negative conditioning.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning_1 | CONDITIONING | — | |
| conditioning_2 | CONDITIONING | — | |
| multiplier | FLOAT | 1.00-1000000000–1000000000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |