๐ฆ RS LoRA Loader
One LoRA loader to replace four of them (it even fetches your trigger words)
- model
- clip
- MODEL
- CLIP
If you stack LoRAs, you know the pain: a chain of four LoraLoader nodes, each with its own strength widget, all of them eating canvas space and none of them remembering anything. RS LoRA Loader collapses that into a single node with a visual list - add LoRAs, drag them into order, toggle them on and off, set strengths, and save the whole stack as a named preset you can reapply later. It's the same "load the stack, don't wire the chain" idea as rgthree's Power Lora Loader, but with a party trick: click the โน๏ธ on any row and it fetches the LoRA's metadata - real name, description, trigger words - straight from CivitAI and caches it locally.
How it works
Under the hood it's still just LoraLoader math. The node keeps your stack as a JSON array in the lora_data input (a string you never touch - the UI's โ Add LoRA button manages it), and on execution it walks that list from top to bottom, patching each LoRA into the model. Which LoRAs apply, and at what strength, is set entirely in the node's interface.
The inputs that matter:
model- your MODEL from a checkpoint or UNET loader. Required.use_clip- a toggle that decides whether the LoRAs are also applied to the CLIP text encoder. Many LoRAs train both halves, so leaving this on is usually right; some model-only LoRAs behave better with it off. It shows up as aCLIP ON / CLIP OFFbutton on the node.lora_data- the JSON stack, managed by the UI. Leave it alone.clip- optional CLIP input, only wired in if you're keepinguse_clipon.
Outputs are MODEL and CLIP, and they wire exactly where a normal LoraLoader's would.
What you'll actually use it for
The drag-to-reorder list is the killer feature. LoRA order matters - stack order changes how strongly each one lands, and the community's rough rule is big/style LoRAs first, fine-tuning ones after. Being able to shuffle that visually and re-run is a workflow changer. The preset system saves enabled state and strengths, so a "character + style" stack you use constantly is two clicks instead of five minutes of re-adding.
The CivitAI metadata popup earns its keep when a LoRA's trigger word isn't in the filename. Instead of opening the model page in a browser, you click โน๏ธ, wait a few seconds for the first fetch, and copy the tag chips straight into your prompt. One caveat: it only knows LoRAs that are on CivitAI. For everything else, the node lets you register tags manually - one per line.
Common issues
- LoRA does nothing - almost always a base-model mismatch (an Illustrious LoRA won't fire on Flux) or a missing trigger word. The metadata popup exists precisely to solve the second one. Anime LoRAs may also need CLIP skip 2 elsewhere in your graph.
- The LoRA list looks stale - you added files to
loras/and they're not showing. Hit theโ๏ธ Update LoRA listbutton; you don't have to restart ComfyUI or reload the browser. - Strength feels wrong - 1.0 is often too strong for character LoRAs; 0.5โ0.8 is the common working range.
Installing it
This node ships in the RaykoStudio pack, so one install gets you all of them. In ComfyUI Manager, search for ComfyUI_RaykoStudio and install; or:
cd ComfyUI/custom_nodes
git clone https://github.com/Raykosan/ComfyUI_RaykoStudio
Then restart ComfyUI. The pack pulls real dependencies (pycairo, opencv-python, scipy, Pillow>=10) - Manager handles those; a manual clone needs pip install -r requirements.txt in the node folder. It's Apache 2.0, tested on ComfyUI 0.15+, Python 3.10+, Torch 2.8+. Raykosan maintains it solo and pushes updates constantly; GitHub issues are the real support channel.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | Input model to apply LoRA | |
| use_clip | BOOLEAN | true | โ |
| lora_data | STRING | [] | โ |
| clipopt | CLIP | Input CLIP to apply LoRA (optional) |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | โ |
| CLIP | CLIP | โ |