Nodes/ComfyUI-GU_Nodepack/GU Motion Lora Stack
ComfyUI Node

GU Motion Lora Stack

Stack AnimateDiff motion LoRAs without the spaghetti

By alexguryev·Created 4 months ago·Updated 23 days ago· 2
GU Motion Lora Stack
  • prev_motion_lora
  • new_motion_lora
  • lora_list
name1
strength11.000
enable1true
s1
name2
strength21.000
enable2true
s2
name3
strength31.000
enable3true
s3
name4
strength41.000
enable4true
s4
name5
strength51.000
enable5true
s5
name6
strength61.000
enable6true

GU Motion Lora Stack is purpose-built for AnimateDiff's motion LoRAs - the small files that bend the motion module toward zoom, pan, tilt, and roll instead of generic drift. If you've built AnimateDiff workflows, you know the pattern: several motion LoRAs chained, each needing its own loader, strengths tuned per clip, and the list of what you used stuck somewhere you'll never find it. This node stacks up to six of them in one place and hands you the applied stack plus the names for your records.

Context first, because it matters here: the KB's AnimateDiff essay is blunt that the model line itself is frozen - the surviving community use is a specific aesthetic, and Wan/LTX took the general video work. If you're still doing AnimateDiff for its look (audio-reactive work, that distinctive morph), motion LoRAs are the vocabulary of that look, and this node is comfortable plumbing for it.

What it does

Six slots, each with nameN (the motion LoRA dropdown), strengthN (0 to 10), and enableN. The dropdown is populated from the __animatediff_motion_lora__ folder inside your ComfyUI tree - that's where AnimateDiff motion LoRAs conventionally live, so the pack reads it directly.

  • prev_motion_lora - optional. Connect a MOTION_LORA stack to continue building on top of it rather than starting fresh. That's how you chain this node, or wire one in front of an AnimateDiff loader that already has a motion model.

Outputs:

  • new_motion_lora - the combined MOTION_LORA stack, wired into the motion module input of your AnimateDiff setup.
  • lora_list - the names of every enabled LoRA (extensions stripped) as a string list, for injecting into an info file or an output video filename.

Mechanically it's a thin wrapper: it builds a MotionLoraList, adds each enabled LoRA's info from the __animatediff_motion_lora__ folder, and raises a clear FileNotFoundError if you select something that's gone missing - no silent skips.

Why you'd reach for it

Stacking motion LoRAs in raw AnimateDiff means chaining nodes and re-reading each one to remember what you used. This collapses that to one node with enable checkboxes (same trick as the GU LoRA stack - disable without losing settings) and the lora_list output means your saved filenames can carry _zoom-pan at a glance. If you're doing camera-move tests across several clips, the enable flags make the A/B instant.

Install

ComfyUI Manager → search "GU Nodepack" → install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/alexguryev/ComfyUI-GU_Nodepack
cd ComfyUI-GU_Nodepack
pip install -r requirements.txt

The pack itself downloads no models - your motion LoRAs are already in models/animatediff_motion_lora (the pack reads __animatediff_motion_lora__). Deps: psutil, requests, gu-funclib>=1.9.0. Windows-tested, single-user design.

The honest caveats

Motion LoRA strength is a subtle knob - values around 1.0 are typical and the range goes to 10, but cranking it high produces stutter and warping, not "more zoom." And before you build an AnimateDiff pipeline around this, reread the KB's current-state verdict: for new video projects the community moved to Wan/LTX, and this node's MOTION_LORA type only plugs into the AnimateDiff ecosystem. It's a tool for the people already in that niche, not a reason to join it.

CategoryGU_Nodepack

Inputs (24)

NameTypeDefaultDescription
name1COMBO1 options: None
strength1FLOAT1.0000–10
enable1BOOLEANtrue
s1STRING
name2COMBO1 options: None
strength2FLOAT1.0000–10
enable2BOOLEANtrue
s2STRING
name3COMBO1 options: None
strength3FLOAT1.0000–10
enable3BOOLEANtrue
s3STRING
name4COMBO1 options: None
strength4FLOAT1.0000–10
enable4BOOLEANtrue
s4STRING
name5COMBO1 options: None
strength5FLOAT1.0000–10
enable5BOOLEANtrue
s5STRING
name6COMBO1 options: None
strength6FLOAT1.0000–10
enable6BOOLEANtrue
prev_motion_loraoptMOTION_LORA

Outputs (2)

NameTypeDescription
new_motion_loraMOTION_LORA
lora_listSTRINGlist of used lora names w/o extension