ScarlotSoft Lora Loader
A LoRA loader with rows, toggles, and trigger-tag reading — ScarlotSoft Lora Loader
- model
- clip
- MODEL
- CLIP
The core LoraLoader handles one LoRA at a time, so a workflow with three LoRAs is three stacked loader nodes and three chains of model-plus-clip wires. ScarlotSoft Lora Loader replaces that pile with a single node that holds a list of LoRAs - each with its own on/off toggle and strength - and applies them all in sequence to the model and clip you feed in. One node, one model wire in, one model wire out. That's the pitch, and it's a good one.
On the surface the inputs look odd: model, clip, then available_loras (a dropdown of everything in your loras folder) and lora_data, a multi-line string that defaults to []. That's the trick - the real UI lives in JavaScript. The frontend hides those two text-y widgets and draws a proper row list instead: an "Add LoRA" button, a row per LoRA with name, strength, and an on/off switch, and a master toggle. Every change you make is serialized into the lora_data JSON string, which the backend parses on execution. So you never type JSON yourself - the widget does it. The hidden dropdown is how the JS knows what files exist to offer.
Mechanically, each enabled entry with a strength gets loaded via load_torch_file + load_lora_for_models, chained through the list in order - same math the core loader uses, just looped. Missing LoRAs are skipped with a console warning instead of killing the run, and an entry with on false is skipped entirely. Outputs are MODEL and CLIP, ready to feed a KSampler.
The genuinely nice extra is the built-in metadata reader. The pack exposes an API route (/scarlotsoft/lora_info) that opens a safetensors file, reads the header, and extracts the training metadata - the ss_tag_frequency trigger tags, the base model name, and the training resolution - then shows them in the UI. So instead of guessing the trigger word for a character LoRA you just downloaded, you click into it and the node tells you what tags the trainer embedded. For someone drowning in unexplained LoRAs, that's a real time-saver.
The usual LoRA rules apply: strength is per-row, and stacking several at 1.0 is how you get blobby, over-tuned results - the standard advice from the LoRA-training playbook is that a 0.7–0.9 base plus a style LoRA at 0.6–0.8 beats three at full blast. Keep an eye on the per-LoRA strength as you stack, not just the toggle.
Install with the pack - ComfyUI Manager → search ScarlotSoft → install → restart:
cd ComfyUI/custom_nodes
git clone https://github.com/scarlotsoft/ComfyUI_ScarlotSoft
No extra Python deps for the loader itself. Suite theme; hard-refresh after a UI-mode switch if the custom list doesn't render.
Verdict: if you juggle multiple LoRAs - style + character + detailer LoRAs in one graph - this collapses real wiring clutter. The trigger-tag reader alone justifies a look. It won't teach you which strengths work (nothing will), but it removes the friction of the multi-loader chain.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| available_loras | COMBO | 0 options: | |
| lora_data | STRING | [] | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |