Visual Consensus Configuration
The config glue for advanced multi-image conditioning
- visual_fusion_config
- consensus_config
- Visual Consensus Config
If you're into multi-image conditioning with Qwen3-VL encoders, this is a node you'll meet as a dependency of something bigger: it's the joint config that combines two other config nodes into one object, so the advanced visual-consensus encoders get a single settings input instead of a sprawl of wires. On its own it does nothing; wired to the right encoder, it's how you turn "combine these images" from vague idea into something the model actually respects.
What it is
A pure configuration assembler. It takes exactly two inputs - a Visual Fusion Config (from UC_VisualFusionConfig) and a Consensus Config (from UC_AdvancedConsensusConfiguration) - and outputs a single Visual Consensus Config that you connect to the UC_AdvancedVisConEncoder or its TokenFusion variant. No computation happens here; it just packages settings.
How it works - the two stages
The README is unusually precise about this, so it's worth honoring. The advanced encoder runs two independent stages:
- Spatial fusion - configured by the Visual Fusion Config. It constructs a complete, spatially fused conditioning independently at every selected VLM resolution. This is where the "how do the images' tokens get interleaved" decision lives.
- Cross-resolution consensus - configured by the Consensus Config. It takes those complete conditionings from different resolution samples and blends them using the same consensus math as the pack's
UC_ConditioningConsensusBlend.
The key insight, per the README: spatial fusion and consensus are not alternatives and are never crossfaded. They're sequential stages. Each resolution gets its own complete fusion first, then the consensus runs across resolutions.
The two off switches map onto this cleanly. Set the fusion method to off and you disable the spatial stage entirely. Set the consensus preset to off and you disable the cross-resolution stage. That makes this node the master switchboard for dialing the whole pipeline down to whatever complexity you actually need.
The inputs and output
- visual_fusion_config - from
UC_VisualFusionConfig; its method is authoritative. - consensus_config - from
UC_AdvancedConsensusConfiguration; its preset is authoritative. - Output: Visual Consensus Config - into the advanced visual consensus encoders.
Installing it
Part of ComfyUI-UtilsCollection:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection
Restart ComfyUI (or use Manager, search "ComfyUI-UtilsCollection"). Light deps, no models to download, needs a current ComfyUI - DeepStack/grid MRoPE support and the whole multi-image encoder path are recent Core features.
Common issues
The trap is expecting this node to do anything on its own - it's a config object, so if nothing downstream consumes it, you'll see "no output" and wonder why. It only matters inside the advanced visual consensus workflow. The other gotcha: both sub-configs are authoritative about their own stage, so if you set fusion to off at the Visual Fusion Config and then wonder why the spatial stage "isn't working," that's the off switch doing its job. And if your ComfyUI is older than the DeepStack-era Core, the grid-deepstack encoder path may misbehave - the README documents a legacy-flat fallback in the fusion config for exactly that case.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| visual_fusion_config | VISUAL_FUSION_CONFIG | Complete visual-stage configuration from Visual Component Fusion Configurator. Its method is authoritative; off disables spatial fusion. | |
| consensus_config | ADVANCED_CONSENSUS_CONFIG | Complete consensus configuration from Advanced Consensus Configuration. Its preset is authoritative; off disables cross-resolution consensus. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Visual Consensus Config | VISUAL_CONSENSUS_CONFIG | — |