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

Set Props on Cond πŸŽ­πŸ…πŸ…“

Mask, strength, and schedule a conditioning branch

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

This is the node that actually does the "masking" part of masked or regional prompting in an AnimateDiff-Evolved graph. Feed it a conditioning, tell it where it applies with a mask, and how strongly with a strength value - and, because this is AnimateDiff rather than vanilla ComfyUI, optionally when in the sampling process and under which LoRA hook it's active. It's the standard ComfyUI conditioning-set-mask idea, extended with the two things AnimateDiff-Evolved cares about that stock ComfyUI doesn't: LoRA hooks and timestep ranges.

What it does

cond_ADD is the conditioning you're modifying - required. strength (default 1, range 0–10) scales how strongly this branch pulls the generation once it's combined with others; leave it at 1 unless you have a specific reason to over- or under-weight this region relative to whatever it gets combined with downstream. set_cond_area is a small dropdown controlling how the mask's coverage gets interpreted - broadly, whether the mask is read as a soft weighting over the full canvas or tightened to just the region where it's actually nonzero. Leave it at its default until you have a concrete reason to change it; it rarely needs touching for a first pass.

The three optional inputs are where this node earns its place in the "single cond ops" family. opt_mask is the actual MASK - without one wired in, you're not masking anything, just re-setting strength on the whole conditioning. opt_lora_hook ties into AnimateDiff-Evolved's LoRA Hooks system: the README lists "maskable and schedulable SD LoRA... via LoRA Hooks" as a real feature, and this is one of the places you plug a hook in so a LoRA only activates inside this masked, conditioned region rather than globally. opt_timesteps scopes the same conditioning to a range of the denoising process rather than the video - so this masked prompt only applies for, say, the middle third of sampling steps, not the whole render.

Output is a single CONDITIONING, ready to feed into Manual Combine Cond alongside whatever else is going on in your graph, or straight into the sampler if this is your only branch.

Why you'd reach for it

Regional prompting inside an AnimateDiff run - a different subject or style confined to part of the frame, or a LoRA that should only kick in over a specific area or a specific chunk of the denoising process. It's more setup than a single prompt box, but it's what lets AnimateDiff behave like a compositing tool instead of a single flat prompt applied uniformly to every pixel and every step.

Installing it

ComfyUI Manager: search AnimateDiff Evolved by Kosinkadink, install, restart. Or git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved into custom_nodes and restart manually. As with the rest of this conditioning family, the node itself needs no models - the motion module your workflow loads elsewhere (mm_sd_v15_v2 and friends, from the README's Model Setup section) is what actually needs downloading.

Common issues

The strength range going all the way to 10 is a trap for anyone assuming it behaves like a normal 0–1 blend weight - it doesn't clamp you, and pushing it much past 1 tends to let this masked region dominate everything it's later combined with, well past "emphasis" and into "everything else gets drowned out." Start at 1 and nudge in small steps. And a mask-less call to this node isn't doing anything spatial - if you're not seeing regional behavior in your output, check that opt_mask is actually wired in before assuming the node is broken.

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

Inputs (6)

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

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONINGβ€”