Ino Load Multiple Lora
Stack up to five LoRAs in one node and keep your graph readable
- model
- clip
- model
- clip
- lora_names
- total_loaded
Stacking LoRAs in ComfyUI usually means chaining three or four LoraLoader nodes in a row, each with its own model and clip wire. It works, but it turns a corner of your graph into a tangle, and every time you want to reorder a LoRA you're rewiring. Ino Load Multiple Lora puts up to five slots into a single node: enable each one, pick the file, set model and CLIP strength, and it applies them sequentially in slot order. One node, one model in, one model out.
The sequencing detail matters more than it looks. LoRAs are applied to the model in order - slot 0 first, then 1, then 2 - and order changes the result because each subsequent LoRA patches the already-patched model. The KB's advice about stacking applies here: big global LoRAs first, specific ones after, and don't expect every combination to play nice. If a stack looks broken, reorder the slots before you touch the strengths.
How it works
Each enabled slot reads its safetensors from ComfyUI's loras folder and applies it with comfy.sd.load_lora_for_models, the same call the core LoraLoader uses, so you get identical behavior to chaining core nodes. A small optimization worth knowing: the node caches each slot's loaded weights by path, so re-running the workflow with the same five files doesn't re-read every safetensors from disk each time. Swap a file and the cache invalidates for that slot automatically.
A slot is skipped if it's not enabled, if no name is selected, or if both its strengths are zero - which makes it easy to build one workflow with five candidate LoRAs and toggle them per run.
Inputs and outputs that matter
- model, clip - required, wire from your checkpoint loaders.
- lora_N_enable - per-slot on/off toggle, default off.
- lora_N_name - dropdown populated from your
ComfyUI/models/lorasfolder. Files appear after a restart or refresh. - lora_N_strength_model / lora_N_strength_clip - separate strengths, both default 1.0, range -100 to 100. Setting CLIP strength to 0 while keeping model strength is a legit trick when a LoRA's text encoder changes don't suit your prompt.
Outputs are the patched model and clip (wire into your sampler), plus lora_names (the list of names actually loaded, handy for logging) and total_loaded (an int you can feed to a display or a conditional).
Installing it
ComfyUI Manager → search "ComfyUI Ino Nodes" → install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/nobandegani/comfyui_ino_nodes
cd comfyui_ino_nodes
pip install -r requirements.txt
Restart after. The pack requires inopyutils (auto-installed via requirements.txt) and a current ComfyUI (V3-style node API, v0.18.1+ per the README). No keys or downloads for this node - just your LoRA files in the right folder.
Common issues
The classic failure mode is a LoRA name that doesn't appear in the dropdown: it's in the folder but ComfyUI cached the list at startup, so restart (or refresh the node menu). Then the subtler one - two LoRAs that each look fine alone and turn to mush together. That's not a bug in the node; it's the stacking problem from the KB, and your lever is order and strength, not blame. If a slot loads and the output is unchanged, check that lora_N_enable is actually on - the default is off, and it's the most common "why is nothing happening" report on multi-slot loaders like this one.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| lora_0_enableopt | BOOLEAN | false | — |
| lora_0_nameopt | COMBO | 0 options: | |
| lora_0_strength_modelopt | FLOAT | 1.00-100–100 | — |
| lora_0_strength_clipopt | FLOAT | 1.00-100–100 | — |
| lora_1_enableopt | BOOLEAN | false | — |
| lora_1_nameopt | COMBO | 0 options: | |
| lora_1_strength_modelopt | FLOAT | 1.00-100–100 | — |
| lora_1_strength_clipopt | FLOAT | 1.00-100–100 | — |
| lora_2_enableopt | BOOLEAN | false | — |
| lora_2_nameopt | COMBO | 0 options: | |
| lora_2_strength_modelopt | FLOAT | 1.00-100–100 | — |
| lora_2_strength_clipopt | FLOAT | 1.00-100–100 | — |
| lora_3_enableopt | BOOLEAN | false | — |
| lora_3_nameopt | COMBO | 0 options: | |
| lora_3_strength_modelopt | FLOAT | 1.00-100–100 | — |
| lora_3_strength_clipopt | FLOAT | 1.00-100–100 | — |
| lora_4_enableopt | BOOLEAN | false | — |
| lora_4_nameopt | COMBO | 0 options: | |
| lora_4_strength_modelopt | FLOAT | 1.00-100–100 | — |
| lora_4_strength_clipopt | FLOAT | 1.00-100–100 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| lora_names | STRING | — |
| total_loaded | INT | — |