Text Consensus Blend Configurator
Making Multiple Prompts Vote Instead of Average
- Blend Config
Every one of these model families has a few scientists in the audience, and this node is for them. UC_TextConsensusBlendConfig is a configuration bundle for Consensus-Weighted Blending - blending several text-conditioning tensors by finding what they agree on rather than just averaging their noise. It doesn't encode anything itself. It produces a Blend Config that you hand to UC_ConditioningConsensusBlend, which does the actual math. It's marked experimental, and it earns that label: this is genuinely novel territory, not a beginner tool.
The idea, plainly
Say you've got four different phrasings of a prompt - same subject, different framing. Plain averaging lets each prompt's idiosyncratic noise leak in. Consensus blending instead aligns the prompts' tokens (matching words that mean the same thing), finds the "consensus" embedding across them, and filters out the noise by a soft mask: tokens that disagree with the consensus get suppressed, tokens that agree get kept and boosted. The config node decides how all of that happens.
The dials that matter
- blend_preset - the entry point.
offbypasses blending entirely;customunlocks the manual parameters below; and there's a real preset list:baseline,power_blend,high_clarity,smooth,varied_merge,diverse_concept,high_diversity_concept, plusdsc_*variants that add dynamic-similarity-contrast. Start here. If a preset gets you close, stop there. - blend_method -
consensusaligns prompts and filters noise;linearjust averages them. Consensus is the whole point; linear is the "I want to see the baseline difference" mode. - consensus_type -
medianrejects up to 50% of outlying noise;meanis smooth averaging. Median is the robust choice when one prompt is a dud. - alignment_method -
similaritymatches shifted concepts across prompts (e.g. "red car" vs "automobile that is red");indexaligns them positionally. - power_alpha (2.0) - soft-masking exponent; higher values penalize outliers harder. The tooltip's example of 2.0 is the default for a reason.
- diversity_beta (0.0) - dampens hyper-frequent details so the result isn't dominated by whatever every prompt agreed on trivially. The example is 1.5.
- rescale_norm (on) - keeps activation energy high so the blend doesn't wash out to gray. Leave it on.
- global_scale (1.0) - multiplier on the blended output.
- Then the niche switches:
dynamic_similarity_contrast,soft_comfort_bandpass,position_weight(bias similarity alignment toward nearby token positions), andpreserve_common_prefix(keep the longest numerically identical conditioning prefix from the first input, verbatim).
How to install it
It's part of ComfyUI-UtilsCollection by silveroxides:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection
Restart ComfyUI, or install "ComfyUI-UtilsCollection" via Manager. Pack dependencies are just opencv-python and typing-extensions; the heavy conditioning math lives in the sibling blending node and ComfyUI core.
Honest advice
If you're new to this, pick a preset and don't touch the custom panel - the parameter space is deep and the differences are subtle enough that most people can't A/B them blind. The one trap that bites even experienced users: blend_preset: off is not the same as a neutral blend; it bypasses CWB, so if your results suddenly look unfiltered, check that the preset isn't off. And remember the config only matters if the consuming node actually restages the blend - change a knob, re-run the conditioning, and expect iteration, because this is a tuning loop, not a one-shot.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| blend_preset | COMBO | baseline | Preset configuration for Text Consensus-Weighted Blending. Set to 'off' to bypass CWB, or 'custom' to use the manual parameters below. |
| blend_method | COMBO | consensus | Active only in 'custom' preset. 'consensus' aligns prompts and filters noise; 'linear' averages them. |
| consensus_type | COMBO | median | Active only in 'custom' preset. 'median' rejects up to 50% outlying noise; 'mean' is smooth averaging. |
| alignment_method | COMBO | similarity | Active only in 'custom' preset. 'similarity' aligns shifted prompt concepts; 'index' aligns them sequentially. |
| alignment_threshold | FLOAT | 0.400–1 | Active only in similarity alignment. Minimum similarity to match words. |
| similarity_threshold | FLOAT | 0.00-1–1 | Prunes passing words if similarity to consensus falls below this. |
| power_alpha | FLOAT | 2.00–10 | Soft-masking exponent. Higher values penalize outliers (e.g. 2.0). |
| diversity_beta | FLOAT | 0.00–10 | Diversity exponent. Dampens hyper-frequent details to boost variety (e.g. 1.5). |
| rescale_norm | BOOLEAN | true | Norm Rescaling. Keeps activation energy high to prevent washed-out colors. |
| global_scale | FLOAT | 1.000–10 | Global scale multiplier applied to the blended outputs. |
| dynamic_similarity_contrast | BOOLEAN | false | Stretches similarities to soft [0.7, 1.0] band to boost contrast. |
| soft_comfort_bandpass | BOOLEAN | false | Softens the diversity bandpass ceiling to prevent clipping. |
| position_weight | FLOAT | 0.000–1 | Bias similarity alignment toward nearby normalized token positions. Zero preserves current behavior. |
| preserve_common_prefix | BOOLEAN | false | Keep the longest numerically identical conditioning prefix exactly from the first input. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Blend Config | TEXT_BLEND_CONFIG | — |