Diffusers MV Scheduler Loader
Pick the sampler for multi-view (and the SNR shift)
- pipeline
- SCHEDULER
This node picks the sampling scheduler for an MV-Adapter pipeline - the diffusers equivalent of choosing your sampler in a normal ComfyUI graph. It's a small node with one input that actually matters day to day and a few advanced dials most people should leave alone. Its output feeds Diffusers MV Model Makeup, which is where the scheduler, VAE, and adapter get bundled into the pipeline the sampler runs.
You only reach for this node when you want to override the default scheduler the pipeline loaders already hand you. If your results are fine, you may never touch it.
How it works
The scheduler is the algorithm that decides how noise gets removed at each step - different schedulers trade speed against quality and character. This node builds a diffusers scheduler by name and attaches it to the pipeline. It also applies an SNR (signal-to-noise ratio) shift, which is a multi-view-specific tweak: nudging the noise schedule helps the several views stay consistent with each other rather than drifting apart.
The inputs that matter
scheduler_name(enum) - the one you'll actually change. Twelve choices:DDIM,DDPM,DEISMultistep,DPMSolverMultistep,DPMSolverSinglestep,EulerAncestralDiscrete,EulerDiscrete,HeunDiscrete,KDPM2AncestralDiscrete,KDPM2Discrete,UniPCMultistep, andLCM. For SDXL the community's realism default is a DPM++ family solver (DPMSolverMultistephere);EulerAncestralDiscreteis popular and fine for stylized work.UniPCMultistepconverges fast at low step counts.LCMis only for LCM-distilled setups - don't select it on a normal checkpoint or you'll get mush.shift_snr(default true),shift_mode(defaultinterpolated),shift_scale(default 8) - the SNR-shift controls. These are the advanced dials, and the defaults are the tuned values. Unless you're deliberately experimenting with multi-view consistency, leave all three as they are.
The output is a single SCHEDULER - wire it into Model Makeup's scheduler slot.
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 workflows already include a scheduler node set to sensible values - copy those before hand-tuning.
Where people get burned
Selecting LCM on a non-LCM model. The LCM scheduler only makes sense with an LCM-distilled checkpoint running a handful of steps at low CFG; put it on a standard SDXL checkpoint and you'll get blurry, undercooked output and wonder what broke. If you're not deliberately running LCM, pick a normal solver.
Second, over-tuning the SNR shift. Those three shift_* parameters are there for people tuning multi-view consistency, not for casual quality-chasing. The defaults (shift_snr on, interpolated mode, scale 8) are the recommended settings; changing them blind usually makes things worse, not better. If your views are drifting apart, this is a place to experiment - otherwise leave it.
Third, remember the pipeline loaders already output a default scheduler. You don't strictly need this node at all for a basic run; it exists for when you want to override that default with a specific solver. If you add it, wire its scheduler output into Model Makeup and don't also wire the loader's, or you'll be feeding two schedulers into one slot.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| pipeline | PIPELINE | — | |
| scheduler_name | COMBO | 12 options: DDIM, DDPM, DEISMultistep, DPMSolverMultistep, DPMSolverSinglestep, EulerAncestralDiscrete, +6 | |
| shift_snr | BOOLEAN | true | — |
| shift_mode | COMBO | interpolated | 2 options: default, interpolated |
| shift_scale | FLOAT | 80–50 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SCHEDULER | SCHEDULER | — |