Apply LoRA ⚡
One Apply Node for Every LoRA Architecture You Own
- model
- lora_stack
- clip
- model
- clip
Apply LoRA is the workhorse half of FEnodes' two-node LoRA system. The "LoRA Load ⚡" node only assembles a list of LoRAs and their strengths into a single FE_LORA_STACK object; this node is the one that actually takes that stack, patches your model, and hands you a usable MODEL (and optionally CLIP) for the sampler. Think of the pair as the loader being the shopping list and Apply LoRA being the person who cooks.
Where it earns its keep is architecture-agnosticism. It patches whatever MODEL you wire in, whether that's SD 1.5, SDXL, Flux, WAN 2.1/2.2, or HunyuanVideo. In a pack aimed at VFX pipelines that juggle several of those bases, that's a genuinely nice property - one Apply node you don't have to swap out when you move from a Flux workflow to a Wan video workflow.
How it works
Internally it's a thin wrapper around ComfyUI's own comfy.sd.load_lora_for_models, with a twist: two application modes.
- Stack (default) - each LoRA in the stack is applied as a separate sequential patch, with its own per-LoRA model and CLIP strength. This is the safe, standard path and works with any combination of LoRAs.
- Merge - all the weight deltas are pre-scaled by their strengths, summed into a single combined dict, and then applied as one patch. The README's guidance is right: reach for Merge when your LoRAs share a lot of the same target layers (a style LoRA plus a character LoRA that both touch the same cross-attention keys). It's a little faster and can behave better than stacking two patches that fight over the same keys.
The one extra control that matters is strength_scale. It multiplies every per-LoRA strength uniformly - handy when you've built a 6-LoRA stack in the loader and want to bring the whole thing down to 70% without editing six rows. It goes from -10 to 10, which is a reminder that ComfyUI lets you run LoRAs "negatively" (subtracting the delta) if you ever want to try that.
Inputs and outputs that matter
model(required) - the checkpoint model you're patching. This is the only thing you truly need.application_mode-StackorMerge, default Stack.lora_stack(optional) - theFE_LORA_STACKfrom LoRA Load. Note it's optional: if nothing's connected, the node logs "model unchanged" and passes your model straight through. That's a feature, not a bug - it lets you bypass LoRAs by just yanking one wire.clip(optional) - if you want the CLIP patched too. Leave it disconnected and only the model gets modified.strength_scale(optional) - the global multiplier above.
Outputs are model and clip, which you wire straight into your KSampler or into the next node in the chain. This node is a pipe, not an endpoint - nothing terminates here.
Installing it
FEnodes is a normal custom-node pack. Easiest path is ComfyUI Manager: search "ComfyUI-FEnodes" and install. Or do it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/FugitiveExpert01/ComfyUI-FEnodes.git
Restart ComfyUI and the nodes appear under the FEnodes category. Core requirements are just torch, numpy and Pillow - everything any ComfyUI install already has. No model downloads, no extra pip packages for this node.
Common issues
- The LoRA isn't doing anything. Check that
lora_stackis actually connected. Since it's optional, an unconnected Apply LoRA silently passes the model through - the most common "why is my LoRA dead" moment with this node. If it is connected, work through the usual suspects: wrong base model (a Flux LoRA does nothing on SDXL), missing trigger word in the prompt, or strength at the default 1.0 being too hot - 0.5–0.8 is a common sweet spot. - Stack vs Merge confusion. Start with Stack. Switch to Merge only if you have two LoRAs fighting over the same layers and stacking them looks wrong. Stacking with many LoRAs is also slower - Merge is the cheap path when you're running a lot of them.
- CLIP not patched. If your workflow's conditioning seems untouched by the LoRA, you probably left
clipdisconnected. Wire it in if the LoRA was trained with text-encoder weights (many SDXL/SD1.5 LoRAs were).
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| application_mode | COMBO | Stack | 2 options: Stack, Merge |
| lora_stackopt | FE_LORA_STACK | — | |
| clipopt | CLIP | — | |
| strength_scaleopt | FLOAT | 1.00-10–10 | Multiplies all per-LoRA model and clip strengths uniformly. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |