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

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

Masked, timed, LoRA-aware conditioning

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

If you've used ComfyUI's native "Conditioning (Set Mask)" and "Conditioning (Combine)" nodes, this is AnimateDiff-Evolved's version of both rolled into one - with two extra tricks bolted on that only make sense in an animation context: a LoRA hook slot and a timestep range.

What it does

Regular conditioning masking lets you say "this piece of prompt only applies to this region of the image" (the same idea ControlNet uses spatially - restrict an effect to part of the frame rather than the whole thing). This node takes a base conditioning (cond) and combines a second conditioning (cond_ADD) into it, scaled by strength and optionally restricted to a masked area via opt_mask. That much mirrors the native nodes.

The two things AnimateDiff-Evolved adds: opt_lora_hook lets you attach a LoRA hook to this specific conditioning region, so a LoRA effect can be scoped to the same area a piece of conditioning applies to, rather than applying globally. And opt_timesteps restricts when during sampling this combined conditioning is active - tying it into the same percent-of-sampling scheduling AnimateDiff Keyframes and LoRA hooks use elsewhere in the pack. Put together, that's spatial masking, strength control, LoRA scoping, and temporal scheduling in a single conditioning node - useful for something like "this character's prompt, and this specific LoRA, apply only to the left half of the frame during the first third of the animation."

Inputs and outputs

  • cond - the base conditioning to build on.
  • cond_ADD - the conditioning being combined into it.
  • strength - how strongly cond_ADD contributes, 0–10, default 1.
  • set_cond_area - matches the native ComfyUI option for whether the mask defines a bounding-box region or applies more precisely; pick based on how you want the mask's edges handled.
  • opt_mask (optional, MASK) - restricts cond_ADD to a spatial region.
  • opt_lora_hook (optional, HOOKS) - scopes a LoRA hook to this conditioning.
  • opt_timesteps (optional, TIMESTEPS_RANGE) - restricts when in the sampling process this combination is active.

Output is CONDITIONING, feeding your KSampler's positive or negative conditioning input like any other conditioning node.

How to install it

Bundled with the base pack.

  • ComfyUI Manager - search AnimateDiff Evolved by Kosinkadink, install, restart.
  • Manual - cd ComfyUI/custom_nodes && git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved, restart.

Common issues & troubleshooting

Just need basic masked conditioning, no LoRA hook or timing. You don't need this specific node for that - ComfyUI's native masked-conditioning nodes do the job. Reach for this one specifically when you need the LoRA-hook or timestep-range behavior that's unique to AnimateDiff-Evolved.

Mask doesn't seem to restrict anything. Double-check set_cond_area matches what you expect - the bounding-box vs. precise-mask distinction changes how soft or hard the mask edges read, and picking the wrong one can make an effect look like it's not respecting the mask at all when it actually is, just more loosely than expected.

LoRA hook attached here doesn't seem to apply. opt_lora_hook scopes the hook to this conditioning's region and timing - it still needs to be a properly built hook from elsewhere in the LoRA hook system, not a raw LoRA loader output. If the hook itself isn't wired correctly upstream, attaching it here won't fix that.

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

CategoryAnimate Diff πŸŽ­πŸ…πŸ…“/conditioning/single cond ops

Inputs (7)

NameTypeDefaultDescription
condCONDITIONINGβ€”
cond_ADDCONDITIONINGβ€”
strengthFLOAT1.000–10β€”
set_cond_areaCOMBO2 options: default, mask bounds
opt_maskoptMASKβ€”
opt_lora_hookoptHOOKSβ€”
opt_timestepsoptTIMESTEPS_RANGEβ€”

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONINGβ€”