Nodes/comfyui-AGSoft/🧩AGSoft Multi LoRA Loader
ComfyUI Node

🧩AGSoft Multi LoRA Loader

Stack 20 LoRAs in one node — AGSoft's answer to Power Lora Loader

By Art-xmaster·Created 12 months ago·Updated about 21 hours ago· 23
🧩AGSoft Multi LoRA Loader
  • model
  • clip
  • model
  • clip
active_loras2
toggle_alltrue
enabled_1true
lora_1__none__
model_strength_11.00
clip_strength_11.00
enabled_2true
lora_2__none__
model_strength_21.00
clip_strength_21.00
enabled_3true
lora_3__none__
model_strength_31.00
clip_strength_31.00
enabled_4true
lora_4__none__
model_strength_41.00
clip_strength_41.00
enabled_5true
lora_5__none__
model_strength_51.00
clip_strength_51.00
enabled_6true
lora_6__none__
model_strength_61.00
clip_strength_61.00
enabled_7true
lora_7__none__
model_strength_71.00
clip_strength_71.00
enabled_8true
lora_8__none__
model_strength_81.00
clip_strength_81.00
enabled_9true
lora_9__none__
model_strength_91.00
clip_strength_91.00
enabled_10true
lora_10__none__
model_strength_101.00
clip_strength_101.00
enabled_11true
lora_11__none__
model_strength_111.00
clip_strength_111.00
enabled_12true
lora_12__none__
model_strength_121.00
clip_strength_121.00
enabled_13true
lora_13__none__
model_strength_131.00
clip_strength_131.00
enabled_14true
lora_14__none__
model_strength_141.00
clip_strength_141.00
enabled_15true
lora_15__none__
model_strength_151.00
clip_strength_151.00
enabled_16true
lora_16__none__
model_strength_161.00
clip_strength_161.00
enabled_17true
lora_17__none__
model_strength_171.00
clip_strength_171.00
enabled_18true
lora_18__none__
model_strength_181.00
clip_strength_181.00
enabled_19true
lora_19__none__
model_strength_191.00
clip_strength_191.00
enabled_20true
lora_20__none__
model_strength_201.00
clip_strength_201.00

Every serious workflow ends up with the same wall of wires: three, four, six LoRA loaders chained model-to-model down the canvas, each holding one file and two strengths. AGSoft Multi LoRA Loader collapses that wall into a single node stacking up to twenty LoRAs - each on its own row with a toggle, a file picker and model/clip strengths - plus an info dialog that pulls the LoRA's CivitAI page, trigger words and example images by hashing the file. If you've seen rgthree's Power Lora Loader, the shape is familiar; AGSoft is the version hiding inside an oversized Russian QoL pack, and it's a genuinely well-built one.

Honest framing first: this is an obscure node from an obscure author. The comfyui-AGSoft pack (~90+ nodes) barely shows up in community chatter, and its docs live mostly in a Russian Telegram channel. You won't find a support thread waiting for you. But the loader is not a toy - it's real custom-frontend work, and if you already run the pack for its other nodes, it beats a chain of stock loaders.

How it works

Under the hood it's nothing clever - which is exactly why you can trust it. For each enabled slot, the node loads the LoRA file from models/loras, converts it and applies the patch through ComfyUI's own LoRA machinery (comfy.lora.load_lora plus add_patches on a cloned model), threading the result into the next slot. Same math as the built-in LoraLoader, just looped and chained. Slots apply top to bottom, so order matters the same way it does with a manual chain: your "base style" LoRA should sit above the character one that builds on it.

The inputs that matter

You only truly configure three things per row, and they repeat 20 times:

  • enabled_N - the toggle. Off means the row is skipped entirely, so you can keep a stack configured and A/B it by flipping switches instead of rewiring.
  • lora_N - the file picker, which opens as a folder tree with a filter rather than a flat dropdown.
  • model_strength_N and clip_strength_N - strength for the diffusion model and text-encoder halves, each from −10 to 10 in 0.01 steps.

Rows are added and removed with the + Add LoRA / – Remove buttons, and Toggle All flips every row at once. And note the optional clip input: it's genuinely optional. Leave it unplugged and the node skips clip patching and passes your CLIP through untouched - the right call if you're only stacking U-Net/Dit LoRAs anyway. Outputs are the patched model and clip, wired straight into your KSampler.

The CivitAI info dialog

The row's info button is where this pulls ahead of a plain multi-loader. It hashes the local file (SHA256) and asks CivitAI's by-hash API for that exact version: page link, trigger words, example images/videos with their prompts, even the sampler and CFG they were made with. Results cache to disk, so the second time you ask it's instant. You can also store per-LoRA notes locally - a friendly name, and Strength Min/Max that clamp that row's stepper so you can't accidentally nuke a style at +8. Local notes live in your ComfyUI user directory under agsoft/lora_meta.json, keyed by filename. First lookup needs network, nothing else; if your CivitAI mirror isn't the default, point it elsewhere with the AGSOFT_CIVITAI_API / AGSOFT_CIVITAI_WEB env vars.

Installing it

No model downloads, nothing exotic:

cd ComfyUI/custom_nodes
git clone https://github.com/Art-xmaster/comfyui-AGSoft.git
# then restart ComfyUI

Or open ComfyUI Manager and search "comfyui-AGSoft". The pack's declared dependencies are numpy, opencv-python and translators - those last two serve the pack's video and translate nodes, not this loader, so nothing heavy lands on your GPU stack.

Where people get burned

The usual LoRA footguns apply, and this node won't protect you. Stack a Pony LoRA on a non-Pony checkpoint and ComfyUI silently applies it, gives you no warning, and your output quietly degrades - same as any loader. Keep your base model and LoRA families matched. Two more to watch:

  • An enabled slot pointing at a missing file fails validation with "enabled but not installed" - flip the row off or pick a real file rather than staring at a red node.
  • Per-LoRA Strength Min/Max set in the info dialog will clamp the stepper, which can feel like the node is stuck if you set a tight range and forgot. That's not a bug; it's the clamp working.
  • Every run re-reads and re-converts every enabled LoRA from disk, so a full 20-slot stack costs real load time. Disable what you're not testing.

The pack may look overwhelming and the docs may be in another language, with no community forum to rescue you - but for "all my character/style LoRAs in one tidy node with trigger words a click away," this one does the job.

CategoryAGSoft/LoRA

Inputs (84)

NameTypeDefaultDescription
modelMODELInput model to patch with the enabled LoRAs. --- Входная модель, к которой применяются включённые LoRA.
active_lorasINT20–20Internal: how many slots are applied. Controlled by the + Add LoRA / – Remove buttons in the UI (the widget itself is hidden). --- Служебный: сколько слотов применяется. Управляется кнопками + Add LoRA / – Remove в UI (сам виджет скрыт).
toggle_allBOOLEANtrueBulk switch: flips every slot toggle at onceThe server applies each slot's own toggle. --- Массовый переключатель: включает/выключает все слоты сразуСервер применяет тумблер каждого слота.
enabled_1BOOLEANtrueSlot 1: enable/disable this LoRA. --- Слот 1: включить/выключить эту LoRA.
lora_1COMBO__none__Slot 1: LoRA file from models/loras. '__none__' = empty slot. --- Слот 1: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_1FLOAT1.00-10–10Slot 1: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 1: сила для MODEL (unet/dit) части LoRA.
clip_strength_1FLOAT1.00-10–10Slot 1: strength for the CLIP (text encoder) part of the LoRA. --- Слот 1: сила для CLIP (текстовый энкодер) части LoRA.
enabled_2BOOLEANtrueSlot 2: enable/disable this LoRA. --- Слот 2: включить/выключить эту LoRA.
lora_2COMBO__none__Slot 2: LoRA file from models/loras. '__none__' = empty slot. --- Слот 2: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_2FLOAT1.00-10–10Slot 2: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 2: сила для MODEL (unet/dit) части LoRA.
clip_strength_2FLOAT1.00-10–10Slot 2: strength for the CLIP (text encoder) part of the LoRA. --- Слот 2: сила для CLIP (текстовый энкодер) части LoRA.
enabled_3BOOLEANtrueSlot 3: enable/disable this LoRA. --- Слот 3: включить/выключить эту LoRA.
lora_3COMBO__none__Slot 3: LoRA file from models/loras. '__none__' = empty slot. --- Слот 3: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_3FLOAT1.00-10–10Slot 3: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 3: сила для MODEL (unet/dit) части LoRA.
clip_strength_3FLOAT1.00-10–10Slot 3: strength for the CLIP (text encoder) part of the LoRA. --- Слот 3: сила для CLIP (текстовый энкодер) части LoRA.
enabled_4BOOLEANtrueSlot 4: enable/disable this LoRA. --- Слот 4: включить/выключить эту LoRA.
lora_4COMBO__none__Slot 4: LoRA file from models/loras. '__none__' = empty slot. --- Слот 4: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_4FLOAT1.00-10–10Slot 4: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 4: сила для MODEL (unet/dit) части LoRA.
clip_strength_4FLOAT1.00-10–10Slot 4: strength for the CLIP (text encoder) part of the LoRA. --- Слот 4: сила для CLIP (текстовый энкодер) части LoRA.
enabled_5BOOLEANtrueSlot 5: enable/disable this LoRA. --- Слот 5: включить/выключить эту LoRA.
lora_5COMBO__none__Slot 5: LoRA file from models/loras. '__none__' = empty slot. --- Слот 5: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_5FLOAT1.00-10–10Slot 5: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 5: сила для MODEL (unet/dit) части LoRA.
clip_strength_5FLOAT1.00-10–10Slot 5: strength for the CLIP (text encoder) part of the LoRA. --- Слот 5: сила для CLIP (текстовый энкодер) части LoRA.
enabled_6BOOLEANtrueSlot 6: enable/disable this LoRA. --- Слот 6: включить/выключить эту LoRA.
lora_6COMBO__none__Slot 6: LoRA file from models/loras. '__none__' = empty slot. --- Слот 6: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_6FLOAT1.00-10–10Slot 6: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 6: сила для MODEL (unet/dit) части LoRA.
clip_strength_6FLOAT1.00-10–10Slot 6: strength for the CLIP (text encoder) part of the LoRA. --- Слот 6: сила для CLIP (текстовый энкодер) части LoRA.
enabled_7BOOLEANtrueSlot 7: enable/disable this LoRA. --- Слот 7: включить/выключить эту LoRA.
lora_7COMBO__none__Slot 7: LoRA file from models/loras. '__none__' = empty slot. --- Слот 7: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_7FLOAT1.00-10–10Slot 7: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 7: сила для MODEL (unet/dit) части LoRA.
clip_strength_7FLOAT1.00-10–10Slot 7: strength for the CLIP (text encoder) part of the LoRA. --- Слот 7: сила для CLIP (текстовый энкодер) части LoRA.
enabled_8BOOLEANtrueSlot 8: enable/disable this LoRA. --- Слот 8: включить/выключить эту LoRA.
lora_8COMBO__none__Slot 8: LoRA file from models/loras. '__none__' = empty slot. --- Слот 8: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_8FLOAT1.00-10–10Slot 8: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 8: сила для MODEL (unet/dit) части LoRA.
clip_strength_8FLOAT1.00-10–10Slot 8: strength for the CLIP (text encoder) part of the LoRA. --- Слот 8: сила для CLIP (текстовый энкодер) части LoRA.
enabled_9BOOLEANtrueSlot 9: enable/disable this LoRA. --- Слот 9: включить/выключить эту LoRA.
lora_9COMBO__none__Slot 9: LoRA file from models/loras. '__none__' = empty slot. --- Слот 9: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_9FLOAT1.00-10–10Slot 9: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 9: сила для MODEL (unet/dit) части LoRA.
clip_strength_9FLOAT1.00-10–10Slot 9: strength for the CLIP (text encoder) part of the LoRA. --- Слот 9: сила для CLIP (текстовый энкодер) части LoRA.
enabled_10BOOLEANtrueSlot 10: enable/disable this LoRA. --- Слот 10: включить/выключить эту LoRA.
lora_10COMBO__none__Slot 10: LoRA file from models/loras. '__none__' = empty slot. --- Слот 10: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_10FLOAT1.00-10–10Slot 10: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 10: сила для MODEL (unet/dit) части LoRA.
clip_strength_10FLOAT1.00-10–10Slot 10: strength for the CLIP (text encoder) part of the LoRA. --- Слот 10: сила для CLIP (текстовый энкодер) части LoRA.
enabled_11BOOLEANtrueSlot 11: enable/disable this LoRA. --- Слот 11: включить/выключить эту LoRA.
lora_11COMBO__none__Slot 11: LoRA file from models/loras. '__none__' = empty slot. --- Слот 11: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_11FLOAT1.00-10–10Slot 11: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 11: сила для MODEL (unet/dit) части LoRA.
clip_strength_11FLOAT1.00-10–10Slot 11: strength for the CLIP (text encoder) part of the LoRA. --- Слот 11: сила для CLIP (текстовый энкодер) части LoRA.
enabled_12BOOLEANtrueSlot 12: enable/disable this LoRA. --- Слот 12: включить/выключить эту LoRA.
lora_12COMBO__none__Slot 12: LoRA file from models/loras. '__none__' = empty slot. --- Слот 12: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_12FLOAT1.00-10–10Slot 12: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 12: сила для MODEL (unet/dit) части LoRA.
clip_strength_12FLOAT1.00-10–10Slot 12: strength for the CLIP (text encoder) part of the LoRA. --- Слот 12: сила для CLIP (текстовый энкодер) части LoRA.
enabled_13BOOLEANtrueSlot 13: enable/disable this LoRA. --- Слот 13: включить/выключить эту LoRA.
lora_13COMBO__none__Slot 13: LoRA file from models/loras. '__none__' = empty slot. --- Слот 13: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_13FLOAT1.00-10–10Slot 13: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 13: сила для MODEL (unet/dit) части LoRA.
clip_strength_13FLOAT1.00-10–10Slot 13: strength for the CLIP (text encoder) part of the LoRA. --- Слот 13: сила для CLIP (текстовый энкодер) части LoRA.
enabled_14BOOLEANtrueSlot 14: enable/disable this LoRA. --- Слот 14: включить/выключить эту LoRA.
lora_14COMBO__none__Slot 14: LoRA file from models/loras. '__none__' = empty slot. --- Слот 14: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_14FLOAT1.00-10–10Slot 14: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 14: сила для MODEL (unet/dit) части LoRA.
clip_strength_14FLOAT1.00-10–10Slot 14: strength for the CLIP (text encoder) part of the LoRA. --- Слот 14: сила для CLIP (текстовый энкодер) части LoRA.
enabled_15BOOLEANtrueSlot 15: enable/disable this LoRA. --- Слот 15: включить/выключить эту LoRA.
lora_15COMBO__none__Slot 15: LoRA file from models/loras. '__none__' = empty slot. --- Слот 15: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_15FLOAT1.00-10–10Slot 15: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 15: сила для MODEL (unet/dit) части LoRA.
clip_strength_15FLOAT1.00-10–10Slot 15: strength for the CLIP (text encoder) part of the LoRA. --- Слот 15: сила для CLIP (текстовый энкодер) части LoRA.
enabled_16BOOLEANtrueSlot 16: enable/disable this LoRA. --- Слот 16: включить/выключить эту LoRA.
lora_16COMBO__none__Slot 16: LoRA file from models/loras. '__none__' = empty slot. --- Слот 16: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_16FLOAT1.00-10–10Slot 16: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 16: сила для MODEL (unet/dit) части LoRA.
clip_strength_16FLOAT1.00-10–10Slot 16: strength for the CLIP (text encoder) part of the LoRA. --- Слот 16: сила для CLIP (текстовый энкодер) части LoRA.
enabled_17BOOLEANtrueSlot 17: enable/disable this LoRA. --- Слот 17: включить/выключить эту LoRA.
lora_17COMBO__none__Slot 17: LoRA file from models/loras. '__none__' = empty slot. --- Слот 17: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_17FLOAT1.00-10–10Slot 17: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 17: сила для MODEL (unet/dit) части LoRA.
clip_strength_17FLOAT1.00-10–10Slot 17: strength for the CLIP (text encoder) part of the LoRA. --- Слот 17: сила для CLIP (текстовый энкодер) части LoRA.
enabled_18BOOLEANtrueSlot 18: enable/disable this LoRA. --- Слот 18: включить/выключить эту LoRA.
lora_18COMBO__none__Slot 18: LoRA file from models/loras. '__none__' = empty slot. --- Слот 18: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_18FLOAT1.00-10–10Slot 18: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 18: сила для MODEL (unet/dit) части LoRA.
clip_strength_18FLOAT1.00-10–10Slot 18: strength for the CLIP (text encoder) part of the LoRA. --- Слот 18: сила для CLIP (текстовый энкодер) части LoRA.
enabled_19BOOLEANtrueSlot 19: enable/disable this LoRA. --- Слот 19: включить/выключить эту LoRA.
lora_19COMBO__none__Slot 19: LoRA file from models/loras. '__none__' = empty slot. --- Слот 19: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_19FLOAT1.00-10–10Slot 19: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 19: сила для MODEL (unet/dit) части LoRA.
clip_strength_19FLOAT1.00-10–10Slot 19: strength for the CLIP (text encoder) part of the LoRA. --- Слот 19: сила для CLIP (текстовый энкодер) части LoRA.
enabled_20BOOLEANtrueSlot 20: enable/disable this LoRA. --- Слот 20: включить/выключить эту LoRA.
lora_20COMBO__none__Slot 20: LoRA file from models/loras. '__none__' = empty slot. --- Слот 20: файл LoRA из models/loras. '__none__' = пустой слот.
model_strength_20FLOAT1.00-10–10Slot 20: strength for the MODEL (unet/dit) part of the LoRA. --- Слот 20: сила для MODEL (unet/dit) части LoRA.
clip_strength_20FLOAT1.00-10–10Slot 20: strength for the CLIP (text encoder) part of the LoRA. --- Слот 20: сила для CLIP (текстовый энкодер) части LoRA.
clipoptCLIPOptional input CLIP. If not connected, clip strengths are ignored and the CLIP output passes through as-is. --- Опциональный входной CLIP. Если не подключён, силы clip игнорируются, выход CLIP проходит как есть.

Outputs (2)

NameTypeDescription
modelMODEL
clipCLIP