Nodes/ComfyUI-UtilsCollection/Text Consensus Blend Configurator
ComfyUI Node

Text Consensus Blend Configurator

Making Multiple Prompts Vote Instead of Average

By silveroxides·Created 2 months ago·Updated about 7 hours ago· 24
Text Consensus Blend Configurator
    • Blend Config
    blend_presetbaseline
    blend_methodconsensus
    consensus_typemedian
    alignment_methodsimilarity
    alignment_threshold0.40
    similarity_threshold0.00
    power_alpha2.0
    diversity_beta0.0
    rescale_normtrue
    global_scale1.00
    dynamic_similarity_contrastfalse
    soft_comfort_bandpassfalse
    position_weight0.00
    preserve_common_prefixfalse

    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. off bypasses blending entirely; custom unlocks the manual parameters below; and there's a real preset list: baseline, power_blend, high_clarity, smooth, varied_merge, diverse_concept, high_diversity_concept, plus dsc_* variants that add dynamic-similarity-contrast. Start here. If a preset gets you close, stop there.
    • blend_method - consensus aligns prompts and filters noise; linear just averages them. Consensus is the whole point; linear is the "I want to see the baseline difference" mode.
    • consensus_type - median rejects up to 50% of outlying noise; mean is smooth averaging. Median is the robust choice when one prompt is a dud.
    • alignment_method - similarity matches shifted concepts across prompts (e.g. "red car" vs "automobile that is red"); index aligns 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), and preserve_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.

    Categoryadvanced/conditioning

    Inputs (14)

    NameTypeDefaultDescription
    blend_presetCOMBObaselinePreset configuration for Text Consensus-Weighted Blending. Set to 'off' to bypass CWB, or 'custom' to use the manual parameters below.
    blend_methodCOMBOconsensusActive only in 'custom' preset. 'consensus' aligns prompts and filters noise; 'linear' averages them.
    consensus_typeCOMBOmedianActive only in 'custom' preset. 'median' rejects up to 50% outlying noise; 'mean' is smooth averaging.
    alignment_methodCOMBOsimilarityActive only in 'custom' preset. 'similarity' aligns shifted prompt concepts; 'index' aligns them sequentially.
    alignment_thresholdFLOAT0.400–1Active only in similarity alignment. Minimum similarity to match words.
    similarity_thresholdFLOAT0.00-1–1Prunes passing words if similarity to consensus falls below this.
    power_alphaFLOAT2.00–10Soft-masking exponent. Higher values penalize outliers (e.g. 2.0).
    diversity_betaFLOAT0.00–10Diversity exponent. Dampens hyper-frequent details to boost variety (e.g. 1.5).
    rescale_normBOOLEANtrueNorm Rescaling. Keeps activation energy high to prevent washed-out colors.
    global_scaleFLOAT1.000–10Global scale multiplier applied to the blended outputs.
    dynamic_similarity_contrastBOOLEANfalseStretches similarities to soft [0.7, 1.0] band to boost contrast.
    soft_comfort_bandpassBOOLEANfalseSoftens the diversity bandpass ceiling to prevent clipping.
    position_weightFLOAT0.000–1Bias similarity alignment toward nearby normalized token positions. Zero preserves current behavior.
    preserve_common_prefixBOOLEANfalseKeep the longest numerically identical conditioning prefix exactly from the first input.

    Outputs (1)

    NameTypeDescription
    Blend ConfigTEXT_BLEND_CONFIG