- model
- clip
- MODEL
- CLIP
- TRIGGERS
Stacking LoRAs in vanilla ComfyUI means chaining LoraLoader nodes together until the graph looks like a subway map, or installing a separate stack-plus-loader combo. LoRA S5 ("LoraStackFiveSimple" if you ever go looking in the source) collapses the whole affair into one node: five LoRA slots, five strength sliders, and out the other end come the blended MODEL, CLIP, and a bonus TRIGGERS string. It's the node from this pack you'll actually reach for.
What it does differently
The design choice that sets it apart: each LoRA gets a single strength, applied to both the model and the CLIP. The author is upfront about why in the README - he never found an obvious positive result from running model and clip strengths separately, so he killed the second slider to save screen space on his home view. That's the trade. If you're one of those people who runs character LoRAs at clip weight 0.6 and model weight 1.0, you can't do that here; you'd want the older split-strength nodes in this pack (or a different loader entirely). For everyone else, five sliders is genuinely all you'll fiddle with.
How it works
Mechanically it's the standard ComfyUI LoRA apply, looped. It walks the five slots top to bottom, skips any set to "None", loads each .safetensors from your loras folder with comfy.utils.load_torch_file, and patches the running model and clip with comfy.sd.load_lora_for_models, feeding the same strength to both sides. Then the clever part: for every applied LoRA it looks for a plain-text sibling next to the weights - whatever.safetensors becomes whatever.txt in the same folder - and reads its first line. Those lines get joined and handed out as TRIGGERS.
That trigger grab is the feature, honestly. The "LoRA not working" checklist in the community knowledge base puts a missing trigger word near the top of causes: many LoRAs do nothing until you type their trained trigger. LoRA S5 just hands you the words, the same trick rgthree's Power LoRA Loader does, minus a separate node. If the trigger text looks right but the effect still isn't there, the next suspects are strength and base-model compatibility (an SDXL LoRA on a Flux model silently does nothing - ComfyUI won't warn you).
The inputs and outputs that matter
- model and clip - your base pipeline, straight from the checkpoint loader.
- lora1_mdl … lora5_mdl - dropdowns of everything in
ComfyUI/models/loras, plus a "None" entry so you can run fewer than five. - lora1_str … lora5_str - the strength, default 1.0, range −16 to 16 in 0.1 steps. Negative weights work; 1.0 is often too hot. The old 0.5–0.8 rule of thumb is SDXL advice, so treat it as a starting point, not a law.
- MODEL / CLIP outputs - wire into your KSampler or conditioning chain like any LoRA loader.
- TRIGGERS - a single STRING of every applied LoRA's trigger words, ready to paste into your positive prompt.
Installing it
It ships in the ComfyKit Custom Nodes pack from bobmagicii/comfykit-custom-nodes. Easiest route is ComfyUI Manager - search "ComfyKit Custom Nodes" and hit install. Manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/bobmagicii/comfykit-custom-nodes
Then restart ComfyUI. The pack has no requirements.txt and no model downloads - it's pure Python over core ComfyUI modules, one of the lightest installs you'll do.
Gotchas worth knowing
The node's IS_CHANGED returns a constant, so ComfyUI always treats it as changed and re-applies all five LoRAs on every queue - you lose node caching here, but you also never miss a file you just edited. And remember the TRIGGERS output only exists if the LoRA's creator shipped a .txt beside the weights; plenty of CivitAI downloads don't, so an empty TRIGGERS isn't a bug in the node.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| lora1_mdl | COMBO | 1 options: None | |
| lora1_str | FLOAT | 1.0-16–16 | — |
| lora2_mdl | COMBO | 1 options: None | |
| lora2_str | FLOAT | 1.0-16–16 | — |
| lora3_mdl | COMBO | 1 options: None | |
| lora3_str | FLOAT | 1.0-16–16 | — |
| lora4_mdl | COMBO | 1 options: None | |
| lora4_str | FLOAT | 1.0-16–16 | — |
| lora5_mdl | COMBO | 1 options: None | |
| lora5_str | FLOAT | 1.0-16–16 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| TRIGGERS | STRING | — |