Nodes/Rikannodes/Rikan Multi LoRA Loader
ComfyUI Node

Rikan Multi LoRA Loader

Stack a dozen LoRAs in one node, toggle them per-run, and pull their Civitai info without leaving ComfyUI

By rikanrino·Created 4 months ago·Updated 4 months ago· 1
Rikan Multi LoRA Loader
  • model
  • clip
  • model
  • clip
lora_data[]

If you've ever built a character workflow, you know the ritual: three, five, eight LoraLoader nodes stacked in a chain, each with its own strength slider, each eating graph space, and half of them you toggle on and off between runs by manually switching strengths to 0. Rikan Multi LoRA Loader collapses that whole pile into a single node with one row per LoRA: an enable checkbox, a file picker, and a strength slider. Turn a LoRA off with a click instead of zeroing a float.

The rows are the point. Each one has enable, name, and model strength, and you can have as many as you want. The node serializes the rows into JSON internally and loads each enabled, non-zero LoRA onto a cloned model (and clip, if you provide one) - so it works just like a chain of stock loaders, minus the chain. This is the node I'd reach for over a stack of stock nodes in any workflow where LoRA count changes between runs, which is most of them.

The trick it pulls off

There's a genuinely nice extra hiding in the UI: a Civitai info popup. Pick a LoRA and the node computes its full SHA256, queries Civitai's model-versions-by-hash API, and shows you the model name, base model, the trained trigger words (click to copy), and preview images - all inside the node. No alt-tabbing to the Civitai site to figure out what base a LoRA is for or what its trigger words are. The lookup is cached per run session, and it needs internet; if it can't reach Civitai it just returns "not found" and the row still works fine.

The few inputs that matter

  • model - your checkpoint/diffusion model in.
  • lora_data - the JSON the UI rows generate. In normal use you never touch this; it's the transport.
  • clip (optional) - connect it if your LoRAs have text-encoder components and you're encoding prompts after this point. If you're doing video (Wan, LTX) or don't need CLIP, you can genuinely leave it unplugged - that's why it's optional, and it's rarer than it should be in LoRA loaders.

Outputs: patched model and clip.

Where people get burned

  • The name must match a file in models/loras. The dropdown is populated from that folder, but if a row references a missing file the node logs a warning and skips it. Check the console when a LoRA seems to do nothing.
  • Strength 0 skips the load entirely - which is actually a feature: it's the cheap way to disable a row.
  • This is a loader, not a gate. Every LoRA here applies to the whole clip, at the strength you set. If you want a LoRA that fades in and out during a video by segment, that's the pack's Prompt Relay Multi LoRA Gate, not this node.

Installing

The pack-wide routine: ComfyUI Manager → search Rikannodes, or:

cd ComfyUI/custom_nodes
git clone https://github.com/rikanrino/Rikannodes
pip install -r Rikannodes/requirements.txt

Restart, then find it under Rikannodes in the node menu. The pack declares only word2number as a dependency, uses ComfyUI's newer extension API (so update ComfyUI if nodes don't appear), and its README is a bare node list. It's a young pack with no real community footprint yet - but for stacking and toggling LoRAs, this node already earns its place.

CategoryRikannodes

Inputs (3)

NameTypeDefaultDescription
modelMODEL
lora_dataSTRING[]
clipoptCLIP

Outputs (2)

NameTypeDescription
modelMODEL
clipCLIP