Nodes/AnimateDiff Evolved/🚫[DEPR] Motion Model Settings (Adv. Attn) πŸŽ­πŸ…πŸ…“β‘ 
ComfyUI Node Runs on cloud

🚫[DEPR] Motion Model Settings (Adv. Attn) πŸŽ­πŸ…πŸ…“β‘ 

Deprecated, and what it did

By KosinkadinkΒ·Created 3 years agoΒ·Updated 8 days agoΒ· 3,519
🚫[DEPR] Motion Model Settings (Adv. Attn) πŸŽ­πŸ…πŸ…“β‘ 
  • mask_motion_scale
  • AD_SETTINGS
β—„pe_strength1.0000β–Ί
β—„attn_strength1.0000β–Ί
β—„attn_q_strength1.0000β–Ί
β—„attn_k_strength1.0000β–Ί
β—„attn_v_strength1.0000β–Ί
β—„attn_out_weight_strength1.0000β–Ί
β—„attn_out_bias_strength1.0000β–Ί
β—„other_strength1.0000β–Ί
β—„motion_pe_stretch0β–Ί
β—„cap_initial_pe_length0β–Ί
β—„interpolate_pe_to_length0β–Ί
β—„initial_pe_idx_offset0β–Ί
β—„final_pe_idx_offset0β–Ί
β—„min_motion_scale1.000β–Ί
β—„max_motion_scale1.000β–Ί

Same deprecation notice as its coarser sibling - the display name opens with 🚫[DEPR] - but this is the finer-grained version, and if you're going to use either of them for an old workflow, this is the one with more knobs. New workflows shouldn't reach for this family at all; the pack has moved on to Gen2-native controls. But since you're here for the "what does this actually do" answer, here it is.

What it did

A motion module isn't one block of weights - it has a positional-encoding component and a set of attention layers, and this node lets you independently scale each piece rather than treating the whole module as one dial. Where the plain "Motion Model Settings (Advanced)" node only exposes one attn_strength for the whole attention mechanism, this version splits it apart: attn_q_strength, attn_k_strength, attn_v_strength for the query/key/value projections, and attn_out_weight_strength / attn_out_bias_strength for the output projection's weight and bias separately. Plus pe_strength (positional encoding) and other_strength (everything not covered above) round out the set - all seven floats default to 1.0, meaning "apply the module's own weights unmodified," and you push them up or down from there.

The five integer fields (motion_pe_stretch, cap_initial_pe_length, interpolate_pe_to_length, initial_pe_idx_offset, final_pe_idx_offset) manipulate the positional-encoding index table directly - stretching, capping, interpolating, or offsetting it so the motion module tolerates a context length different from what it was trained on (16 frames, for the original SD1.5 modules). This is the more surgical descendant of the pack's early "unlimited area hack."

mask_motion_scale (a MASK, optional) plus min_motion_scale/max_motion_scale let motion strength vary spatially across the frame instead of applying one number everywhere.

Output is AD_SETTINGS, wired into the legacy model-application chain this deprecated family belongs to.

Why it's this granular

If you're at the point of tuning attention sub-components independently, you're doing genuinely advanced work - debugging why a specific motion module fights a specific checkpoint, or trying to preserve identity while damping motion. Most people never touch this node; the scale/effect multivals on the standard model-application nodes cover the common case.

How to install it

Ships with the 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.
  • Needs at least one motion module in ComfyUI/models/animatediff_models to have anything to act on.

Common issues & troubleshooting

You changed attn_q_strength and nothing looks different. These sub-component multipliers are subtle by design - don't expect a visible swing from any single one. If you want a lever that actually moves the needle, use the effect/scale multivals upstream instead, and treat this node as a last-resort fine-tuning pass.

Stretched positional encoding produces glitchy frames at the edges of the range. Expected - you're running the module outside the context length it was trained on, and the _pe_ fields are a workaround, not a free pass. Some quality loss at the extremes is the tradeoff, not a bug.

Should I use this or the non-Adv. Attn version? Neither, for new work - reach for current Gen2 model-application nodes. If you must pick between the two deprecated ones, this is the more capable one.

Inputs (16)

NameTypeDefaultDescription
pe_strengthFLOAT1.00000–10β€”
attn_strengthFLOAT1.00000–10β€”
attn_q_strengthFLOAT1.00000–10β€”
attn_k_strengthFLOAT1.00000–10β€”
attn_v_strengthFLOAT1.00000–10β€”
attn_out_weight_strengthFLOAT1.00000–10β€”
attn_out_bias_strengthFLOAT1.00000–10β€”
other_strengthFLOAT1.00000–10β€”
motion_pe_stretchINT0β€”
cap_initial_pe_lengthINT0β€”
interpolate_pe_to_lengthINT0β€”
initial_pe_idx_offsetINT0β€”
final_pe_idx_offsetINT0β€”
mask_motion_scaleoptMASKβ€”
min_motion_scaleoptFLOAT1.000β€”
max_motion_scaleoptFLOAT1.000β€”

Outputs (1)

NameTypeDescription
AD_SETTINGSAD_SETTINGSβ€”