MultipleLoraLoader3 ๐
Three LoRAs on one node, with a normalize switch that saves you from overcooking
- model
- clip_optional
- MODEL
- CLIP
Chaining three LoraLoader nodes works fine right up until your graph looks like a plate of spaghetti - model and clip wires threading through three separate boxes just to stack a character LoRA, a style LoRA, and a detail LoRA. MultipleLoraLoader3 collapses that into one node with three built-in slots, plus a feature the stock loader doesn't have: a normalize switch that keeps you from stacking three LoRAs at full strength and cooking the image.
This is part of cgem156-ComfyUI, a personal grab-bag pack from developer laksjdjf - a dozen mostly-unrelated tools (a regional-prompting node, a LoRA merger, custom samplers, a couple of tagger integrations) rather than one focused extension. The pack's best-known export is attention_couple, its regional-prompting node, which has a real reputation among ComfyUI users for being fiddly enough that easier forks like ComfyCouple got built specifically to simplify it. Keep that in mind as the general flavor: functional, terse, not much hand-holding in the docs. The multi-LoRA loader, by comparison, is one of the more approachable corners.
What it actually does
Wire in a model, pick up to three LoRAs from your models/loras folder, set each slot's strength, and you get MODEL and CLIP back out - same shape as chaining loaders manually, minus the visual clutter. Each slot has an apply_N checkbox too, so you can toggle a LoRA off for a test render without deleting the filename or rewiring anything.
The one thing worth noticing: each slot only exposes strength_model_N, not a separate CLIP strength. This loader patches the diffusion model's weights only - it doesn't touch the text encoder. The clip_optional input exists so you can route your CLIP straight through the same node instead of adding a reroute, but this node isn't patching it.
The feature that earns its keep is normalize + normalize_sum. LoRAs stack unpredictably - the community's own experience with this is well-worn: multiple LoRAs at or near full strength can produce black images, NaN errors, or just an overcooked, plastic-looking result, and the fix people reach for is reordering or dialing weights down by feel. Turn normalize on and this node rescales your active slots' combined strength to sum to normalize_sum (default 1) automatically, instead of letting three LoRAs at strength 1.0 each add up to an effective 3.0 of influence. It's a guard rail for exactly the failure mode LoRA stacking is known for.
One structural detail from the pack itself: slot counts are set in the pack's config.txt, and 3/5 are the two variants shipped as separate nodes (see MultipleLoraLoader5 if you need more slots). If you genuinely need a different count, that config file is where you'd change it.
Installing it
Easiest path: open ComfyUI Manager, search for cgem156-ComfyUI, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/laksjdjf/cgem156-ComfyUI
then restart ComfyUI. Nothing to download for this node specifically - no model weights, no heavy Python dependencies documented in the README. It only needs LoRA files you already have.
Common issues
A LoRA does nothing. Same rule as any loader: LoRAs are architecture-bound. An SDXL LoRA loaded against a Flux or Z-Image checkpoint won't error, it'll just do nothing visible. Check the LoRA's page for which base model it was trained against.
Stacked LoRAs look burned or plastic. This is the textbook case for turning normalize on - set normalize_sum to 1 and let it rebalance instead of eyeballing three strength sliders.
Missing trigger word. Plenty of LoRAs need a specific word in the prompt to activate at all; if a slot is loaded, enabled, and still doing nothing, check the model page for a required trigger before assuming the node is broken.
Weird interactions between two specific LoRAs. Stacking behavior is genuinely unpredictable - if two LoRAs fight each other, try reordering slots (larger/heavier LoRAs first) before concluding either file is broken.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | โ | |
| normalize | BOOLEAN | false | โ |
| normalize_sum | FLOAT | 1.00-50โ50 | โ |
| lora_name_0 | COMBO | 1 options: None | |
| strength_model_0 | FLOAT | 1.00-20โ20 | โ |
| apply_0 | BOOLEAN | true | โ |
| lora_name_1 | COMBO | 1 options: None | |
| strength_model_1 | FLOAT | 1.00-20โ20 | โ |
| apply_1 | BOOLEAN | true | โ |
| lora_name_2 | COMBO | 1 options: None | |
| strength_model_2 | FLOAT | 1.00-20โ20 | โ |
| apply_2 | BOOLEAN | true | โ |
| clip_optionalopt | CLIP | โ |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | โ |
| CLIP | CLIP | โ |