Nodes/ComfyUI-Flow-Control/Flow - Lora Loader (Model Only)
ComfyUI Node

Flow - Lora Loader (Model Only)

The LoRA loader that double-checks the base model before it loads

By krich-cto·Created 2 years ago·Updated 2 years ago· 1
Flow - Lora Loader (Model Only)
  • model
  • gen_info
  • model
  • gen_info
bypassNo
filterAll
lora_name
strength_model1.00
base
hash
triggers
url

The stock LoraLoaderModelOnly happily applies an SD15 LoRA to an SDXL model and lets you discover the artifact soup yourself. FlowLoraLoaderModelOnly, from ComfyUI-Flow-Control, checks its homework first: it compares the LoRA's declared base against the checkpoint's base in gen_info and, if they don't match, it skips the load entirely and just passes the model through. SDXL and Pony count as compatible, which is actually correct - Pony is SDXL under the hood. For everything else, a mismatch means a silent no-op rather than a ruined generation.

It's the "model only" variant, so there's no CLIP input - Flux LoRAs and the like go here. If you need model + CLIP patching, that's FlowLoraLoader.

How it works

Like stock, it loads the LoRA file and patches the model with strength_model. On top of that it adds the pack's housekeeping:

  • bypass set to Yes skips everything and returns the untouched model - handy for A/B testing a LoRA without deleting it from the graph.
  • strength_model of 0 also short-circuits, so you can zero out a LoRA instead of rewiring.
  • The base check: it reads the checkpoint's base out of gen_info["base"], compares it to the LoRA's base field, and skips loading when they're incompatible.
  • It records the LoRA's name and hash into gen_info["loras"], which is what lets FlowSaveImage write the CivitAI hash list into your PNG metadata.

There's also a filter dropdown (All / Flux / Pony / SDXL / SD15) that narrows the lora_name list in the UI, and hash, triggers, url fields the frontend fills in from CivitAI when it can identify the file by hash.

The inputs that matter

  • model - from the Flow checkpoint or Flux preset loader.
  • lora_name - filtered by the filter dropdown.
  • strength_model - the dial. Default 1.0; the old "0.5–0.8 is the sweet spot" advice mostly applies on SDXL-family, while Flux LoRAs are usually fine at 1.0.
  • base - the LoRA's expected base. Get this right; the whole skip-if-mismatched feature depends on it.
  • bypass - the on/off switch for testing.

Outputs are model and gen_info, both passed through (and gen_info with the lora hash added). This is the "Flow" data pipe - feed gen_info forward into FlowKSampler and FlowSaveImage.

Install

Ships in ComfyUI-Flow-Control, install once for the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/krich-cto/ComfyUI-Flow-Control

Restart ComfyUI (or Manager → search "ComfyUI-Flow-Control"). No models to download beyond the LoRAs themselves; the pack needs requests for its CivitAI lookups and imports gguf at startup, so pip install requests gguf if the pack won't load.

Gotchas

The skip is silent by design - the console logs "Skip, checkpoint base is ..." but you won't see it unless you watch the terminal, and your image will just come out without the LoRA applied. That's the correct behavior, but it's confusing the first time. Also note the base compatibility table is the author's own: SDXL↔Pony works, SD15 is its own bucket, Flux is separate. And remember this node is "model only" - if your LoRA also wants to patch the CLIP (many character LoRAs do), use FlowLoraLoader instead or you'll get half the effect.

CategoryFlow/inputs

Inputs (10)

NameTypeDefaultDescription
modelMODEL
gen_infoGENINFO
bypassCOMBONo2 options: Yes, No
filterCOMBOAll5 options: All, Flux, Pony, SDXL, SD15
lora_nameCOMBO0 options:
strength_modelFLOAT1.00-100–100
baseCOMBO5 options: , Flux, Pony, SDXL, SD15
hashSTRING
triggersSTRING
urlSTRING

Outputs (2)

NameTypeDescription
modelMODEL
gen_infoGENINFO