Combine LoRA Hooks [2] ππ π
Merging scheduled LoRAs in AnimateDiff
- lora_hook_A
- lora_hook_B
- HOOKS
Quick context before the node itself: AnimateDiff-Evolved has its own LoRA scheduling system, separate from ComfyUI's plain LoRA loader. A "LoRA hook" is a LoRA (or, per the README, a model used as a LoRA) that can be masked, timed to a percentage range of sampling, or attached to specific conditioning - rather than just applying uniformly for the whole run the way a normal LoRA loader does. This node doesn't create hooks; it merges two of them into one.
What it does
If you've built two separate LoRA hooks - say, one for a character LoRA scheduled to the first half of the animation and another for a style LoRA active throughout - this node combines them into a single HOOKS value so downstream nodes (conditioning nodes, model-application nodes) can apply both at once instead of only accepting one hook chain. It's pure plumbing: no strength math, no scheduling logic of its own, just "take A and B, give back one thing that represents both."
Inputs and output
lora_hook_A,lora_hook_B(both optional, typeHOOKS) - the two hook chains to merge. Either can be left empty if you only have one to pass through, though at that point you don't strictly need this node at all.
Output is HOOKS, feeding into whatever conditioning or model-application node consumes a combined hook set downstream.
How to install it
Bundled 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. - You'll need actual LoRA hook-creation nodes elsewhere in your graph feeding
lora_hook_A/B- this node is only the merge step.
Common issues & troubleshooting
This is a niche corner of the pack. LoRA hooks aren't something most AnimateDiff users touch - community discussion of them is thin even relative to the rest of this pack's less mainstream features. If you're here, you're probably already deep into a specific scheduling problem rather than looking for a general-purpose LoRA loader; for the common case ("just apply this LoRA the whole time"), a plain LoRA loader upstream of your checkpoint is simpler and does the job.
Nothing happens even with both inputs wired. This node only merges - it doesn't apply anything. Check that the resulting HOOKS output actually reaches a node further downstream that consumes hooks (conditioning nodes with an opt_lora_hook input, or the model-application chain), and that the LoRA hooks feeding into A and B were themselves built correctly and pointed at real LoRA files.
You have more than two hooks to combine. Use Combine LoRA Hooks [8] instead - same idea, more slots. This two-slot version is for the simple case; reach for the eight-slot one if you're stacking several scheduled LoRAs at once.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| lora_hook_Aopt | HOOKS | β | |
| lora_hook_Bopt | HOOKS | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| HOOKS | HOOKS | β |