Nodes/AnimateDiff Evolved/Set Props and Combine Conds πŸŽ­πŸ…πŸ…“
ComfyUI Node Runs on cloud

Set Props and Combine Conds πŸŽ­πŸ…πŸ…“

Mask, schedule, and fold a pair into your base conditioning in one step

By KosinkadinkΒ·Created 3 years agoΒ·Updated 8 days agoΒ· 3,519
Set Props and Combine Conds πŸŽ­πŸ…πŸ…“
  • positive
  • negative
  • positive_ADD
  • negative_ADD
  • opt_mask
  • opt_lora_hook
  • opt_timesteps
  • positive
  • negative
β—„strength1.00β–Ί
β—„set_cond_areaβ–Ύβ–Ί

Set Props on Conds masks and schedules a positive/negative pair, then leaves you to combine it into the rest of your conditioning as a separate step. This node collapses both steps into one: mask, strength, LoRA hook, and timestep range, folded directly into an existing base pair, in a single node call.

What it does

positive/negative are your existing base pair - whatever conditioning you're building on top of. positive_ADD/negative_ADD are the new piece being folded in, scaled by strength (default 1, range 0–10) and shaped by set_cond_area, same option as ComfyUI's native masked-conditioning nodes for how tightly the mask's coverage gets interpreted.

The same three optional inputs from its sibling carry over here: opt_mask restricts the added pair to a spatial region - without one, you're not masking anything, just folding the full pair in everywhere. opt_lora_hook scopes a LoRA hook to fire only within this masked, combined region. opt_timesteps restricts when during sampling the combination is active, rather than the whole render.

Where this earns its place over its two-step sibling: once you're stacking several regional pairs into a graph - a masked subject here, a background prompt there, each with its own LoRA hook or timestep window - doing the set-and-combine as one node instead of two keeps the graph a step shorter for every branch you add.

The inputs and outputs that matter

Required: positive, negative, positive_ADD, negative_ADD (all CONDITIONING), strength (default 1, range 0–10), set_cond_area.

Optional: opt_mask (MASK), opt_lora_hook (HOOKS), opt_timesteps (TIMESTEPS_RANGE).

Outputs: positive, negative - the combined pair, ready for your sampler or another round of this same node.

How to install it

ComfyUI Manager: search AnimateDiff Evolved, confirm the author is Kosinkadink, install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved

then restart. No model download tied to this node itself; your workflow's motion module (mm_sd_v15_v2 and friends) is the real requirement elsewhere in the graph.

Common issues & troubleshooting

Combined result looks muddy where the mask should have kept things separate. Check set_cond_area - a bounding-box interpretation reads mask edges more loosely than a precise one, and picking the wrong option can make an effect look like it's bleeding past its mask when it's actually respecting a looser boundary than you expected.

Strength above 1 is drowning out the base conditioning. The 0–10 range doesn't clamp you the way a normal blend weight would - start at 1 and nudge up carefully, since a high value here can let the added pair dominate the base conditioning entirely.

opt_timesteps seems to be ignored. Confirm you're feeding a genuine TIMESTEPS_RANGE value from an appropriate upstream node - this input needs that specific type, not a raw float or percent.

Building this repeatedly for every regional branch and it's getting unwieldy. That's the tradeoff of this node's convenience - each call does mask, strength, hook, timing, and combine all at once, which is efficient per-branch but can make a large multi-region graph harder to trace. If clarity matters more than compactness, consider Set Props on Conds plus a separate Manual Combine Conds so each step is its own visible node.

CategoryAnimate Diff πŸŽ­πŸ…πŸ…“/conditioning

Inputs (9)

NameTypeDefaultDescription
positiveCONDITIONINGβ€”
negativeCONDITIONINGβ€”
positive_ADDCONDITIONINGβ€”
negative_ADDCONDITIONINGβ€”
strengthFLOAT1.000–10β€”
set_cond_areaCOMBO2 options: default, mask bounds
opt_maskoptMASKβ€”
opt_lora_hookoptHOOKSβ€”
opt_timestepsoptTIMESTEPS_RANGEβ€”

Outputs (2)

NameTypeDescription
positiveCONDITIONINGβ€”
negativeCONDITIONINGβ€”