Nodes/ComfyUI-QHNodes/🐟Load LoRA (Folder)
ComfyUI Node

🐟Load LoRA (Folder)

Apply a whole folder of LoRAs in one node

By liuqianhonga·Created 2 years ago·Updated about a year ago· 5
🐟Load LoRA (Folder)
  • model
  • models
  • loras
  • strength
lora_folders
filter_text
strength_model1.00
merge_lorasfalse

Stock ComfyUI makes you drop a LoraLoader node per LoRA, wire them in a chain, and set strength on each one individually. Fine for two LoRAs, miserable for ten. LoadLoraFromFolder points at a folder (or several) instead and loads everything in it in one shot - useful if you're running LoRA comparisons, batch-testing a training run's checkpoints, or just tired of building the same chain over and over.

How it works

You give it a base model and a comma-separated list of folder paths (relative to models/loras), and it scans those folders for .safetensors files, clones your base model, and applies each LoRA it finds. There are two modes, controlled by merge_loras: off (the default) gives you a separate model clone per LoRA found, so you end up with a list of models each carrying one LoRA - handy for side-by-side comparisons, since ComfyUI will run everything downstream once per item in that list automatically. On, it folds every LoRA it finds into a single merged model, in folder order.

One thing worth knowing before you reach for this over the stock loader: it only takes a model input, not a clip input. It patches the diffusion model, full stop - there's no CLIP-side LoRA application happening here, unlike the standard LoraLoader. For LoRAs that also carry CLIP weight deltas (a fair number of character and style LoRAs do), you're only getting the model half of the effect.

The inputs and outputs that matter

  • model (MODEL) - your base checkpoint's model output. Cloned internally, so the original is left untouched.
  • lora_folders (STRING) - comma-separated folder names or paths under models/loras, e.g. myLoras, character/style1. Use forward slashes for subpaths.
  • filter_text (STRING) - narrows the file scan by filename, going by its name; leave blank to load everything found.
  • strength_model (FLOAT, -100 to 100, default 1.0) - applies to every LoRA it loads. Negative values invert the LoRA's effect.
  • merge_loras (BOOLEAN, default off) - separate models vs. one merged model, as above.

Outputs: models (a list of MODEL, wire to your sampler chain), loras (a list - the matched LoRA identifiers), and strength (a single FLOAT echoing strength_model back out for convenience wiring elsewhere).

How to install it

Search ComfyUI-QHNodes in ComfyUI Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/liuqianhonga/ComfyUI-QHNodes.git

Restart. This node ships in the pack's main repo - you don't need the --recursive clone or the submodules for this one. No model downloads of its own; it just reads whatever LoRAs you already have in models/loras.

Common issues & troubleshooting

"No LoRA files found." The README states plainly that only .safetensors LoRAs are supported - if your folder has .pt or .ckpt LoRAs, they'll be skipped silently until the whole folder comes up empty. Also double-check the path is relative to models/loras, not an absolute path or something relative to the custom_nodes directory.

Stacking multiple LoRAs gives unpredictable results. This isn't specific to this node - it's how LoRA stacking behaves generally. Interactions between LoRAs (especially ones trained on overlapping concepts) are hard to predict, so if merged output looks broken, drop back to loading one folder at a time with a fixed seed to isolate which LoRA is causing it, then reorder with the larger-effect LoRA first if you see black frames or garbage output.

Memory climbs fast with merge_loras off. Every LoRA found gets its own full model clone - five LoRAs in a folder means five model copies in memory. If you're just testing which one you like, that's the point; if you actually want them combined, flip merge_loras on instead and you'll get one model, not five.

Category🐟QHNodes

Inputs (5)

NameTypeDefaultDescription
modelMODEL
lora_foldersSTRING
filter_textSTRING
strength_modelFLOAT1.00-100–100
merge_lorasBOOLEANfalse

Outputs (3)

NameTypeDescription
modelsMODEL
loras*
strengthFLOAT