LoRA Loader + Name
The loader that tells you which file it used
- model
- clip
- MODEL
- CLIP
- LORA_FILENAME
- LORA_BASENAME
ComfyUI's built-in LoRA Loader gives you two outputs: MODEL and CLIP. It knows perfectly well which file you selected - and refuses to tell you.
LoRA Loader + Name is the same loader with two extra sockets: the filename and the basename of the LoRA it just applied. If you name your outputs, write run summaries, or keep a manifest of what went into an image, that's the whole reason to swap the node.
The mechanism
The important thing here is that it isn't a reimplementation. It calls the same core ComfyUI functions the built-in loader does - folder_paths.get_full_path_or_raise, comfy.utils.load_torch_file, and comfy.sd.load_lora_for_models - so caching behavior and strength_model / strength_clip semantics match core exactly, including the detail that strength_clip = 0 genuinely switches the CLIP half off. Pack authors who roll their own LoRA application get this subtly wrong all the time. This one doesn't.
There's one nice shortcut: if both strengths are 0, the node returns your model and clip untouched and never touches the file on disk. That's a clean way to A/B a LoRA without editing the graph - mute the effect rather than bypassing the node.
The filename output isn't a string echo of the dropdown either. It's derived from the path ComfyUI actually resolved, so what you get is the real file on disk, including subfolder if you use one:
- LORA_FILENAME -
style/klein_softskin_v2.safetensors - LORA_BASENAME -
klein_softskin_v2(directory and extension stripped)
Inputs and outputs
model(MODEL) - the diffusion model to patch.clip(CLIP) - the text encoder to patch.lora_name- dropdown, populated from yourmodels/lorasfolder as usual.strength_model(FLOAT, default 1.0, range ±100) - LoRA weight on the diffusion model.strength_clip(FLOAT, default 1.0, range ±100) - weight on the text encoder.- MODEL, CLIP - the patched pair, exactly as the core node emits them.
- LORA_FILENAME (STRING), LORA_BASENAME (STRING).
What you'd wire the name outputs into
Filenames. Feed LORA_BASENAME into a filename-prefix setup or this pack's Filename Builder so every output carries the LoRA it was made with. Given how much of this ecosystem's workflow is "which LoRA was this?", that's the killer use.
Run summaries. Workflow Status takes a lora_name input and prints LoRA: <value> as its first line. Two wires and your run log names its own settings.
Trigger words. The basename is a sane default for a Prompt Template's trigger - many people name their LoRA file after its trigger token precisely so this works.
Install
Manager → search Orel's Nodes → Install → restart → hard-refresh the browser.
cd ComfyUI/custom_nodes
git clone https://github.com/DarkOrel/Orels-Nodes.git orels-nodes
python -m pip install -r orels-nodes/requirements.txt
Restart and hard-refresh. Nothing here needs the requirements file - that's huggingface_hub and filelock for the pack's download nodes.
Gotchas
Architecture lock is still on you. The output name is informational. The node will happily apply a Flux LoRA to an SDXL checkpoint and hand you back a patched model that generates noise. A Flux.2 Klein LoRA does not run on SDXL and vice versa, and nothing in the loader checks.
Chaining works, but the name reflects the last loader. Stack two of these and only the second one's filename output is meaningful - if you want both names, take the name output from each node separately rather than from the end of the chain.
Bypassing the node mutes the name too. If you bypass a node to compare with/without a LoRA, its outputs go dead, so anything you wired the basename into will error or go empty. Use the 0/0 strength trick if you need the graph to stay intact.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | The diffusion model the LoRA will be applied to. | |
| clip | CLIP | The CLIP model the LoRA will be applied to. | |
| lora_name | COMBO | 0 options: | |
| strength_model | FLOAT | 1.00-100–100 | — |
| strength_clip | FLOAT | 1.00-100–100 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| LORA_FILENAME | STRING | — |
| LORA_BASENAME | STRING | — |