Nodes/ComfyUI/Cond Pair Combine
ComfyUI Node Runs on cloud

Cond Pair Combine

The boring but necessary glue for dual-prompt pipelines

By Comfy-Org·Created 4 years ago·Updated a day ago· 130,493
Cond Pair Combine
  • positive_A
  • negative_A
  • positive_B
  • negative_B
  • positive
  • negative

Every once in a while ComfyUI ships a node that's the whole job and nothing more. PairConditioningCombine ("Cond Pair Combine") is that: it takes two full conditioning pairs - positive A / negative A and positive B / negative B - and merges them into one positive and one negative output. No masks, no strength, no hooks, no hidden opinions. It's the plumbing node of the "cond pair" family, and it exists because hook-based regional workflows route two (or more) pairs into a sampler that wants exactly one.

What it's for

The cond pair nodes were added alongside ComfyUI's hooks system (December 2024, still marked experimental) to make regional conditioning with weight patches manageable. When you're running two regions - left half with one LoRA and prompt, right half with another - you naturally end up with two positive/negative pairs. PairConditioningCombine is the merge point where pair A and pair B become the single positive/negative the KSampler expects.

Conditioning in ComfyUI is a list of (tokens, dict) tuples, and "combining" is literally concatenating those lists. The sampler evaluates each entry in the combined list against its area and mask. That's the whole mechanism - which is why this node is fast and why it doesn't need a single parameter.

The inputs

  • positive_A / negative_A - the first pair.
  • positive_B / negative_B - the second pair.

Outputs: merged positive and negative.

That's it. Everything is required; there's no optional branch.

When to reach for it, and when not to

Reach for it when you've already applied your regions elsewhere - for instance, each pair already passed through a PairConditioningSetProperties that stamped a mask and a hook onto its conds. In that setup, the pair-combine is just the final assembly step, and keeping the combine node dumb means you can change regions without touching the merge.

Don't reach for it when you still need to apply properties to the incoming pair as part of the same step. That's what PairConditioningSetPropertiesAndCombine is for: same four inputs, plus strength, set_cond_area, mask, hooks, and timesteps, applied to the B pair before it merges. If you find yourself doing "Set Properties then Combine" as a two-node habit, the And-Combine variant collapses it into one.

And if your problem is that two regional prompts keep producing a visible seam where they meet - which is the single most common complaint about this whole approach - this node won't fix it. The fix is a third, default conditioning describing the whole scene, which is exactly what PairConditioningSetDefaultCombine adds. Think of Combine as the joint; the seams live elsewhere.

The gotcha that isn't a bug

Because each conditioning entry carries its own mask and hooks, the order and area of the entries is what shapes the result, not anything this node exposes. Two users can have identical Combine nodes and totally different images because everything meaningful happened upstream. That's normal. If your combined output looks wrong, don't stare at this node - trace the masks and hooks on the inputs.

It ships with ComfyUI core, no install. You'll find it under advanced → hooks → cond pair.

Categoryadvanced/hooks/cond pair

Inputs (4)

NameTypeDefaultDescription
positive_ACONDITIONING
negative_ACONDITIONING
positive_BCONDITIONING
negative_BCONDITIONING

Outputs (2)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING