LoRA Loader Pro
Every LoRA in one node, with per-LoRA clip strength
- model
- clip
- model
- clip
- stack_info
LoRA Loader Pro (class AtomDynamicLoRANode) is the all-in-one LoRA loader from the Atom_AI pack. It's the sibling of the stack system: instead of chaining separate LoRA Stack nodes and applying them at the end, this single node grows its own list of slots via + / − buttons, and each slot gets its own LoRA, model strength, clip strength, and an enable toggle.
What makes it "Pro" relative to the pack's plain LoRA Loader is the separate clip strength per slot. That's the one setting most people never touch, and the difference between this node and the simple one.
How it works
The Python side of the node is almost embarrassingly simple: it takes your model and clip plus a JSON string, parses it, and applies each LoRA with ComfyUI's stock load_lora_for_models. The clever part is the front end. A small JavaScript extension in the pack hides the JSON input, renders the +/− buttons and per-slot widgets, and keeps them in sync by serializing your slots into that JSON string. When you save the workflow, the JSON is saved with it; when you load it, the extension reads it back and rebuilds your slots.
That JSON is why the input list in the schema looks so bare - model, clip, and a single loras_json string. You'll never type JSON yourself; the UI does it. But knowing it's there explains two quirks: the node always re-runs (it's marked as always-changed, so ComfyUI never tries to cache its output), and the slot dropdowns are populated at startup by asking ComfyUI for the lora list rather than reading a static config.
Inputs and outputs
- model and clip - from your checkpoint, exactly as with a normal LoRA loader.
- loras_json - the hidden JSON widget the UI manages. Ignore it; just know it's how your slots persist.
Per slot (in the UI): a lora dropdown, model str. and clip str. sliders (−10 to 10, defaults 1.0), and an enabled toggle.
Outputs are model and clip, which feed your KSampler and CLIP Text Encode, plus a stack_info string that logs what was loaded and at what strengths - a handy after-action report, and optional to wire.
Installing it
Install the Atom_AI pack once. ComfyUI Manager: search Atom_AI, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/AtomAI-GR/Atom_AI
Restart after cloning. No requirements.txt, no model downloads - the JavaScript extension and ComfyUI's own LoRA machinery cover everything. It's under Atom_AI ▸ LoRA.
Common issues
- The +/− buttons don't appear. The node's UI is driven by the pack's front-end extension. If the web assets didn't load (a bad install, or a browser tab that predates the restart), you'll see the bare node with just the JSON widget - reinstall, hard-refresh the browser tab, and make sure you restarted ComfyUI after cloning.
- "My LoRA does nothing." The node is doing what it's told; the problem is upstream. A LoRA trained for SDXL won't move a Flux checkpoint, and many LoRAs need their trigger word typed in the prompt. Test the LoRA alone, strength 1.0, fixed seed, before suspecting the loader.
- Stacked with too many LoRAs. Loader can't fix that either - more LoRAs means more chance they fight each other. Dial it back to two and rebuild.
The honest comparison: rgthree's Power Lora Loader is the community heavyweight here - same one-node multi-LoRA idea, plus trigger-word lookup and CivitAI integration. This is the lighter alternative: no external lookups, nothing to configure beyond the slots. If you just want several LoRAs in one tidy node with proper clip control, it does the job without the ceremony.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| loras_json | STRING | [] | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| stack_info | STRING | — |