Cond Pair Set Default Combine
The node that fixes the 'stitched together' look
- positive
- negative
- positive_DEFAULT
- negative_DEFAULT
- hooks
- positive
- negative
Try a two-region hook workflow and you'll hit it: the left half and right half come out great, but there's a hard split down the middle and the image reads as two pictures taped together. People post this exact problem constantly. The fix is a third conditioning - a global prompt describing the whole scene - and PairConditioningSetDefaultCombine ("Cond Pair Set Default Combine") is the node that makes that third conditioning legal.
Why you need a "default" at all
In a normal run, conditioning covers the whole canvas. In a regional run with masks, each hooked conditioning only owns its masked area - so anything the masks don't touch gets no direction at all. No prompt is looking after the background, the lighting, the framing. The sampler fills the gap however it likes, and you get that collage feel.
ComfyUI's answer is the default flag on conditioning. When a conditioning is marked default, the sampler computes it last and fills the remaining unmasked area - every pixel no region claimed. That's the "describe the entire picture" prompt people keep being told to add, and this node is the sanctioned way to add it.
How it works
Four inputs: your existing positive / negative, and a positive_DEFAULT / negative_DEFAULT pair - the global prompt, usually plain text-encoded output with no mask and no hook. The node stamps the _DEFAULT conds as default, applies any hooks you pass to them, and combines them with the existing pair. Outputs: one merged positive and one merged negative.
Mechanically it's the same shape as PairConditioningCombine, except the new pair gets tagged default and can carry a HOOKS group. So the classic three-region workflow looks like:
- Region A:
PairConditioningSetPropertiesAndCombinewith left mask + LoRA A + prompt A. - Region B: same node, right mask + LoRA B + prompt B.
PairConditioningSetDefaultCombine: takes the A/B result aspositive/negative, adds a plain "two characters in a city street, cinematic lighting" prompt as the_DEFAULTpair, and outputs the final pair.
That third step is what de-seams the image. One thing to know: the default cond fills only what's left over - it won't override the regions - which is exactly what you want.
The hooks input, used right
The hooks input here is worth a look because of what the announcement-era community discovered: attach a timestep-limited hook to the default cond and you can let the global prompt set the composition early, then get out of the way so the region LoRAs take over. Feed a TIMESTEPS_RANGE (via ConditioningTimestepsRange) into the Set Props node on the _DEFAULT path and the global prompt stops interfering partway through the run. Some people found that alone removed the need for a ControlNet to hold the composition together.
The honest caveats
Same family economics apply: every hooked conditioning is a separate model pass, and a workflow with a default plus two hooked regions is several times slower than a plain one. If you only add the default and skip the regional masks, this node degenerates into a fancier ConditioningCombine - the default flag matters because regions exist. And yes, it's experimental, like the whole hooks family, but it's stable enough that this is the node people actually use to fix the seams, not just read about.
Ships with ComfyUI core, nothing to install. Under advanced → hooks → cond pair.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| positive_DEFAULT | CONDITIONING | — | |
| negative_DEFAULT | CONDITIONING | — | |
| hooksopt | HOOKS | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |