Combine Lora Stacks
Merge two LoRA bundles into one, order intact
- lora_stack1
- lora_stack2
- lora_stack
Most ComfyUI users meet LoRAs through a loader node: pick a file, set a strength, done. This pack works differently. Here a lora_stack is a first-class data object - a list of (name, strength) pairs that flows through the graph as metadata, gets stored in image_info, and is only actually applied to a model much later (via Lora Stack Lorader or Use Loaded Model). Once you're in that world, you'll eventually want to merge two stacks into one. That's exactly what Combine Lora Stacks does.
It's a two-input, one-output utility with no logic to speak of, which is precisely why it's reliable. You feed it a base stack and a variant stack, and you get a single combined stack back.
How it works
The node concatenates lora_stack1 and lora_stack2 in order - first stack's entries first, then the second stack's. Order is preserved, not sorted or deduplicated, and that matters more than it sounds: LoRA application is sequential and order-sensitive, so the combined stack means "apply all of stack 1, then all of stack 2," and downstream code sees exactly that. If one input is left unconnected, the node just passes the other through; if both are empty, you get nothing out.
That's the whole mechanism, and it's worth saying the absence of cleverness is a feature. This is a data-assembly node, not a model node - no weights are loaded, no VRAM is touched, and nothing is applied yet.
Why you'd actually use it
Think of it as the metadata-friendly sibling of rgthree's Power Lora Loader. Power Lora Loader is a single node where you stack a dozen LoRAs with per-entry toggles and it applies them in one go - great when the graph is the source of truth. This pack's approach separates "which LoRAs" from "apply them," so the stack can ride along inside your saved image_info and reproduce itself when you load the image later. Combine Lora Stacks is the piece that lets you build that stack out of smaller, reusable pieces: a "character base" stack and a "style overlay" stack, for instance, kept as separate bundles and combined at the point of use. Swap the style overlay and the character base stays untouched.
The two inputs that matter
lora_stack1- the first stack; appears first in the combined output.lora_stack2- the second stack, appended after the first.
One output: lora_stack, ready to feed Lora Stack Lorader, Use Loaded Model, Image Info Context, or anywhere else in the pack that consumes stacks. The source itself calls the inputs "first" and "second" - there's no right-hand-wins semantics to worry about, no merging of strengths, just an append.
Installing
It's part of the kinorax/comfyui-info-prompt-toolkit pack. 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 after. No model files required.
The trap to avoid
Because stacks are metadata, a stack that references a LoRA file that isn't on disk will happily combine and store - and only fail later, at apply time. Keep your stack sources and your loras folder in sync, and remember that Use Loaded Model treats stack order and strength as part of the cache key, so reordering entries here isn't cosmetic: it produces a different (correctly) cache-missed run. If you only ever use one stack at a time, this node is dead weight - but the moment your workflow wants two composable LoRA sets, it's the cleanest junction in the pack.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| lora_stack1opt | IPT-LoraStack | First lora stack | |
| lora_stack2opt | IPT-LoraStack | Second lora stack |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| lora_stack | IPT-LoraStack | — |