Power Lora Loader
Power Lora Loader — Same Name as rgthree's, Deliberately Different Job
- model
- MODEL
The CLIP socket is missing on purpose
rgthree-comfy popularized the phrase "Power Lora Loader", and if you search for it you will find rgthree's node first - the one that stacks LoRAs with per-row toggles and reads trigger words off the file. This is a different node that happens to share the display name. Both can live in one install, because the registration keys differ (BC_PowerLoraLoader vs rgthree's). If you want the trigger-word lookup, you want rgthree's. If you want to stack LoRAs onto a model and not touch its text encoder, this is the one.
That distinction is the whole pitch. Every stock LoRA loader in ComfyUI is MODEL + CLIP → MODEL + CLIP, because most SD 1.5 and SDXL LoRAs patch both. BCNodes' version has one model input and one MODEL output. No CLIP in, no CLIP out.
How it works
Each row on the node is a Lora file plus a strength, and when the graph runs the node walks the rows in order and applies each one to the model with comfy.sd.load_lora_for_models(model, None, lora, strength, 0) - note the None where the CLIP would go. That is literally the same ComfyUI function the core loader uses; the CLIP half is just passed as nothing.
Rows are saved with the workflow and reach the backend as lora_N entries in row order, so the LoRA stack travels with the file and an API prompt can list the rows directly.
Where this earns its place: any pipeline whose subject is a model with no CLIP LoRA to speak of. Video DiTs, restoration and upscale models, whatever you are patching where a text-encoder change is noise at best. It is also the honest way to stack a LoRA whose text-encoder half you explicitly do not want, which is a real workflow once you have been burned by a LoRA that quietly drags your prompt understanding sideways.
The two things you actually set
The model input (optional, per the schema) and each row's strength. The rows aren't real sockets - you manage them on the node: a toggle dot, the LoRA picker (with a filter box over models/loras), and one strength field where ◀ ▶ steps by 0.05 or you click the number and type. ➕ Add LoRA appends a row, right-click gives you Toggle On/Off, Move Up, Move Down, Remove.
The single output is MODEL - wire it into your sampler's model input, or wherever the next model-touching node wants it.
A row is skipped when it is toggled off, when its strength is exactly 0, or when the file can't be found (missing files are named in the console, not in the UI). So a strength of 0 is a mute, not a "apply at zero".
Install
ComfyUI Manager: search ComfyUI-BCNodes, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/0xBeycan/ComfyUI-BCNodes
Nothing to pip install for this one - the pack's requirements.txt holds postfx and caption-audit, which back the PostFx and Caption Audit nodes only. Without them the pack still loads and just those two nodes are absent. Type BCNodes in the node library to find everything in the pack at once.
If you still have a folder called ComfyUI-AutoBypass lying around from the pack's old name, delete it - its AutoBypass node is now BC_AutoBypass here and the duplicate will confuse you.
Where people get burned
Unconnected model doesn't error - it returns None. The input is optional, and the node's first line is "if there's no model, hand back nothing". You get a valid-looking output socket carrying nothing, and the failure surfaces much further downstream in whatever node can't accept None. Always wire the model in.
A CLIP-side LoRA silently does nothing. If you feed it a LoRA whose weights are mostly or entirely text-encoder keys, the model gets a no-op patch and your prompt behaves exactly as if you'd never loaded it. That's not a bug - it's the design - but it looks like one when the LoRA "doesn't work". If your LoRA is supposed to change how prompts are read, this is the wrong loader.
Don't confuse it with rgthree's in an old workflow. The class names differ so nothing breaks, but the wiring is not interchangeable: this node has no CLIP socket, so any graph expecting one from the loader will fail validation with a missing input.
Everything else here is quiet. The pack registers its nodes with BC_ prefixes precisely so it can be installed alongside other packs without a clash, and this node is a thin wrapper over a core ComfyUI function - there's not a lot of surface for it to go wrong on.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| modelopt | MODEL | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |