ComfyUI Node

Lora Stack Lorader

Apply a whole stack of LoRAs to an already-loaded model

By kinorax·Created 5 months ago·Updated about a month ago· 2
Lora Stack Lorader
  • model
  • clip
  • lora_stack
  • model
  • clip
apply_lora_to_cliptrue

The name is a typo that isn't one - "lorader," a deliberate mash of loader and LoRA from the author. What it actually does is the useful half of LoRA plumbing in this pack: take a MODEL that's already loaded and apply an entire lora_stack to it in one go. The distinction matters because the kinorax pack treats LoRA choices as data (the stack) and LoRA application as a separate, later step. This node is where the two meet.

Core ComfyUI makes you apply LoRAs one at a time with individual LoraLoader nodes - fine for two, miserable for six. LoraStackLorader collapses that into a single node fed by one stack, which is the same ergonomic idea that made rgthree's Power Lora Loader a community staple, just with the stack as an external, metadata-carrying object instead of per-node toggles.

How it works

Give it a loaded model (required) and a lora_stack (optional), and it walks the stack's entries - each a (name, strength) pair - applying them sequentially to the model. If you also connect clip, it applies the same stack to the CLIP alongside the model. Under the hood it calls the same core LoraLoader / LoraLoaderModelOnly machinery ComfyUI ships, so the math is exactly what you'd get from the stock nodes; this is a convenience wrapper, not a reimplementation. The outputs are the modified model and clip, ready for the sampler.

The sequential bit is worth repeating: LoRA order isn't commutative, and the node honors the stack's order exactly. Swap two entries in Combine Lora Stacks upstream and you've changed the result.

Why the separate "load then apply" split exists

In this pack, the stack isn't just for this node. The same stack can be stored in image_info, saved into the image metadata, and restored when you open the image later - so the set of LoRAs reproduces itself. LoraStackLorader is the "apply right now, mid-graph" path, and it pairs with Use Loaded Model, which can also apply the stack internally on cache hits to skip redundant work.

The one gotcha in that relationship: Use Loaded Model applies the stack by default, so if you pass a stack through LoraStackLorader and then into Use Loaded Model, you can double-apply. The fix is documented in the README - set apply_lora_stack to false on Use Loaded Model when the LoRAs are already baked in. It's the kind of footgun that only appears once your graph gets sophisticated, but it's a real one.

The inputs that matter

  • model - the loaded MODEL this node modifies.
  • lora_stack - the stack of (name, strength) pairs to apply; omit it and the model just passes through.
  • clip - optional; apply the stack to the CLIP too.

Outputs are model and clip, both with the LoRAs applied.

Where people get burned

Missing LoRA files fail here, not at stack-build time - the stack is just metadata until this node runs, so a typo'd filename surfaces as a loader error at execution. And because Use Loaded Model keys its cache on stack order and strength, changing either means a fresh (correct) run rather than a silent cache hit. If your LoRA changes seem to do nothing, check you haven't got a stale cached runtime upstream.

Installing

Part of kinorax/comfyui-info-prompt-toolkit. Install via ComfyUI Manager (search "Info-Prompt-Toolkit") or:

cd ComfyUI/custom_nodes
git clone https://github.com/kinorax/comfyui-info-prompt-toolkit.git
cd comfyui-info-prompt-toolkit
pip install -r requirements.txt

Restart ComfyUI. No model files needed. If you never build stacks and just want a one-node multi-LoRA loader, rgthree's Power Lora Loader is the more famous choice; this one earns its place when the stack itself is a value you want to save, share, and reuse.

CategoryInfo-Prompt-Toolkit/ImageInfo

Inputs (4)

NameTypeDefaultDescription
modelMODELLoaded model to apply lora_stack
apply_lora_to_clipBOOLEANtrueIf false, apply every LoRA to the model only and keep CLIP unchanged
clipoptCLIPLoaded CLIP (optional)
lora_stackoptIPT-LoraStack

Outputs (2)

NameTypeDescription
modelMODEL
clipCLIP