Nodes/nd-super-nodes/ND Super LoRA Loader
ComfyUI Node

ND Super LoRA Loader

ND Super LoRA Loader

By HenkDz·Created 11 months ago·Updated 3 months ago· 46
ND Super LoRA Loader
  • model
  • clip
  • MODEL
  • CLIP
  • TRIGGER_WORDS
lora_bundle

Your workflow is four LoRAs deep by now - character, style, a quality boost, a detail one - and chaining that many LoraLoader nodes in series is where tidy graphs go to die. ND Super LoRA Loader collapses the whole stack into one node: you add rows, toggle each LoRA on and off, dial model and CLIP strength per row, and it applies them all in order. Think of it as rgthree's Power Lora Loader with a fresh coat of UI paint - the author literally built an enhanced version of Power Lora Loader first, couldn't get it merged upstream, and shipped this instead.

What it actually is

A single replacement for your whole LoRA chain. A LoRA is a small patch on the checkpoint's weights - stackable, weight-adjustable, and useless without a compatible model (concepts docs put it bluntly: an Illustrious LoRA won't run on Flux). This node wires that stack together. Connect your checkpoint's MODEL and (optionally) CLIP in one side, hit "➕ Add LoRA," multi-select as many files as you like, and the node keeps them as a list with per-row enable toggles, model/CLIP strength, trigger words, and tag groups. It also detects duplicates so you can't add the same LoRA twice, and you can save the whole stack as a named template to reload later.

It's the pack's flagship and also the only node in the pack (the other half is the ND Super Selector overlays that bolt a fancy file picker onto ComfyUI's stock loader nodes - separate feature, same install).

How it works

The frontend does the heavy UI work; the backend is a short, honest loop. When you run the graph, the node serializes your LoRA rows into a JSON array and feeds it in through the lora_bundle input (a hidden STRING you never touch). The backend parses it, skips disabled rows, resolves each file against ComfyUI's loras folder, and calls the stock LoraLoader for each one in order, stacking them onto the same MODEL and CLIP. That's it - no custom math, which is exactly why it stays compatible across model architectures.

Trigger words get a bit more clever. The node SHA256-hashes each LoRA file and looks it up on CivitAI's public by-hash endpoint - no API key needed - and falls back to the trigger words baked into the safetensors metadata if the file isn't on CivitAI. Results get concatenated and handed out through the TRIGGER_WORDS output so you can wire them into your prompt.

The inputs that matter

  • model (required) - your checkpoint's MODEL. Without it the node returns everything unchanged.
  • clip (optional) - hook up your CLIP or the per-LoRA CLIP strength silently does nothing (the code warns and zeroes it).
  • lora_bundle - the JSON the UI builds. Ignore it; it's plumbing.

Outputs: MODEL and CLIP (patched, ready for your sampler) and TRIGGER_WORDS (comma-joined string).

Install

ComfyUI Manager → Install Custom Nodes → search "nd-super-nodes," or:

cd ComfyUI/custom_nodes
git clone https://github.com/HenkDz/nd-super-nodes.git nd-super-nodes

Then restart ComfyUI. The README also recommends grabbing a release ZIP and extracting it into custom_nodes for a source-free install. It's light: the only real dependency is aiohttp for the CivitAI lookups - no model files, no extra torch packages. Updates ship via update.ps1 (Windows) or update.sh (Linux/macOS), or a daily in-app toast.

Where people get burned

The classic gripe, from the release thread: every trigger-word refresh button stays orange and the console spits Error calculating hash for '...' - usually because your LoRAs live in a path declared in extra_model_paths.yaml rather than the default models/loras. Update the pack, restart ComfyUI, then hard-refresh the browser (Ctrl+F5 / Ctrl+Shift+R); the author fixed exactly this in an early patch and it needs a cache-busting refresh to pick up. Two other real gotchas: forget to connect CLIP and the CLIP-strength halves of your LoRAs are silently ignored, and a LoRA file the node can't resolve gets skipped without failing your whole run - so a missing LoRA means wrong output, not an error. And one honest caveat from the comments: unlike Power Lora Loader, this node doesn't show LoRA preview thumbnails yet. If you live on previews, that's the thing to miss.

Categoryloaders

Inputs (3)

NameTypeDefaultDescription
modelMODEL
clipoptCLIP
lora_bundleoptSTRING

Outputs (3)

NameTypeDescription
MODELMODEL
CLIPCLIP
TRIGGER_WORDSSTRING