Nodes/AnimateDiff Evolved/Adjust Weight [Indiv-Attnβ—†Mult] πŸŽ­πŸ…πŸ…“
ComfyUI Node Runs on cloud

Adjust Weight [Indiv-Attnβ—†Mult] πŸŽ­πŸ…πŸ…“

Scaling AnimateDiff's Q/K/V attention weights independently

By KosinkadinkΒ·Created 3 years agoΒ·Updated 8 days agoΒ· 3,520
Adjust Weight [Indiv-Attnβ—†Mult] πŸŽ­πŸ…πŸ…“
  • prev_weight_adjust
  • WEIGHT_ADJUST
β—„pe_MULT1.0000β–Ί
β—„attn_MULT1.0000β–Ί
β—„attn_q_MULT1.0000β–Ί
β—„attn_k_MULT1.0000β–Ί
β—„attn_v_MULT1.0000β–Ί
β—„attn_out_weight_MULT1.0000β–Ί
β—„attn_out_bias_MULT1.0000β–Ί
β—„other_MULT1.0000β–Ί
β—„print_adjustmentfalseβ–Ί

The multiplicative sibling of ADE_AdjustWeightIndivAttnAdd. Same idea - split attention apart into query, key, value, and output weight/bias, plus positional encoding and "other" - but instead of adding a flat offset to each, this scales them. Multiplicative adjustments preserve the relative structure of a weight category better than additive ones do, which matters a lot once you're operating this deep inside the motion module.

Where it fits in the family

AnimateDiff-Evolved's Weight Adjust nodes give you increasingly fine control over the motion module's actual weights, not just its runtime output strength. ADE_AdjustWeightAllMult scales everything uniformly. ADE_AdjustWeightIndivMult splits that into PE/attention/other. This node goes one level deeper, breaking "attention" apart into its five sub-components - query, key, value, output projection weight, output projection bias - each independently scalable. It's the finest-grained multiplicative control the pack offers, and correspondingly the least likely node in this whole pack you'll need on a normal day. If you've landed here, it's probably either genuine research/tinkering, or you're trying to reproduce settings from a workflow someone else built and shared.

Inputs and output

Eight float fields:

  • pe_MULT (default 1) - multiplier for positional-encoding weights.
  • attn_MULT (default 1) - a blanket multiplier for attention as a whole.
  • attn_q_MULT, attn_k_MULT, attn_v_MULT (default 1 each) - multipliers for the query, key, and value projections.
  • attn_out_weight_MULT, attn_out_bias_MULT (default 1 each) - multipliers for the output projection's weight and bias.
  • other_MULT (default 1) - multiplier for everything outside PE and attention.

All range 0–2, all default to 1 (no-op). print_adjustment (bool, off by default) logs the computed values - worth enabling given how many fields are in play. prev_weight_adjust (optional, WEIGHT_ADJUST) chains onto a prior adjustment. Output is WEIGHT_ADJUST, which does nothing until wired into whichever node in your graph collects per-model AnimateDiff settings.

Installing the pack

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

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

restart. No model file for this node - it's settings only - but you need a motion module (mm_sd_v15_v2, v3_sd15_mm, etc.) downloaded into ComfyUI/models/animatediff_models for it to have anything to attach to.

Common issues

Zero out a Q/K/V multiplier and things break badly, not subtly. Setting a projection's multiplier to 0 doesn't gently reduce its contribution - it removes that projection's information from the attention computation entirely, which tends to produce obviously broken output rather than a graceful fade. Stay closer to 1 than the 0–2 range suggests, especially at first.

Eight sliders and no baseline to start from. There's no published "good" configuration - this is fine-grained enough that any starting point is empirical. If you haven't already exhausted the coarser options, start there: ADE_AdjustWeightAllMult for a global scale, then ADE_AdjustWeightIndivMult for PE/attention/other, and only drop to per-projection control once you've confirmed attention specifically (not PE, not "other") is where you need to intervene.

No visible change after adjusting. Same gotcha as every node in this family - confirm the WEIGHT_ADJUST output is actually wired into your motion model's settings node before assuming the values don't do anything.

KB gap: we don't have documented cases of what problem scaling an individual attention projection actually solves in practice - that granularity of guidance isn't in our sources and would be worth capturing from the pack's own documentation or real user reports next time.

CategoryAnimate Diff πŸŽ­πŸ…πŸ…“/ad settings/weight adjust

Inputs (10)

NameTypeDefaultDescription
pe_MULTFLOAT1.00000–2β€”
attn_MULTFLOAT1.00000–2β€”
attn_q_MULTFLOAT1.00000–2β€”
attn_k_MULTFLOAT1.00000–2β€”
attn_v_MULTFLOAT1.00000–2β€”
attn_out_weight_MULTFLOAT1.00000–2β€”
attn_out_bias_MULTFLOAT1.00000–2β€”
other_MULTFLOAT1.00000–2β€”
print_adjustmentBOOLEANfalseβ€”
prev_weight_adjustoptWEIGHT_ADJUSTβ€”

Outputs (1)

NameTypeDescription
WEIGHT_ADJUSTWEIGHT_ADJUSTβ€”