Nodes/ComfyUI-Lora-Manager/Create Hook LoRA (LoraManager)
ComfyUI Node

Create Hook LoRA (LoraManager)

Stack LoRAs into ComfyUI's hook pipeline without the wiring

By willmiao·Created 2 years ago·Updated about 8 hours ago· 1,373
Create Hook LoRA (LoraManager)
  • text
  • HOOKS
  • trigger_words
  • active_loras

If you've ever wanted two characters in one image and ended up with a pasta of chained Load LoRA nodes, this is the node that rescues you. Create Hook LoRA (LoraManager) is the LoRA Manager pack's entry point into ComfyUI's hook pipeline - the feature that lets you apply a LoRA to only part of the generation, or to only the CLIP text encoder, or only the model. You search and select LoRAs the way you already do in the manager, and out comes a HOOKS output instead of a patched MODEL.

Hooks are one of ComfyUI's genuinely underrated powers. A hook isn't a one-shot patch like a normal LoRA apply - it's a group of instructions that downstream nodes (SetClipHooks, SetModelHooks, ConditioningSetProperties, SetHookKeyframes, CombineHooks) decide where to attach. The classic trick: hook a character LoRA to one region of the image and another LoRA to a different region, each via its own masked conditioning. That's how people stack two character LoRAs that would otherwise fight each other - a real workflow, not a demo.

How it works

Under the hood the node builds a HookGroup. If you wire in a previous HOOKS output it clones it first, so hook groups chain - which is what the tooltip means when it says "hooks chain with prev_hooks." Then, for every LoRA you've marked active in the text widget, it loads the weights and wraps them via ComfyUI's create_hook_lora, combining each result into the group. Two silent-skip behaviors are worth knowing: entries where both model and clip strength are zero are dropped, and any LoRA that can't be found on disk logs a warning and is skipped rather than killing the run.

The node has one required input, text - the autocomplete search box. Select LoRAs, and each one gets its own model strength and clip strength plus an active toggle. The optional inputs are flexible: wire prev_hooks to chain groups. Outputs are the money:

  • HOOKS - the group, wired into SetClipHooks / SetModelHooks / ConditioningSetProperties.
  • trigger_words - trained trigger words for your active LoRAs, joined with ,, so you can drop them straight into a prompt.
  • active_loras - a text summary in standard <lora:name:strength> syntax (with :model:clip when the two strengths differ), handy if you later want the same stack in a plain LoRA loader.

When to reach for it (and when not to)

Reach for it when you need hooks: masked per-region LoRAs, splitting model vs clip strength, or keyframed video LoRAs. If all you want is "these five LoRAs, whole image, done," the pack's plain Lora Loader - or rgthree's Power Lora Loader - is the simpler tool and you're just adding complexity. Hooks pay for themselves exactly when placement matters.

Install

The pack installs like any custom node. Via ComfyUI Manager: Manager → Custom Node Manager → search lora-manager → Install, then restart. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/willmiao/ComfyUI-Lora-Manager
cd ComfyUI-Lora-Manager
pip install -r requirements.txt
# restart ComfyUI

Dependencies are light (aiohttp, safetensors, Pillow, and friends) - no model downloads, and torch comes from ComfyUI itself. First launch builds the library registry; the manager UI lives at http://localhost:8188/loras. One catch: hooks are a newer ComfyUI feature, so keep ComfyUI updated. If your ComfyUI predates the hook system, the node errors at load.

Common issues

The quiet skips are the thing that bites people: a LoRA that isn't actually in your models/loras folder (or one you renamed after the scan) gets skipped with only a console warning, so check the log when output looks wrong. And if you're new to hooks, expect a debugging session the first time - the error is usually "missing hook" or wrong wire to a Set* node, not something this node did wrong.

CategoryLora Manager/hooks

Inputs (1)

NameTypeDefaultDescription
textAUTOCOMPLETE_TEXT_LORASSearch and select LoRAs. Each LoRA gets its own model/clip strength. Hooks chain with prev_hooks.

Outputs (3)

NameTypeDescription
HOOKSHOOKS
trigger_wordsSTRING
active_lorasSTRING