DiffSynth: LoRA Load
LoRA Load — with alpha instead of strength, and no ComfyUI lora folder
- pipe
- lora_config
- pipe
Two things surprise everybody about this node. It takes the LoRA as a ModelConfig, not as a filename from ComfyUI/models/loras. And the strength knob is called alpha.
Both are consequences of the pack being a thin skin over DiffSynth-Studio: LoRAs are loaded into the live pipeline object rather than patched onto a UNet that ComfyUI's own loader handed you.
What it does
You feed it a pipe and a lora_config. The node looks up the target module inside the already-loaded pipeline, calls load_lora on it with your alpha, and returns the same pipe - mutated in place. That last part matters: it isn't a new model, it's the same object with an adapter attached, and everything downstream sees the adapter.
The four inputs, in order of how much they'll cost you:
pipe(required) - from a Loader, or from a previous LoRA Load / LoRA Clear in the chain.lora_config(required) - aDIFFSYNTH_MODEL_CONFIG, i.e. a ModelConfig node. This is the whole idiom: repo plus file pattern. In the pack's own Qwen-Image-Edit workflow it'slightx2v/Qwen-Image-2512-LightningwithQwen-Image-2512-Lightning-4steps-V1.0-bf16.safetensors. It doesn't have to be a repo file though - leavemodel_idempty on the ModelConfig and setpathto a local.safetensorsyou already have.module(optional, string, defaultdit) - which component of the pipeline the adapter attaches to.ditis the diffusion transformer, and that's where almost every LoRA goes. Get the name wrong and the node raises rather than quietly doing nothing, which is the right behavior and still annoying.alpha(optional, float, default1.0, range 0–10) - the adapter strength. This is your "LoRA weight 0.8" from every other node, renamed. The range goes to 10 rather than the 2 you're used to, which is occasionally useful and mostly a trap.
Chaining them
You stack LoRAs by chaining nodes, because each one returns a pipe you can hand to the next:
Loader → LoRA Clear → LoRA Load → LoRA Load → Inference
That's the shape the README documents, and while the LoRA Clear looks redundant on a fresh pipeline, leaving it in costs nothing and saves you the one time you were re-running a graph after changing which adapters were in the chain.
Install
ComfyUI Manager, search DiffSynth-ComfyUI, install, restart. Or:
pip install git+https://github.com/modelscope/DiffSynth-Studio.git
cd ComfyUI/custom_nodes && git clone https://github.com/modelscope/DiffSynth-ComfyUI.git
No extra model downloads for the node - but the LoRA you point it at will be fetched on first execution, like any other ModelConfig.
Where people get burned
Hunting for it in the LoRA dropdown. There isn't one. If your LoRA is already sitting in ComfyUI/models/loras, either move it somewhere the pack can reach and use path, or upload it to a repo and reference it by model_id + filename.
Expecting it to behave like the KSampler's LoraLoader. It doesn't return a MODEL for ComfyUI's sampler. The adapter lives inside the DiffSynth pipeline, and only the DiffSynth Inference node for that pipeline benefits from it.
Forgetting that it's stateful. Load two LoRAs and both are attached. The cleanup path is the separate LoRA Clear node, which drops everything at once rather than one at a time.
Step-distilled LoRAs at alpha 1.0 on 30-step graphs. Lightning, distilled, and speed LoRAs are trained against a different inference regime. The pack's templates pair alpha 1.0 with the matching step count and CFG - copy the template's numbers rather than dragging your old habits across.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| pipe | DIFFSYNTH_PIPE | — | |
| lora_config | DIFFSYNTH_MODEL_CONFIG | — | |
| moduleopt | STRING | dit | — |
| alphaopt | FLOAT | 1.00–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipe | DIFFSYNTH_PIPE | — |