Nodes/CRT-Nodes/Magic LoRA Loader (CRT)
ComfyUI Node

Magic LoRA Loader (CRT)

A LoRA loader that merges, stacks, and hands you the merged weights

By PGCRT·Created 2 years ago·Updated a day ago· 132
Magic LoRA Loader (CRT)
  • model
  • clip
  • MODEL
  • CLIP
  • merged_lora
  • lora_stack_info

LoRA loading in ComfyUI is a stack of LoraLoaderModelOnly nodes with hardcoded strengths, and stacking more than a couple gets painful fast - especially when the LoRA was trained for a model family the stock loader doesn't know about yet. Magic LoRA Loader (CRT) is the pack's take on fixing both: a single node that takes model + CLIP and any number of LoRA inputs, applies them with fine control, and - the party trick - can hand you the merged LoRA weights as an output you can save to disk.

How it works

It's built on the standard LoraLoader underneath, but with a dynamic input surface: drop in as many LoRA wires as you like and each one gets its own strength control. Beyond that there are two things that matter:

  • A global wet/dry mix on the whole stack, so you can load several LoRAs and tune their combined effect in one place instead of touching every strength.
  • Per-block weight control. The loader can apply different weights per block group (double, single, transformer, layers, and so on) - which is how people get clean merges on models like Flux 2 Klein, LTX 2.3, Z-Image Turbo, WAN 2.2, ERNIE, Ideogram 4, and Krea 2 Turbo. A model-family selector tells it whose block layout it's working with; that's the part that lets it handle LoRAs the core loader still doesn't know about.

The outputs

  • MODEL / CLIP - the patched model and clip, wired onward into your sampler.
  • merged_lora - the merged weights, but only computed when the socket is actually connected (the node checks the graph for that). That means zero overhead in the normal case.
  • lora_stack_info - a string describing what was applied, handy for logging or debugging a merge.

The merged_lora output exists to feed the pack's Magic Save Merged LoRA (CRT) node, which bakes the merged delta to a .safetensors file - the fast path to turning a good multi-LoRA stack into a single file you can reuse without the whole graph.

Why it's conditional

This one registers only if its imports succeed - the README lists it (and its save sibling) as conditional nodes. If you installed the pack and the node isn't in your menu, check that ComfyUI's own LoraLoader (via nodes.py) is importable in your environment; that's the dependency the loader leans on.

Gotchas

  • Dynamic inputs can hide. The node's sockets appear as you wire them; if a LoRA doesn't show up, look for the model_type selector matching your model family.
  • Wet is global, blocks are per-LoRA. Mixing both is powerful but easy to lose track of - log lora_stack_info when you're iterating.
  • Merging has a cache gotcha. When merged_lora is wired, the node forces a re-run (never serves a stale cached merge) - that's by design, so don't be surprised by the re-execution cost.

Install CRT-Nodes via ComfyUI Manager (CRT-Nodes) or git clone https://github.com/plugcrypt/CRT-Nodes.git into custom_nodes, install requirements.txt, restart.

CategoryCRT/LoRA

Inputs (2)

NameTypeDefaultDescription
modeloptMODEL
clipoptCLIP

Outputs (4)

NameTypeDescription
MODELMODEL
CLIPCLIP
merged_loraMERGED_LORA
lora_stack_infoSTRING