Nodes/ComfyUI-MVAdapter/Custom Lora Model Loader
ComfyUI Node Runs on cloud

Custom Lora Model Loader

Stack SDXL LoRAs onto multi-view

By huanngzh·Created 2 years ago·Updated about a year ago· 472
Custom Lora Model Loader
  • pipeline
  • PIPELINE
lora_name
strength_model1.00
enabletrue
last_lora_nodetrue

This node lets you apply an SDXL LoRA to an MV-Adapter pipeline, so your multi-view generation can carry a style, character, or concept you trained or downloaded. It exists because MV-Adapter runs on diffusers pipelines rather than the normal ComfyUI model graph, so the standard "Load LoRA" node doesn't apply here - you need this pack-specific loader that knows how to inject a LoRA into the diffusers pipeline in the middle of the chain.

If you've ever thought "the multi-view results are consistent but they look like generic SDXL," this is the node that fixes that. Point it at a good SDXL-family LoRA and the whole set of views inherits the look.

How it works

A LoRA is a small low-rank patch on a checkpoint's attention layers - 10–200MB that adds a character or style without retraining the model. This node loads one into the pipeline you pass in, applies it at the strength you set, and passes the pipeline along. Crucially, you can chain several of these back to back to stack LoRAs, which the pack added explicit support for in mid-2025.

The inputs that matter

  • lora_name (enum) - the LoRA file to load, populated from your loras folder. If the dropdown is empty, you have no SDXL LoRAs installed where ComfyUI expects them.
  • strength_model (default 1.0) - how hard the LoRA pushes. The old SDXL rule of thumb is 0.5–0.8; 1.0 can overpower the prompt on some LoRAs and is exactly right on others. Check the LoRA's model page rather than reaching for a fixed number, and dial it back if the views start collapsing toward one look.
  • enable (default true) - a clean on/off so you can A/B the LoRA without unwiring the graph.
  • last_lora_node (default true) - this is the one people miss. When you chain multiple loaders, set this to false on every loader except the final one, and true only on the last. It tells the pack "this is the end of the LoRA stack, fuse it now." Leave it true on a middle node and the chain won't assemble correctly.

The output is a PIPELINE - the same pipeline with the LoRA(s) applied, which continues on to Model Makeup or the sampler.

Installing the pack

ComfyUI Manager, search ComfyUI-MVAdapter, install, restart. Or: cd ComfyUI/custom_nodes && git clone https://github.com/huanngzh/ComfyUI-MVAdapter, then pip install -r requirements.txt, then restart. The example workflow to copy is t2mv_sdxl_ldm_lora.json (and the i2mv equivalent), which shows the LoRA loader wired in correctly.

Where people get burned

Architecture mismatch, every time. LoRAs are bound to their base architecture - an SDXL LoRA does nothing on Flux, and vice versa. MV-Adapter is SDXL (and SD 2.1), so you need SDXL-family LoRAs. And be aware that even within SDXL, Pony, Illustrious, and vanilla-SDXL LoRAs are all "selectable" but often aren't truly cross-compatible; a Pony LoRA on a base-SDXL pipeline can just look wrong. Match the LoRA to the checkpoint you loaded.

Second, the last_lora_node chaining rule above - the most common reason a multi-LoRA stack silently misbehaves.

Third, don't crank strength to force a weak LoRA. If likeness isn't landing at a sane weight, the LoRA or the base mismatch is the problem, and overdriving strength_model just flattens every view into the same overtrained face. Also remember: many LoRAs need a trigger word in your prompt to activate at all - loading the file isn't enough.

CategoryMV-Adapter

Inputs (5)

NameTypeDefaultDescription
pipelinePIPELINE
lora_nameCOMBO0 options:
strength_modelFLOAT1.00-100–100
enableBOOLEANtrue
last_lora_nodeBOOLEANtrue

Outputs (1)

NameTypeDescription
PIPELINEPIPELINE