Nodes/ComfyUI-JakeUpgrade/Apply LoRA Stack JK๐Ÿ‰
ComfyUI Node

Apply LoRA Stack JK๐Ÿ‰

Stack six LoRAs, apply them with one wire

By jakechaiยทCreated 2 years agoยทUpdated 3 months agoยท 146
Apply LoRA Stack JK๐Ÿ‰
  • model
  • clip
  • lora_stack
  • MODEL
  • CLIP

Stacked LoRAs are great until you need to swap one weight without re-wiring the graph. That's the problem this node exists to solve: it takes a LORA_STACK - a single wire holding all your LoRA parameters - plus your model and clip, and applies every LoRA in order. Instead of chaining five or six LoraLoader nodes end to end, you build the stack once and hand it to one "Apply" node.

How it works

The node is the other half of JakeUpgrade's LoRA stack system. The stack (built by LoRA Stack JK or LoRA Stack Model Only JK) is really a list of tuples: (lora_name, strength_model, strength_clip). Apply LoRA Stack JK walks that list, resolves each name to a file in your loras folder, and calls ComfyUI's own load_lora_for_models on each one in sequence. It does the same thing ComfyUI's built-in LoraLoader does internally, just in a loop.

Two details worth knowing:

  • Order matters. LoRAs are applied top-of-stack to bottom, each one wrapping the model that came before. If two LoRAs fight over the same region, the last one in the stack tends to win.
  • An empty stack is a no-op, not an error. If the stack is None or empty, the node just passes your model and clip through untouched. That makes it safe to leave in a template workflow with nothing wired - but it also means a stack where every slot is disabled silently does nothing.

Inputs and outputs

You only really touch three inputs:

  • model - the MODEL from your checkpoint / UNET / diffusion model loader.
  • clip - the matching CLIP.
  • lora_stack - the LORA_STACK wire from the stack builder. If you don't connect it, the node is a passthrough.

Outputs are MODEL and CLIP, which feed straight into a KSampler (or wherever your modified model goes). This is the "apply to both model and CLIP" variant - the one you want for SD 1.5 and SDXL, where most LoRAs carry separate model and clip strengths. If a LoRA is model-only (a common pattern for Wan and Flux), you'd reach for Apply LoRA Stack Model Only JK instead.

Installing it

This node ships in ComfyUI-JakeUpgrade, so there's nothing extra to download for it specifically:

  • In ComfyUI Manager, search "JakeUpgrade" and install, then restart.
  • Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/jakechai/ComfyUI-JakeUpgrade
cd ComfyUI-JakeUpgrade
pip install -r requirements.txt

On the Windows portable build, run install.bat or ../../../python_embeded/python.exe -s -m pip install -r requirements.txt. No model files are downloaded by the pack itself - it just reads whatever is in your loras folder.

Common issues

  • "File not found" on a LoRA. The stack stores filenames. If you deleted or renamed a LoRA after building the stack, applying it errors out. Re-pick the name in the stack builder.
  • Model changes but CLIP doesn't look applied. If you built the stack with LoRA Stack Model Only JK, the CLIP strength is forced to 0.0 - that's by design, not a bug. Use the full LoRA Stack JK when you want prompt-side effects.
  • ComfyUI Manager warns about a conflict with IPAdapter Plus. This is a known JakeUpgrade quirk - the pack used to ship a copied IPAdapter module, and people have hit a "conflict with jake upgrade" error when installing IPAdapter Plus through Manager. The pack has since zipped its replacement copy so it doesn't register as a duplicate, but if you see the warning, it's worth updating both packs before you blame your LoRAs.

The takeaway: this is a quality-of-life node, not a magic one. If you've got two LoRAs, a plain LoraLoader chain is fine. Once you're juggling a per-character stack and a per-scene stack in the same workflow, the single wire is worth it.

Category๐Ÿ‰ JK/๐Ÿ’Š LoRA

Inputs (3)

NameTypeDefaultDescription
modelMODELModel to apply LoRAs to
clipCLIPCLIP model to apply LoRAs to
lora_stackLORA_STACKStack of LoRA parameters to apply

Outputs (2)

NameTypeDescription
MODELMODELโ€”
CLIPCLIPโ€”