HSWQ SDXL LoRA Stack V3
Ten SDXL LoRAs in one node, and it lives in the pack you already installed
- model
- clip
- MODEL
- CLIP
The thing everyone wants once they have more than two LoRAs is a single node that applies several at once, with per-LoRA toggles, instead of a daisy chain of LoraLoader nodes that's a pain to rewire. rgthree's Power Lora Loader is the famous answer to that and it's great. This node is the same idea tuned for SDXL, shipping inside the HSWQ pack - which means if you're already running HSWQ's loaders, it's the zero-extra-install option.
What it does
HSWQSDXLLoraStackV3 applies multiple LoRAs to an SDXL model and its clip in a single pass, with a dynamically generated UI. The lora_count widget (default 3, range 1–10) controls how many slots the node exposes; each slot gets three inputs:
enabled_N- toggle that slot on/off.lora_name_N- the LoRA file. SelectNoneto skip a slot entirely.lora_strength_N- strength from −100 to 100, default 1.0. Negative strengths are legitimately useful for un-learning a style.
There's also toggle_all to flip every slot at once and a debug switch that prints per-LoRA application logs. The LoRA application itself goes through ComfyUI's own comfy.sd.load_lora_for_models, so this works with normal SDXL LoRAs targeting the UNet and/or CLIP - no custom LoRA format, no magic. Outputs are the modified MODEL and CLIP, ready to feed your sampler.
Why you'd reach for it
If you're inside the HSWQ SDXL world - quantized checkpoint, this pack's loader - a multi-LoRA node that lives in the same pack and is wired to tolerate the quantized paths is convenient in a way a generic stacker isn't. The README doesn't even document this node, which tells you it's a quiet utility rather than a headline feature, but the source is straightforward: dynamic inputs, per-slot enable/strength, load_lora_for_models under the hood, and an IS_CHANGED hash so the node re-runs when any slot's parameters change.
A couple of practical notes. First, with lora_count at the max you get 10 slots, each with three inputs - that's 30 widgets plus the base set, so a crowded workflow can get visually noisy. Set lora_count to the number you actually use rather than the max. Second, the optional lora_name_N inputs are exactly that - a slot with lora_name left at None is skipped cleanly, which is the intended way to keep fewer than the configured count. And per the LoRA-to-quantized-model lesson from the broader ecosystem, stacking many LoRAs on quantized weights is slower than on fp16 because each layer has to be dequantized, patched, and requantized - this node doesn't change that math.
Installing it
It ships in the HSWQ pack, so you already know the drill:
cd ComfyUI/custom_nodes
git clone https://github.com/ussoewwin/ComfyUI-HSWQ-Loader-and-Tools
Restart, and it appears under the HSWQ category. The pack's requirements install a lot of machinery (diffusers, insightface, onnxruntime…) that this particular node doesn't need - if you installed the pack for the loaders anyway, none of that matters. If you came only for a LoRA stacker and aren't running HSWQ models, the honest advice is to install rgthree or any other well-supported stacker instead; you'd be pulling a heavy quantization pack just for a convenience node.
Inputs (35)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | The diffusion model to apply LoRAs to. | |
| clip | CLIP | The SDXL CLIP (Dual CLIP). LoRAs targeting CLIP will be applied here. | |
| lora_count | INT | 31–10 | Number of LoRA slots to process. |
| toggle_all | BOOLEAN | true | Enable/disable all LoRAs at once. |
| debug | BOOLEAN | false | Print debug logs (similar information volume to ComfyUI-QwenImageLoraLoader). |
| enabled_1opt | BOOLEAN | true | Enable/disable LoRA 1. |
| lora_name_1opt | COMBO | The file name of LoRA 1. Select 'None' to skip this slot. | |
| lora_strength_1opt | FLOAT | 1.00-100–100 | Strength for LoRA 1. |
| enabled_2opt | BOOLEAN | true | Enable/disable LoRA 2. |
| lora_name_2opt | COMBO | The file name of LoRA 2. Select 'None' to skip this slot. | |
| lora_strength_2opt | FLOAT | 1.00-100–100 | Strength for LoRA 2. |
| enabled_3opt | BOOLEAN | true | Enable/disable LoRA 3. |
| lora_name_3opt | COMBO | The file name of LoRA 3. Select 'None' to skip this slot. | |
| lora_strength_3opt | FLOAT | 1.00-100–100 | Strength for LoRA 3. |
| enabled_4opt | BOOLEAN | true | Enable/disable LoRA 4. |
| lora_name_4opt | COMBO | The file name of LoRA 4. Select 'None' to skip this slot. | |
| lora_strength_4opt | FLOAT | 1.00-100–100 | Strength for LoRA 4. |
| enabled_5opt | BOOLEAN | true | Enable/disable LoRA 5. |
| lora_name_5opt | COMBO | The file name of LoRA 5. Select 'None' to skip this slot. | |
| lora_strength_5opt | FLOAT | 1.00-100–100 | Strength for LoRA 5. |
| enabled_6opt | BOOLEAN | true | Enable/disable LoRA 6. |
| lora_name_6opt | COMBO | The file name of LoRA 6. Select 'None' to skip this slot. | |
| lora_strength_6opt | FLOAT | 1.00-100–100 | Strength for LoRA 6. |
| enabled_7opt | BOOLEAN | true | Enable/disable LoRA 7. |
| lora_name_7opt | COMBO | The file name of LoRA 7. Select 'None' to skip this slot. | |
| lora_strength_7opt | FLOAT | 1.00-100–100 | Strength for LoRA 7. |
| enabled_8opt | BOOLEAN | true | Enable/disable LoRA 8. |
| lora_name_8opt | COMBO | The file name of LoRA 8. Select 'None' to skip this slot. | |
| lora_strength_8opt | FLOAT | 1.00-100–100 | Strength for LoRA 8. |
| enabled_9opt | BOOLEAN | true | Enable/disable LoRA 9. |
| lora_name_9opt | COMBO | The file name of LoRA 9. Select 'None' to skip this slot. | |
| lora_strength_9opt | FLOAT | 1.00-100–100 | Strength for LoRA 9. |
| enabled_10opt | BOOLEAN | true | Enable/disable LoRA 10. |
| lora_name_10opt | COMBO | The file name of LoRA 10. Select 'None' to skip this slot. | |
| lora_strength_10opt | FLOAT | 1.00-100–100 | Strength for LoRA 10. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | The modified diffusion model with all LoRAs applied. |
| CLIP | CLIP | The modified CLIP with LoRAs applied (if applicable). |