XBHH Multi Lora Loader Plus 🎨⭐
The multi-LoRA loader that saves your favorite LoRA stacks as one reusable preset
- model
- clip
- MODEL
- CLIP
- preset_text
- triggers
If you've ever rebuilt the same six-LoRA stack from memory across three workflows, this is the node. XBHHMultiLoraLoaderPlus is the base XBHH Multi Lora Loader with preset bookkeeping bolted on: you assemble a stack once, export it as a plain-text preset, and reapply it anywhere - in another workflow, another machine, or a friend's graph. Same flexible "Add Lora" slots, same tree picker, same previews; it just remembers your combos.
LoRA stacking is how character + style + fix adapters get combined, and the friction has never been the loading - it's the remembering. Stock ComfyUI forces you to re-chain nodes each time. The Plus version makes a saved stack as portable as a text file.
How it works
Like the base node, it calls ComfyUI's own LoraLoader for every enabled slot at execution time. Plus adds two things.
First, preset import/export. The node can emit (and accept) a lora_preset string, formatted as one line per LoRA: enabled|lora_name|model_strength|clip_strength|trigger|trigger_weight. You can paste that into the lora_preset input, save it to a file, or feed it back into another instance of the node. Import is merge-mode, not overwrite: LoRAs already configured manually take precedence, and preset entries that don't exist yet get appended. The v1.2.0 changelog calls this out explicitly - the author moved away from "brutal overwrite" on purpose.
Second, a trigger-word output. For every enabled LoRA with a trigger word, the node assembles a comma-joined prompt fragment and emits it as triggers. It's smart about weights: if you didn't hand-set a custom weight it syncs the trigger to the LoRA's model strength, wraps single tags in (tag:weight) notation, and leaves already-weighted or multi-tag triggers alone. That output feeds straight into your positive prompt, so a preset carries both the adapters and the words that activate them.
The inputs and outputs that matter
- model / clip (optional) - in and out, same as the base loader.
- lora_preset (optional) - the text preset to merge in. Marked
forceInput, so it accepts a wire. - Outputs: MODEL, CLIP, preset_text (the exportable preset string for everything currently enabled), and triggers (the ready-to-paste prompt fragment).
Note the preset format uses a plain | separator, so it survives copy-paste through chat apps and markdown without mangling - that's a deliberate bit of design you'll appreciate the first time you share one.
Installing it
Same pack, same ritual:
cd ComfyUI/custom_nodes
git clone https://github.com/xbhh123456/Comfyui-xbhh-main.git
cd Comfyui-xbhh-main
pip install -r requirements.txt
Or ComfyUI Manager → search xbhh-lora → restart. Nothing extra to download.
Common issues
- Preset seems to lose LoRAs - remember the merge behavior: entries you've already configured manually win, so a preset won't clobber your current setup. That's a feature, but it means you need the node's manual slots empty if you want a preset to fully take over.
- Triggers look wrong - the auto-weighting only kicks in when the trigger has no explicit weight. If you want total control, set the trigger weight yourself and the node stops guessing.
- Architecture mismatch - a preset referencing SDXL LoRAs pasted into a Flux workflow will load (or skip) silently to nothing useful. The preset saves names and strengths, not intent - check your base model before reapplying old stacks.
Which one to pick? If you never reuse stacks, the base XBHHMultiLoraLoader is simpler. If you do - and most people with a working LoRA rig do - Plus is the one that earns its star.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| modelopt | MODEL | — | |
| clipopt | CLIP | — | |
| lora_presetopt | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| preset_text | STRING | — |
| triggers | STRING | — |