Nodes/ComfyUI/Cond Pair Set Props
ComfyUI Node Runs on cloud

Cond Pair Set Props

Stamp hooks, masks, and timing onto both your conds at once

By Comfy-Org·Created 4 years ago·Updated about an hour ago· 129,943
Cond Pair Set Props
  • positive_NEW
  • negative_NEW
  • mask
  • hooks
  • timesteps
  • positive
  • negative
strength1.00
set_cond_area

The pair-version of the Set Props node. PairConditioningSetProperties ("Cond Pair Set Props") takes a fresh positive and negative conditioning, applies a hook, a mask, a strength, and a timestep window to both of them at once, and outputs the pair - ready to be merged with your existing conditioning downstream. It's the middle step of the classic hook-based regional workflow: create the hook, stamp it here, combine with the rest of the scene.

What it is, precisely

Where ConditioningSetProperties works on a single conditioning, this node works on a pair. Inputs are positive_NEW and negative_NEW - the "new" naming means this is conditioning that's going to be layered, not conditioning you're replacing. The node stamps the same hooks, mask, and timesteps onto both channels, applies strength to the masked area, and hands back positive and negative outputs. That's the whole surface: it modifies, it doesn't merge. If you want the merge in the same node, that's PairConditioningSetPropertiesAndCombine, which adds existing positive/negative inputs and a combine step.

Why the pair matters: a hook that changes the model's weights changes the result of both the positive and negative passes. Stamping them together keeps the pair consistent - the negative gets the same region and the same weight patch as the positive, so CFG guidance isn't comparing two differently-hooked realities.

The inputs

  • positive_NEW / negative_NEW - the conditioning pair to modify. Text-encode outputs, usually.
  • hooks - the HOOKS group (from CreateHookLora or CreateHookModelAsLora). The reason this node exists.
  • mask - the region. White applies, black doesn't.
  • strength - mask strength; only acts when a mask is connected. With no mask this dial is decorative.
  • set_cond_area - "default" or "mask bounds". Use mask bounds for regional work or the patch leaks past the mask edge.
  • timesteps - a TIMESTEPS_RANGE to limit the pair to part of the sampling run.

Outputs: modified positive and negative.

Where it sits in a workflow

It slots between the hook creators and the combine nodes. Typical chain: CreateHookLora → this node (with a mask covering character A's side) → PairConditioningSetDefaultCombine or PairConditioningCombine (merged with the rest of the scene, plus a global prompt so there's no seam). Because it doesn't combine, you can also use it to prepare a pair that gets merged somewhere unusual - a batch loop, a custom sampler branch - without dragging a merge along.

The usual notes

Same family rules apply: strength-without-mask does nothing, mask bounds is the difference between clean regions and smeared edges, and every hook that actually attaches to conditioning is another model pass, so a pair here is two conds paying the price. The hooks system is core ComfyUI, no install, experimental since it landed in December 2024. Under advanced → hooks → cond pair.

Categoryadvanced/hooks/cond pair

Inputs (7)

NameTypeDefaultDescription
positive_NEWCONDITIONING
negative_NEWCONDITIONING
strengthFLOAT1.000–10
set_cond_areaCOMBO2 options: default, mask bounds
maskoptMASK
hooksoptHOOKS
timestepsoptTIMESTEPS_RANGE

Outputs (2)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING