๐ฅ๐ Load Lora with Path
Load a LoRA by string path, not a dropdown
- model
- clip
- MODEL
- CLIP
- STRING
The stock LoraLoader makes you pick from a dropdown. That's fine until you want the LoRA chosen dynamically - by a string that some other node produced. Maybe you built the path from a variable, split it out of a text file, or got it from one of this pack's selector nodes. Load Lora with Path takes the file path as a plain string input and applies the LoRA from there. That's the whole difference, and it's the thing that lets you automate LoRA switching instead of clicking a menu.
If you're doing anything programmatic - looping over a folder, choosing a LoRA based on a condition, feeding paths from a config - this is the loader you want.
How it works
Same mechanism as any LoRA loader: it patches your MODEL (and optionally your CLIP) with the LoRA's weights at the strengths you set, then passes the patched pair downstream to your sampler and encoder. The only twist is how it finds the file - a string path rather than a picker. Strength works the way it always does: 1.0 is full effect, lower dials the concept back, and the KB's LoRA notes are worth remembering here - a LoRA that "bleeds" its style even at low strength is usually over-trained, and the fix is on the training side, not here. This node just applies whatever weight you ask for.
The inputs and outputs that matter
model(MODEL, required) - the model to patch.lora_path(STRING, required) - the path to the LoRA file. This is the point of the node; feed it a string from a variable, a selector, or a text split.strength_model(FLOAT, default 1.0) - how hard the LoRA hits the model. The main knob. Range is wide (it'll accept negatives and big values), but you'll live between roughly 0 and 1.strength_clip(FLOAT, default 1.0) - how hard it affects the text-encoder side. Usually kept equal tostrength_model; drop it if the LoRA is messing with prompt adherence.clip(CLIP, optional) - pass it if the LoRA also trains text-encoder weights (most do). Leave it off for a model-only patch.
Outputs: MODEL, CLIP, and a STRING (the path it used, handy for logging or chaining). Wire the MODEL and CLIP onward exactly as you would from any LoRA loader.
How to install it
ComfyUI Manager โ Bjornulf_custom_nodes โ install โ restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/justUmen/Bjornulf_custom_nodes
pip install -r Bjornulf_custom_nodes/requirements.txt
then restart. No special dependency - it uses ComfyUI's own LoRA machinery.
Common issues & troubleshooting
"File not found" / the LoRA silently does nothing. A path node lives or dies by the exact string. Check whether it expects an absolute path or one relative to your models/loras folder, watch for OS slash direction (the author's on Linux and uses forward slashes), and make sure the extension is included. A typo'd path won't error loudly - it just won't apply.
The LoRA is way too strong or fries the image. Pull strength_model down. If prompt following breaks specifically, lower strength_clip while leaving the model strength up.
Style bleeds in even at low strength. Per the LoRA-training KB, that's an over-trained LoRA, not a loader problem - the weights carry too hard. Lower strength helps a little; a better-trained (lower rank / lower LR) LoRA is the real fix.
I want to stack several. Chain multiple Load Lora with Path nodes modelโmodel, clipโclip, or look at the pack's Combine Loras / selector nodes if you want a whole stack managed in one place.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | โ | |
| lora_path | STRING | โ | |
| strength_model | FLOAT | 1.00-100โ100 | โ |
| strength_clip | FLOAT | 1.00-100โ100 | โ |
| clipopt | CLIP | โ |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | โ |
| CLIP | CLIP | โ |
| STRING | STRING | โ |