LoRA 管理器
One LoRA node that remembers your trigger words so you don't have to
- model
- clip
- MODEL
- CLIP
- 触发词
Stacking three LoRAs in vanilla ComfyUI means chaining three LoraLoader nodes, and each one gives you a strength number and nothing else. The part that wastes your time isn't the chaining - it's remembering that this character LoRA wants ohwx person, that the style one wants in the style of xyzfilm, and which of them you had enabled when the good seed hit. LoRAManager, from the pack 创界 / ComfyUI-ChuangJie, treats a LoRA stack as a saved, named thing instead of three wires you keep re-typing.
What it actually is
One node: MODEL in (optionally CLIP), any number of LoRAs applied in the order you put them, and three things back - patched MODEL, patched CLIP, and the enabled LoRAs' trigger words as a single comma-joined string. The storing, renaming, categorising and cover-art side lives in a panel the node opens, and that panel is what writes the node's config widget.
The trigger-word output is the whole argument for the node, honestly. Community workflows have been routing around this for years - rgthree's Power Lora Loader won a lot of its following specifically because right-clicking an entry could dig trained words out of the file, and every "how do you keep track of your LoRAs" thread eventually turns into people maintaining text files by hand. Here the words live on the entry, travel with the workflow, and come out of a socket.
How it works under the hood
config is a versioned JSON snapshot - the README's "随工作流保存的配置快照,由管理窗口维护" is literal. Each entry holds a filename, an enabled flag, strength_model, strength_clip, a trigger and a display name, and the node validates all of it before touching your model. Then it applies them one at a time through comfy.sd.load_lora_for_models - the same call core LoraLoader uses - so order matters exactly as it does with chained loaders: later entries sit on top of earlier ones.
Two details explain behaviour you'd otherwise misread. The file list comes from ComfyUI, not the folder - only files registered under models/loras resolve, and each is re-checked every run with a size/mtime signature in the cache key, so rewriting a LoRA in place doesn't serve you stale weights. And strength_clip only applies when CLIP is connected: wire just the MODEL and clip-side training is skipped rather than silently zeroed at a mystery strength.
Before applying anything it preflights every enabled entry, so a renamed or deleted file fails loudly with 找不到 LoRA:…. The manager panel has a relink action for moved files, which beats hunting for a filename typo inside a JSON blob.
The inputs and outputs that matter
model- required, this is what gets patched.clip- optional. Connect it if your LoRAs carry text-encoder weights (most character LoRAs do); skip it for pure UNet LoRAs and save a little work.config- the JSON widget. You don't type in it; the manager window owns it.- Outputs:
MODEL→ your sampler.CLIP→ CLIP Text Encode.触发词→ convert a text widget to input on your positive prompt node (right-click → Convert widget to input) and wire it there. Words are deduplicated and only emitted for enabled entries, so bypassing a card quietly removes its words too.
With nothing enabled the node is a pass-through: model in, model out, empty trigger string.
Install
Same pack, same three nodes. From ComfyUI Manager search ComfyUI-ChuangJie and install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/lefango/ComfyUI-ChuangJie.git
Restart ComfyUI and hard-refresh the browser tab - the panel is a front-end bundle, and a stale cache is the usual "I installed it and see nothing". The node appears under 创界节点 / 模型工具.
There are no Python dependencies to worry about (pyproject.toml declares an empty dependencies list), no model downloads, no API keys. Two things to plan for. Disable any old standalone copy - the pack raises an explicit RuntimeError on startup if it finds the older ComfyUI-LoRA-Manager routes still registered, so move those folders out of custom_nodes first. And your library lives outside the pack: categories, covers and presets sit in ComfyUI's user directory under lora-manager, and the README is emphatic about not deleting that when you upgrade or uninstall. That's your data, not the plugin's.
Where people get burned
The one that'll bite you is expecting a missing LoRA to be swapped automatically. It isn't - the node refuses to run and names the file it can't find. That's the right call (rendering silently without the LoRA you were paying attention to is worse), but a workflow you downloaded will fail until you install their LoRA under the same relative name.
Second: this is an elaborate custom UI on top of the standard canvas, and complex node panels have had a rough time under ComfyUI's Nodes 2.0 frontend rewrite - the rgthree issue tracker is the canonical example, with LoRA toggles that didn't redraw until you resized the node. If the manager window renders oddly, switch back to the legacy canvas before assuming the pack is broken.
Third, the licence: CC BY-NC-SA 4.0. Fine for hobby work; worth reading before you build a paid pipeline on it.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| config | STRING | {"version":1,"entries":[],"preset":null} | 随工作流保存的配置快照,由管理窗口维护 |
| clipopt | CLIP | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| 触发词 | STRING | — |