Nodes/AnimateDiff Evolved/Combine LoRA Hooks [8] πŸŽ­πŸ…πŸ…“
ComfyUI Node Runs on cloud

Combine LoRA Hooks [8] πŸŽ­πŸ…πŸ…“

Merging up to eight scheduled LoRAs

By KosinkadinkΒ·Created 3 years agoΒ·Updated 8 days agoΒ· 3,519
Combine LoRA Hooks [8] πŸŽ­πŸ…πŸ…“
  • lora_hook_A
  • lora_hook_B
  • lora_hook_C
  • lora_hook_D
  • lora_hook_E
  • lora_hook_F
  • lora_hook_G
  • lora_hook_H
  • HOOKS

Same job as Combine LoRA Hooks [2], just with room for a lot more inputs. If you're stacking several scheduled LoRAs - a character LoRA active early, a style LoRA throughout, a couple of Motion LoRAs for camera moves, all timed or masked differently - this is the node that folds them all into one HOOKS value instead of forcing you to nest multiple two-slot combiners.

What a LoRA hook is, quickly

AnimateDiff-Evolved's LoRA hooks are its own scheduling layer on top of LoRAs: instead of a LoRA applying at a fixed strength for the entire run the way ComfyUI's plain loader does, a hook can be timed to a percentage range of sampling, masked spatially, or attached to specific conditioning. This node doesn't build hooks - it merges ones you've already built.

Inputs and output

  • lora_hook_A through lora_hook_H (all optional, type HOOKS) - eight slots for hook chains built elsewhere in your graph. Leave any unused ones empty; you don't need to fill all eight to use the node.

Output is HOOKS, feeding into whatever conditioning or model-application node downstream consumes a combined hook set.

How to install it

Comes 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.
  • Needs LoRA hook-creation nodes elsewhere in the graph to actually feed it - this node is purely the merge step.

Common issues & troubleshooting

This is genuinely advanced, niche territory. LoRA hooks aren't heavily documented in the wider community even for the simple two-slot case - if you're reaching for eight slots, you're doing something fairly bespoke, and you should expect to lean on the README and trial-and-error more than on a well-trodden tutorial path.

Only using two or three hooks? Combine LoRA Hooks [2] is simpler and does the same job for the common case - no reason to reach for eight slots if you only need two.

Wired several hooks in and the result doesn't look like any single one is applying correctly. Debug by isolating: feed one hook at a time into a downstream test render before combining all of them, so you know each one behaves as expected in isolation before stacking. LoRA interactions (especially several running at once, each potentially targeting overlapping model layers) can produce results that are hard to attribute to a specific hook once they're all merged.

Nothing happens even with slots filled. Check that the combined HOOKS output actually reaches something that consumes it downstream - an opt_lora_hook input on a conditioning node, or the model-application chain. This node is pure plumbing; it doesn't apply anything on its own.

CategoryAnimate Diff πŸŽ­πŸ…πŸ…“/conditioning/combine lora hooks

Inputs (8)

NameTypeDefaultDescription
lora_hook_AoptHOOKSβ€”
lora_hook_BoptHOOKSβ€”
lora_hook_CoptHOOKSβ€”
lora_hook_DoptHOOKSβ€”
lora_hook_EoptHOOKSβ€”
lora_hook_FoptHOOKSβ€”
lora_hook_GoptHOOKSβ€”
lora_hook_HoptHOOKSβ€”

Outputs (1)

NameTypeDescription
HOOKSHOOKSβ€”