GU Lora Stack Extended
Six LoRAs, independent strengths, and a checkbox to keep them on ice
- model
- clip
- model
- clip
- lora_tags
- lora_list
- ready_prompt
If you stack multiple LoRAs on a regular basis - a character LoRA plus a style LoRA plus a detail LoRA is the classic - GU Lora Stack Extended is the single node that replaces a small pile of LoraLoader nodes. It applies up to six LoRAs to your model and clip, each with its own LoRA strength, CLIP strength, and an enable checkbox, and it collects the trigger tags so your prompt can reference everything you stacked.
It's the deterministic cousin of GU Lora Randomizer: same tag plumbing, same output shape, but instead of rolling dice it gives you six fixed, hand-picked slots.
What it does
- model and clip - the incoming model pair.
- pos_prompt / append_tags - same optional prompt-tagging as the randomizer: pass your base prompt and the node can append the enabled LoRAs' tags to it, available on ready_prompt.
- Six slots, each with: loraN (the file dropdown), lora_strN (LoRA strength, −100..100), clip_strN (CLIP strength), and enableN (the checkbox).
The strength split is the point. The LoRA and CLIP strengths are genuinely independent here - a known real-world pattern is cranking LoRA strength up while dialing CLIP strength down (or vice versa) to change how hard the style hits versus how much the tag vocab is affected. Six slots with two independent strengths each is real control.
Outputs are the familiar family set: patched model, clip, lora_tags (trigger words of all enabled LoRAs), lora_list (the <lora:name:str:clp> strings, ready for filenames or sidecar info), and ready_prompt.
The enable checkbox is the hidden gem
Disabling a LoRA here doesn't lose its settings - untick enableN and the LoRA is skipped for this run while its file and strengths stay right where you left them. That's the workflow you actually live in: A/B testing "with or without the character LoRA" is a checkbox flip instead of rebuilding the graph. It's the same reason the README emphasizes it: "disable a LoRA without losing its configured parameters."
Install
ComfyUI Manager → search "GU Nodepack" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/alexguryev/ComfyUI-GU_Nodepack
cd ComfyUI-GU_Nodepack
pip install -r requirements.txt
Deps: psutil, requests, gu-funclib>=1.9.0. No model downloads - it reads your models/loras. Windows-tested, single-user design.
Where people trip
The tag lookup (same as the randomizer) hashes each file and queries Civitai for trainedWords, falling back to embedded tags - offline, or for LoRAs unknown to Civitai, tags may come back empty. Also remember the LoRA dropdown lists come from the pack's cached file list, refreshed when a browser tab connects: added a new LoRA? Refresh the page. And one gentle warning from the LoRA-training playbook: more stacked LoRAs isn't automatically better - six at full strength will often fight each other, and the enable checkboxes exist precisely so you can test what actually helps.
Inputs (34)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| pos_prompt | STRING | (optional) insert positive prompt here for tags appending | |
| append_tags | BOOLEAN | false | append all enabled LoRA tags as tail of the prompt |
| s0 | STRING | — | |
| lora1 | COMBO | 1 options: None | |
| lora_str1 | FLOAT | 1.00-100–100 | — |
| clip_str1 | FLOAT | 1.00-100–100 | — |
| enable1 | BOOLEAN | true | — |
| s1 | STRING | — | |
| lora2 | COMBO | 1 options: None | |
| lora_str2 | FLOAT | 1.00-100–100 | — |
| clip_str2 | FLOAT | 1.00-100–100 | — |
| enable2 | BOOLEAN | true | — |
| s2 | STRING | — | |
| lora3 | COMBO | 1 options: None | |
| lora_str3 | FLOAT | 1.00-100–100 | — |
| clip_str3 | FLOAT | 1.00-100–100 | — |
| enable3 | BOOLEAN | true | — |
| s3 | STRING | — | |
| lora4 | COMBO | 1 options: None | |
| lora_str4 | FLOAT | 1.00-100–100 | — |
| clip_str4 | FLOAT | 1.00-100–100 | — |
| enable4 | BOOLEAN | true | — |
| s4 | STRING | — | |
| lora5 | COMBO | 1 options: None | |
| lora_str5 | FLOAT | 1.00-100–100 | — |
| clip_str5 | FLOAT | 1.00-100–100 | — |
| enable5 | BOOLEAN | true | — |
| s5 | STRING | — | |
| lora6 | COMBO | 1 options: None | |
| lora_str6 | FLOAT | 1.00-100–100 | — |
| clip_str6 | FLOAT | 1.00-100–100 | — |
| enable6 | BOOLEAN | true | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| lora_tags | STRING | trigger words for all used loras |
| lora_list | STRING | formatted lora string with weights |
| ready_prompt | STRING | from here take the positive prompt with appended LoRA tags |