Nodes/ComfyUI-UtilsCollection/Conditioning Consensus
ComfyUI Node

Conditioning Consensus

Blend multiple encodings after the fact, without touching reference placement

By silveroxides·Created 2 months ago·Updated about 7 hours ago· 24
Conditioning Consensus
  • conditioning_inputs
  • text_blend_config
  • conditioning

Most conditioning tricks happen before or during encoding - you combine prompts, you weight tokens, you fuse images. This node does the thing people usually avoid: it blends already-encoded CONDITIONING outputs, using the pack's "consensus" math (the author's CWB-style text-vector blend), while keeping each input's reference placement intact. It's the standalone version of the consensus stage that the pack's big encoder nodes build in, exposed so you can apply it to any conditionings you produced elsewhere.

The honest way to describe when you want this: you have two or three fully-formed conditionings - say one emphasizing a subject, one carrying a style, one from a VLM encoder with image references - and instead of crossfading embeddings with the usual blunt average (which blurs both), you want a blend that respects the structure of each. The mechanism works on the sequence tensors and pooled outputs per schedule slot: it collects each input's tensor, runs the consensus blend math (blend_text_vectors), and carries over only the metadata keys that all inputs agree on - reference-layout keys and pooled output are handled specially, which is what "preserving reference placement" means in practice. The tooltip sums up the input contract: "Conditionings are blended in ascending socket order; disconnected sockets are ignored."

The interface is one autogrowing conditioning_inputs socket set - plug in 2, 3, 4, as many as you like, they blend in socket order - plus an optional text_blend_config from the pack's UC_TextConsensusBlendConfig node. Leave the config disconnected and it uses the baseline preset. Set the config to off and the node just returns the first active input, which is a nice kill-switch when you want to A/B the blend against plain encoding. Output is a single conditioning for the sampler.

Constraints are worth knowing before you build a workflow around it. It needs at least one connected input (it raises if there are none), all connected conditionings must have the same number of scheduled entries (a schedule-length mismatch is a hard error), and a single active input is passed through unchanged - there's no blending math on a single conditioning. It's marked experimental, and it's aimed at the modern encoder pipeline: the node expects conditionings whose metadata has the layout the blend math cares about, which is where the pack's own encoders and Qwen-family text encoders land.

Where it shines: the pack's UC_AdvancedVisualConditioningEncode can do spatial fusion and consensus in one go, but if you're mixing encoders - a stock Core encode for the prompt, a VLM encode for image references - this is the glue node that merges them after the fact. It's also the diagnostic sibling of the big pipeline: understanding how it blends tells you what the encoders' internal consensus stage is doing.

Install is pack-standard: Manager search "ComfyUI-UtilsCollection" or git clone into custom_nodes. No models, no downloads - it's pure tensor math on the conditionings you feed it. Expect to experiment with presets and strengths; "consensus" tuning is as much art as the encoding that precedes it.

Categoryadvanced/conditioning

Inputs (2)

NameTypeDefaultDescription
conditioning_inputsCOMFY_AUTOGROW_V3Conditionings are blended in ascending socket order; disconnected sockets are ignored.
text_blend_configoptTEXT_BLEND_CONFIGOptional configuration from UC_TextConsensusBlendConfig. Defaults to baseline CWB if disconnected.

Outputs (1)

NameTypeDescription
conditioningCONDITIONING