Cond Set Props Combine
Apply a hook, mask, and timestep window — then merge, in one node
- cond
- cond_NEW
- mask
- hooks
- timesteps
- CONDITIONING
ConditioningSetPropertiesAndCombine ("Cond Set Props Combine") is the single-conditioning workhorse of ComfyUI's hook family: take the conditioning you already have, layer a new one on top with a hook, a mask, a strength, and a time window attached, and hand back the merged result. Where its sibling ConditioningSetProperties modifies a conditioning and leaves it separate, this one does the layering too - two conds in, one blended cond out. For regional workflows that's usually exactly the shape you want.
What it's doing under the hood
Hooks (core since December 2024, still experimental) are weight patches that ride along on conditioning. When you attach a HOOKS group here, the node stamps it onto the cond_NEW input - so whatever LoRA or model-as-LoRA the hook represents will be applied for the pixels that conditioning owns. Then the mask carves out where it applies, and the timesteps range carves out when. Finally the modified new cond is concatenated with your existing cond, and the sampler evaluates both: your base conditioning and the region-limited, hook-carrying addition.
The order matters a little: the mask, strength, and timesteps apply to the new conditioning only, not to your existing cond. That's the whole point - you're bolting a constrained layer on top of a clean base.
The inputs
cond- your existing conditioning, kept as-is.cond_NEW- the new conditioning that gets the treatment. This is where a hooked, region-limited prompt goes.hooks- the HOOKS group from aCreateHookLoraorCreateHookModelAsLora. The reason the node exists.mask- the region (white = affected).strength- mask strength; only active when a mask is connected. No mask, no effect. This trips everyone.set_cond_area- "default" or "mask bounds". For regional work, set mask bounds or the region's influence leaks past the mask and you get smeary edges.timesteps- aTIMESTEPS_RANGE(fromConditioningTimestepsRange) to limit the new layer to part of the denoise run.
Output: a single combined CONDITIONING.
When to reach for it vs. its siblings
This is the middle child of the Set Props family. The plain ConditioningSetProperties is for when you're modifying one stream and merging elsewhere. ConditioningSetPropertiesAndCombine is for the common pattern of "base prompt + one region layer" - one node, done. When you need a positive and negative pair handled together, that's PairConditioningSetPropertiesAndCombine, which is the same node with two channels. And if you don't need a hook at all and just want to merge two conds, ConditioningCombine is simpler.
Common issues
The usual hook-family failures apply. Forgetting to set mask bounds is the most common one - your "masked" region bleeds past its border. Setting strength without a mask does nothing, and it's surprisingly easy to spend an hour wondering why. And cost: every attached hook is a separate model pass, so adding one region layer here will slow the run down measurably. None of it is broken; it's the price of regional weights.
Ships with ComfyUI core, no install. Under advanced → hooks → cond single.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| cond | CONDITIONING | — | |
| cond_NEW | CONDITIONING | — | |
| strength | FLOAT | 1.000–10 | — |
| set_cond_area | COMBO | 2 options: default, mask bounds | |
| maskopt | MASK | — | |
| hooksopt | HOOKS | — | |
| timestepsopt | TIMESTEPS_RANGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |