Nodes/Comfyui_PDuse/PD Universal Lora Loader
ComfyUI Node

PD Universal Lora Loader

A LoRA loader that also tells you what it loaded

By 7BEII·Created 2 years ago·Updated 15 days ago· 53
PD Universal Lora Loader
  • model
  • clip
  • MODEL
  • CLIP
  • lora_name
  • strength_model
  • strength_clip
lora_name
strength_model1.00
strength_clip1.00

This is the pack's take on the stock LoRA loader, and the difference is worth one paragraph: the core LoraLoader in ComfyUI requires both model and clip to be wired in. PD's version makes both optional, and on top of that it echoes the LoRA name and both strengths back out as real sockets. So you can wire a LoRA into a workflow, then feed its name straight into a filename node or a metadata note - no separate text box to keep in sync. It's the same style the whole PDuse pack has: tiny ergonomic upgrades wrapped around boring infrastructure.

If you're new to LoRAs: they're small weight patches that restyle or re-identify a model without retraining it, and the whole "styles are LoRAs" economy depends on loading them cleanly. This node loads them exactly like core does - it literally subclasses ComfyUI's own LoraLoader - so there's no behavior change in what gets applied, just in how the plumbing behaves.

How it works

The clever bit is the "pure info mode." If you wire model but not clip, it calls the parent loader, which handles a missing CLIP fine. If you wire nothing into model, it skips loading entirely and returns None for MODEL and CLIP - but still passes the lora_name, strength_model, and strength_clip outputs through. Strengths get rounded to two decimals on the way out. That mode is great for building a "metadata bus": you can have a stage that names a LoRA without forcing a model through it, then feed the name into your save prefix.

Inputs and outputs

  • lora_name - the dropdown of LoRAs from your models/loras folder (tooltip: "The name of the LoRA.").
  • strength_model and strength_clip - how hard the LoRA pushes on the diffusion model and the text encoder; both default to 1, both go negative, which is how people "subtract" a style.
  • model / clip (optional) - the unmodified model and CLIP.
  • Outputs: MODEL, CLIP, then lora_name (STRING), strength_model (FLOAT), strength_clip (FLOAT).

Installing it

Same pack as everything else here - Comfyui_PDuse. ComfyUI Manager (search "PDuse") or:

cd ComfyUI/custom_nodes
git clone https://github.com/7BEII/Comfyui_PDuse.git
cd Comfyui_PDuse
pip install -r requirements.txt

Restart, and it shows up under PD_Nodes as "PD Universal Lora Loader". No extra model files, no API keys - the pack's dependencies are just numpy, Pillow, torchvision, scipy, opencv-python, and the Excel readers it uses elsewhere. The author's writeups are Chinese-first, so English info lives in the tooltips and the code comments.

The trap

"Info mode" returning None for MODEL is a feature for metadata, not a substitute loader. Anything downstream that needs a MODEL socket will error the moment you skip wiring model - None doesn't count as a model. If you want the LoRA actually applied, wire model in. Also remember the LoRA's own conventions: a Flux LoRA won't run on an SDXL checkpoint, no matter how obliging this loader is.

CategoryPD_Nodes

Inputs (5)

NameTypeDefaultDescription
lora_nameCOMBOThe name of the LoRA.
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.
modeloptMODEL
clipoptCLIP

Outputs (5)

NameTypeDescription
MODELMODELThe modified diffusion model.
CLIPCLIPThe modified CLIP model.
lora_nameSTRING
strength_modelFLOAT
strength_clipFLOAT