Nodes/lorasubdirectory/Lora Load from Subdirectory
ComfyUI Node

Lora Load from Subdirectory

Your LoRA folder is a wall of text — pick a subdirectory instead

By Hax0r778·Created about a year ago·Updated about a year ago· 1
Lora Load from Subdirectory
  • model
  • clip
  • MODEL
  • CLIP
lora_directory
strength_model1.00
strength_clip1.00

If you've ever opened ComfyUI's stock Lora Loader on a big collection, you know the pain. Everything in models/loras lands in one flat alphabetical dropdown, with subfolder names baked into the entry - cartoon/character_x_v2.safetensors, flux/style/y2k_10.safetensors - so finding the one you want means scrolling past three hundred entries you don't. This node is the standard Lora Loader with one extra dropdown in front: pick the subdirectory first, and the LoRA list shrinks to just that folder's files. Two 20-item lists instead of one 400-item list. That's the entire pitch, and it's a good one.

It looks almost identical to stock, which is deliberate. Same MODEL and CLIP sockets, same two strength sliders, same wiring into the KSampler. The only addition is the subdirectory field on top. The author's framing in the README is exactly right: it exists so you don't have to scroll or search through a long list.

How it works

At node-build time it walks your loras folder tree and collects every directory that contains at least one .safetensors file, sorts the list, and feeds it to the lora_directory dropdown. Then it builds a small dropdown per subdirectory holding that folder's LoRAs. Pick a directory, and the node reads the matching dropdown, resolves the file path, and applies it through ComfyUI's own load_lora_for_models - the same code path the stock loader uses. So the application is stock behavior; only the picking is filtered. The one thing it won't do, which the author calls out in the README: the subdirectory can't be specified as a string, because the dropdown's array type is what makes the list populate at all.

The inputs that matter

  • model (MODEL) - your checkpoint's output. Required.
  • clip (CLIP) - needed for SD1.5/SDXL LoRAs that patch the text encoder. Wire from the Checkpoint Loader.
  • lora_directory - the new dropdown. This is the whole reason the node exists.
  • strength_model (default 1.0, −100 to 100) - how hard to apply to the diffusion model. Negative inverts the effect.
  • strength_clip (default 1.0) - same, for the CLIP side. 0.5–0.8 is a common starting point for style LoRAs rather than the default 1.0.

Outputs are MODEL and CLIP, feeding straight into the KSampler like any loader. Stack several of these nodes in a row and each hands the modified model down the line.

Install

Via ComfyUI Manager, search "lorasubdirectory" (the pack title), install, restart. Or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/Hax0r778/lorasubdirectory

Then restart ComfyUI. That's genuinely it - the project declares zero pip dependencies, downloads no models, and has no install script.

The honest part

Time for full disclosure, because this is a beginner's page and you'd waste an afternoon here otherwise. This pack is brand new - a single initial commit, version 1.0.1, essentially zero community footprint (no measurable search impressions, no reddit signal) - and the code as shipped has bugs in the execution path. The dropdowns populate fine, but the first time you actually queue the graph you'll hit AttributeError: 'LoraSubdirectory' object has no attribute 'loaded_lora'. The author's LoRA-caching code reads a variable that is never initialized in __init__. There's also a kwars typo (should be kwargs) in the "skip early when both strengths are zero" fast path. As of this writing the node won't complete a run.

The idea is sound and the pattern is worth stealing; the implementation isn't finished. Your options: patch nodes.py yourself (initializing self.loaded_lora = None in __init__ fixes the first crash), or reach for a loader that already works - rgthree's Power Lora Loader is the one the community actually swears by and stacks multiple LoRAs in a single node. And remember, stock LoraLoader already shows subfolder-prefixed names; this pack just makes the list shorter. Which is the right fix for the right annoyance - once it actually runs.

Categoryloaders

Inputs (5)

NameTypeDefaultDescription
modelMODELThe diffusion model the LoRA will be applied to.
clipCLIPThe CLIP model the LoRA will be applied to.
lora_directoryCOMBOThe subdirectory to populate the dropdown with
strength_modelFLOAT1.00-100–100How strongly to modify the diffusion model. This value can be negative.
strength_clipFLOAT1.00-100–100How strongly to modify the CLIP model. This value can be negative.

Outputs (2)

NameTypeDescription
MODELMODELThe modified diffusion model.
CLIPCLIPThe modified CLIP model.