ComfyUI Node

Lora Stack

One node to manage all your LoRAs, with per-LoRA toggles

By r-vageΒ·Created 10 months agoΒ·Updated a day agoΒ· 31
Lora Stack
  • lora_stack
  • LORA_STACK
β—„modestandardβ–Ί
β—„lora_count5β–Ί
β—„switch_1falseβ–Ί
β—„lora_name_1β–Ύβ–Ί
β—„model_weight_11.00β–Ί
β—„clip_weight_11.00β–Ί
β—„switch_2falseβ–Ί
β—„lora_name_2β–Ύβ–Ί
β—„model_weight_21.00β–Ί
β—„clip_weight_21.00β–Ί
β—„switch_3falseβ–Ί
β—„lora_name_3β–Ύβ–Ί
β—„model_weight_31.00β–Ί
β—„clip_weight_31.00β–Ί
β—„switch_4falseβ–Ί
β—„lora_name_4β–Ύβ–Ί
β—„model_weight_41.00β–Ί
β—„clip_weight_41.00β–Ί
β—„switch_5falseβ–Ί
β—„lora_name_5β–Ύβ–Ί
β—„model_weight_51.00β–Ί
β—„clip_weight_51.00β–Ί
β—„switch_6falseβ–Ί
β—„lora_name_6β–Ύβ–Ί
β—„model_weight_61.00β–Ί
β—„clip_weight_61.00β–Ί
β—„switch_7falseβ–Ί
β—„lora_name_7β–Ύβ–Ί
β—„model_weight_71.00β–Ί
β—„clip_weight_71.00β–Ί
β—„switch_8falseβ–Ί
β—„lora_name_8β–Ύβ–Ί
β—„model_weight_81.00β–Ί
β—„clip_weight_81.00β–Ί
β—„switch_9falseβ–Ί
β—„lora_name_9β–Ύβ–Ί
β—„model_weight_91.00β–Ί
β—„clip_weight_91.00β–Ί
β—„switch_10falseβ–Ί
β—„lora_name_10β–Ύβ–Ί
β—„model_weight_101.00β–Ί
β—„clip_weight_101.00β–Ί

You know the chore: ten LoRAs in a workflow, each with its own loader node, and every time you want to A/B test one of them you're muting loaders and untangling wires. Lora Stack is the pack's answer - a single node that holds up to ten LoRA slots, each with its own on/off switch and independent model/CLIP weights, and outputs one LORA_STACK object that Lora Stack apply turns into a patched model. It's the same idea as rgthree's Power Lora Loader (which is one of the most-borrowed nodes in the whole ecosystem) but written for this pack's V3/Nodes 2.0-era API.

The part that makes it genuinely better than a pile of LoraLoaders: per-slot switches. You tune the stack once and flip individual LoRAs on and off from the node's own UI without touching the wiring, which makes comparing "with character LoRA, without it" a single click.

How it works

Each slot (1 through 10) has four widgets: switch_N (ON/OFF), lora_name_N (a dropdown populated from your models/loras folder), model_weight_N, and clip_weight_N. Build the stack, and an optional lora_stack input lets you chain another stack in front, so you can compose a base stack and a per-scene stack. The mode combo changes the meaning of the weights:

  • standard - model and CLIP weights are independent. The default, and what you want when you know what each weight does.
  • model_only - LoRAs apply to the model only, no CLIP. Useful for character/style LoRAs that shouldn't touch your prompt embeddings.
  • simple - CLIP weight is forced equal to model weight, so you only set one number per slot.

The output is a LORA_STACK type that flows into Lora Stack apply - not into a stock LoraLoader. That's the one wiring detail people trip on.

One quality-of-life touch worth knowing: the node skips ComfyUI's built-in combo validation on purpose, so a saved workflow whose LoRA file was moved or deleted will still load (it just fails at execution if you actually run it). That's a deliberate design choice, and it saves a lot of "workflow won't open" misery.

The inputs that matter

  • switch_N and lora_name_N - your daily drivers. Toggle and swap here.
  • mode - set once, then forget.
  • lora_count - how many slots are visible. Fewer slots, cleaner node.

Install

Part of ComfyUI_Eclipse (r-vage), the successor to RvTools_v2. ComfyUI Manager, search ComfyUI_Eclipse, or:

cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI_Eclipse

Restart ComfyUI. Nothing model-related to download - the node just reads whatever's already in your loras folder. Heavy deps are none; the pack's usual stack (opencv, aiohttp, etc.) is mostly already satisfied by ComfyUI. If a shared workflow fails to load with [Eclipse] nodes, remember the pack's v4.0 stripped out legacy node IDs - run the Workflow Migration Tool instead of reinstalling.

Common issues

LoRA does nothing even though it's enabled and weighted 1.0? Two usual causes: the LoRA is model_only or simple in a way that skips CLIP, or - the classic - it's a LoRA whose trigger word you never typed, so the weight applies to a character that isn't even being requested (the KB's troubleshooting doc calls this out as the #1 "my LoRA isn't working" answer). And if a stack that used to load now throws "file not found," that's the deleted-file validation trade-off above - re-point the lora_name_N dropdown at an existing file.

CategoryπŸŒ’ Eclipse/ Tools

Inputs (43)

NameTypeDefaultDescription
modeCOMBOstandardstandard: independent clip_weight per LoRA. model_only: LoRAs applied to model only (no CLIP). simple: clip_weight = model_weight.
lora_countINT51–10Number of visible LoRA slots
switch_1BOOLEANfalseβ€”
lora_name_1COMBO1 options: None
model_weight_1FLOAT1.00-10–10β€”
clip_weight_1FLOAT1.00-10–10β€”
switch_2BOOLEANfalseβ€”
lora_name_2COMBO1 options: None
model_weight_2FLOAT1.00-10–10β€”
clip_weight_2FLOAT1.00-10–10β€”
switch_3BOOLEANfalseβ€”
lora_name_3COMBO1 options: None
model_weight_3FLOAT1.00-10–10β€”
clip_weight_3FLOAT1.00-10–10β€”
switch_4BOOLEANfalseβ€”
lora_name_4COMBO1 options: None
model_weight_4FLOAT1.00-10–10β€”
clip_weight_4FLOAT1.00-10–10β€”
switch_5BOOLEANfalseβ€”
lora_name_5COMBO1 options: None
model_weight_5FLOAT1.00-10–10β€”
clip_weight_5FLOAT1.00-10–10β€”
switch_6BOOLEANfalseβ€”
lora_name_6COMBO1 options: None
model_weight_6FLOAT1.00-10–10β€”
clip_weight_6FLOAT1.00-10–10β€”
switch_7BOOLEANfalseβ€”
lora_name_7COMBO1 options: None
model_weight_7FLOAT1.00-10–10β€”
clip_weight_7FLOAT1.00-10–10β€”
switch_8BOOLEANfalseβ€”
lora_name_8COMBO1 options: None
model_weight_8FLOAT1.00-10–10β€”
clip_weight_8FLOAT1.00-10–10β€”
switch_9BOOLEANfalseβ€”
lora_name_9COMBO1 options: None
model_weight_9FLOAT1.00-10–10β€”
clip_weight_9FLOAT1.00-10–10β€”
switch_10BOOLEANfalseβ€”
lora_name_10COMBO1 options: None
model_weight_10FLOAT1.00-10–10β€”
clip_weight_10FLOAT1.00-10–10β€”
lora_stackoptLORA_STACKβ€”

Outputs (1)

NameTypeDescription
LORA_STACKLORA_STACKβ€”