Nifty Lora Loader
Stack your LoRAs in one node instead of a chain of loaders
- model
- loras
- clip
- MODEL
- CLIP
The standard way to apply multiple LoRAs in ComfyUI is to chain two or three LoraLoaders together, each one swallowing the previous model and CLIP. It works, but it's ugly, and the moment you want to A/B a strength or temporarily disable one, you're scrolling through a chain of nodes. Nifty Lora Loader replaces the whole chain with a single node and a table of rows - each row is a LoRA with its own enable toggle and strength slider.
How it works
The loras input is a special widget (type NIFTY_LORA_LOADER) - a mini spreadsheet, not a wire. Add rows, pick a LoRA file per row, set strength, toggle enabled. At execution the node parses those rows and applies each enabled one in order via ComfyUI's standard load_lora_for_models call. The order matters: rows are applied top to bottom, and since LoRA math is sequential, that order shapes the result.
Two behaviors are worth internalizing because they save you from confusion later:
- Rows with strength
0.0are skipped entirely, and disabled rows are skipped too. That means you can leave a row in place as a "maybe this one" and just toggle it - no deleting and re-adding. - A row pointing at a LoRA file that can't be found logs a warning and continues rather than killing the run. Nice for resilience, annoying if you were hoping for an error to catch a typo.
Inputs and outputs
Inputs are few:
- model - the base model to apply LoRAs to (required).
- clip - optional CLIP model. Leave it disconnected if you only want the model patched.
- loras - the stack widget itself.
Outputs are the two you'd expect: MODEL and CLIP, both with everything applied, ready to feed your sampler and prompt encoder.
The per-row strength is the knob that matters. 1.0 is full effect, 0.5 is half, and negative values invert the LoRA's influence. If you're tuning a character LoRA and it's bleeding style everywhere, that's the standard "strength too high" failure - knock it to 0.6 or 0.7 before you blame the LoRA itself.
When to reach for it
If you run the same handful of LoRAs on every image - a style, a character, a detail LoRA - this is the node that keeps your graph from turning into a vertical wall of loaders. The table layout also makes it obvious at a glance what's actually active, which the chain approach never did.
Installing it
It's part of Nifty Nodes, so install the pack once:
cd ComfyUI/custom_nodes
git clone https://github.com/Stibo/comfyui-nifty-nodes
or search "Nifty Nodes" in ComfyUI Manager, then restart. No model files to download - the LoRAs it loads are whatever you already have in ComfyUI/models/loras. The pack is built on the newer ComfyUI V3 API, so if nodes don't appear, update ComfyUI first; this is a young pack with a small community footprint, so don't expect a wall of troubleshooting threads to lean on.
Gotchas
The main trap is the opposite of the loader problem: because disabled and zero-strength rows are silently skipped, a workflow that "stopped working" can just mean a row got toggled off. Check the table before you tear down the graph. And remember LoRAs apply in row order - if two LoRAs fight (say, two competing style LoRAs), the later row wins the tug-of-war.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | Base model to apply LoRAs to. | |
| loras | NIFTY_LORA_LOADER | — | |
| clipopt | CLIP | CLIP model to apply LoRAs to. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |