Load LoRA (Model and CLIP)
The classic loader for SD/SDXL-era LoRAs
- model
- clip
- MODEL
- CLIP
This is the original LoRA loader, and it's a small history lesson in node form. Load LoRA (Model and CLIP) takes your diffusion model and your CLIP text encoder, applies the LoRA to both, and hands back both, patched. That's why it has two strength dials where its modern cousin has one. It was built for the era when LoRAs routinely patched the text encoder - which is exactly the SD 1.5 and SDXL era, and that's still where it belongs today.
Why two strengths?
A LoRA trained for an SD/SDXL checkpoint often carries weights for two different targets: the diffusion model (which controls how latents are denoised - style, concept, character appearance) and the CLIP text encoder (which controls how the prompt is understood - how a trigger word is interpreted). The two jobs are independent, so the node gives you:
strength_model- how strongly the model gets patched (default 1.0).strength_clip- how strongly the CLIP encoder gets patched (default 1.0).
Both can go negative, which is a real trick: a negative strength_clip can suppress a LoRA's prompt-side behavior while keeping its model-side effect, which is occasionally exactly what you want. And both inputs, model and clip, are required - if you don't feed it a CLIP wire, the node won't run. That's the single biggest difference from Load LoRA (Model Only), which needs just the model. If you're on Flux or any modern DiT base, you almost certainly want the model-only version instead; those LoRAs don't touch a CLIP encoder, and this node's second dial is just dead weight.
How it works
Files come from ComfyUI/models/loras. The node loads the .safetensors, patches the model and the CLIP, and returns the modified pair - and, like the model-only loader, it chains. Link the MODEL output into the next LoRA node's model input, and the patched CLIP into the next one's clip, and you've stacked multiple LoRAs cleanly. Everything about the mechanism is the same low-rank patch story: it's a small adapter frozen onto a specific base architecture, it generates nothing by itself, and it will not work across architectures.
What trips people up
- SDXL/Pony/Illustrious cross-compatibility is a lie, mostly. All three share code, so their LoRAs are selectable in the dropdown, but they're often not cross-compatible. Match the LoRA to the exact family it was trained on.
- CLIP skip. Anime-family LoRAs (Pony, Illustrious, NoobAI) usually expect CLIP skip 2. In ComfyUI that's Clip Set Last Layer set to −2 before the text encode node - and worth knowing: SDXL-class models already condition on the penultimate CLIP layer by default, so "set skip 2" often just means "don't set it to 1."
- Trigger words and strength. Still the top two causes of "LoRA not working": missing trigger word in the prompt, and a weight that's too high (SDXL-era rule of thumb is 0.5–0.8, but always check the model page).
It ships with ComfyUI core - no install. If your workflow is SD 1.5 or SDXL and the LoRA page mentions strength_clip or "model and CLIP," this is your node. On anything newer, reach for Load LoRA (Model Only) and don't look back.
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 | The name of the LoRA. | |
| strength_model | FLOAT | 1.00-100–100 | How strongly to modify the diffusion model. This value can be negative. |
| strength_clip | FLOAT | 1.00-100–100 | How strongly to modify the CLIP model. This value can be negative. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | The modified diffusion model. |
| CLIP | CLIP | The modified CLIP model. |