JosiaLoRA堆叠
Stack ten LoRAs in order without a wall of LoraLoader nodes
- model
- clip
- 模型
- CLIP
JosiaLoraStack (JosiaLoRA堆叠) is the "stop chaining ten LoraLoader nodes end-to-end" fix. A single node that takes your MODEL, applies up to ten LoRAs in sequence, and hands you the model - and CLIP if you feed one in - back out. If you've ever built a style-heavy workflow with four or five LoRAs chained, you know the fiddly part isn't the LoRAs, it's the wiring and the forgetting-which-strength-was-where. This collapses all of it into one panel.
How it works
On the Python side it's a real loader, not a placeholder: it reads the loras folder list, then on run it walks the enabled groups in order and calls comfy.sd.load_lora_for_models for each - the exact same machinery a stock LoraLoader uses - threading the result into the next group. Order matters, and this node preserves it: group 1 applies first, group 10 last, so stacking order is explicit instead of emergent from your wire layout.
The controls worth knowing:
- total_switch (总控开关) - off, and model/CLIP pass through completely untouched. The master mute for the whole stack.
- cpu_offload (内存加载) - load LoRA weights into system RAM instead of VRAM. Default off; flip it when VRAM is the constraint. It's the same trade-off every offloading option makes: slower loads, fatter memory, leaner VRAM.
- lora_count - how many of the 10 groups are active, set with the arrow buttons or dropdown. Shrink it and the hidden groups keep their settings, so you can toggle group count without losing your configuration.
- Per group: lora_name_X (pick from the searchable list), lora_switch_X (enable that group), strength_model_X and strength_clip_X (defaults 0.8 / 0.0). The frontend has a sync toggle that locks model and CLIP strength together.
Inputs and outputs
model (required, MODEL) in; clip (optional, CLIP) in. Out: 模型 (MODEL) and CLIP. That's the whole contract - it sits exactly where a LoraLoader would sit, between the checkpoint and the sampler. If you don't feed it a CLIP, it just doesn't touch one.
Install
Zero extra Python dependencies - the pack runs on ComfyUI built-ins:
cd ComfyUI/custom_nodes
git clone https://github.com/Josia-doit/ComfyUI_JosiaNodes
or install via ComfyUI Manager (search ComfyUI_JosiaNodes), then restart. It lives under the Josia category. The strength sliders and group toggles are frontend JS, so keep web/js intact.
Honest notes
The comparison that matters is rgthree's Power Lora Loader - the incumbent everyone actually reaches for, and the one the KB's ecosystem essay names as the community favorite (it also reads trigger words off the files). Josia's version is a perfectly solid alternative: same stacking mechanic, native sliders, Chinese UI. Where it trails is ecosystem: rgthree's is referenced in hundreds of threads and has a smoother trigger-word workflow; Josia's is a niche pack that does the job without the extras. If you're already inside the JosiaNodes pack and just want your LoRAs stacked, this is convenient. If you're choosing a LoRA stack from scratch, honestly start with rgthree. And whichever you use - stacking ten LoRAs at 0.8 each is a great way to make a muddy image; the strength defaults exist so you can turn them down, not because they're right.
Inputs (45)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| total_switch | BOOLEAN | true | — |
| cpu_offload | BOOLEAN | false | — |
| lora_count | INT | 11–10 | — |
| lora_name_1 | COMBO | None | 1 options: None |
| lora_switch_1 | BOOLEAN | true | — |
| strength_model_1 | FLOAT | 0.80-10–10 | — |
| strength_clip_1 | FLOAT | 0.00-10–10 | — |
| lora_name_2 | COMBO | None | 1 options: None |
| lora_switch_2 | BOOLEAN | true | — |
| strength_model_2 | FLOAT | 0.80-10–10 | — |
| strength_clip_2 | FLOAT | 0.00-10–10 | — |
| lora_name_3 | COMBO | None | 1 options: None |
| lora_switch_3 | BOOLEAN | true | — |
| strength_model_3 | FLOAT | 0.80-10–10 | — |
| strength_clip_3 | FLOAT | 0.00-10–10 | — |
| lora_name_4 | COMBO | None | 1 options: None |
| lora_switch_4 | BOOLEAN | true | — |
| strength_model_4 | FLOAT | 0.80-10–10 | — |
| strength_clip_4 | FLOAT | 0.00-10–10 | — |
| lora_name_5 | COMBO | None | 1 options: None |
| lora_switch_5 | BOOLEAN | true | — |
| strength_model_5 | FLOAT | 0.80-10–10 | — |
| strength_clip_5 | FLOAT | 0.00-10–10 | — |
| lora_name_6 | COMBO | None | 1 options: None |
| lora_switch_6 | BOOLEAN | true | — |
| strength_model_6 | FLOAT | 0.80-10–10 | — |
| strength_clip_6 | FLOAT | 0.00-10–10 | — |
| lora_name_7 | COMBO | None | 1 options: None |
| lora_switch_7 | BOOLEAN | true | — |
| strength_model_7 | FLOAT | 0.80-10–10 | — |
| strength_clip_7 | FLOAT | 0.00-10–10 | — |
| lora_name_8 | COMBO | None | 1 options: None |
| lora_switch_8 | BOOLEAN | true | — |
| strength_model_8 | FLOAT | 0.80-10–10 | — |
| strength_clip_8 | FLOAT | 0.00-10–10 | — |
| lora_name_9 | COMBO | None | 1 options: None |
| lora_switch_9 | BOOLEAN | true | — |
| strength_model_9 | FLOAT | 0.80-10–10 | — |
| strength_clip_9 | FLOAT | 0.00-10–10 | — |
| lora_name_10 | COMBO | None | 1 options: None |
| lora_switch_10 | BOOLEAN | true | — |
| strength_model_10 | FLOAT | 0.80-10–10 | — |
| strength_clip_10 | FLOAT | 0.00-10–10 | — |
| clipopt | CLIP | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| 模型 | MODEL | — |
| CLIP | CLIP | — |