Diffusers MV Vae Loader
The fp16 VAE that keeps multi-view VRAM sane
- AUTOENCODER
This node loads a VAE by Hugging Face repo id for use in an MV-Adapter pipeline. It's the diffusers-format VAE loader - the twin of the LDM Vae Loader, which reads local files instead. Its output plugs into Diffusers MV Model Makeup, supplying the encode/decode component the whole pipeline needs. The nice thing is the default is already the right answer, so for most people this node is a wire-it-in-and-forget-it affair.
Why it exists, and why the default matters
The VAE is the codec between pixels and diffusion's latent space - not a color filter, but the thing that makes any viewable image possible at all. On SDXL specifically, the original VAE has a well-known flaw: it produces NaNs and black images when run in fp16, because its internal activations overflow half precision. The community fix has been standard for years: madebyollin/sdxl-vae-fp16-fix, a rescaled refit that keeps the output identical while staying inside fp16 range.
This node defaults its vae_name to exactly that repo. That's not an accident - it's the README's explicit GPU-memory recommendation. Running the fp16-fixed VAE is what lets the decode stay in half precision instead of forcing an expensive fp32 pass, which matters a lot when SDXL as a base already wants 13–14GB.
The inputs and output
There's really only one input:
vae_name(STRING, defaultmadebyollin/sdxl-vae-fp16-fix) - the Hugging Face repo id of the VAE. The default is the SDXL fp16 fix and you should almost always leave it. You can point it at another diffusers-format SDXL VAE repo, but there's rarely a reason to.
The output is a single AUTOENCODER - it wires into Model Makeup's autoencoder 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 diffusers-path workflows (t2mv_sdxl_diffusers.json, i2mv_sdxl_diffusers.json) show it wired in. The VAE downloads from Hugging Face on first run.
Where people get burned
Honestly, not much - the default does the right thing. The one real trap is replacing the default with a mismatched VAE. Load a VAE from a different architecture (a Flux or SD 1.5 VAE) and the latent format doesn't match SDXL, so you get noise or flat, wrong color instead of a subtly-off image. If you swap vae_name, keep it an SDXL VAE.
Second, format: this is the diffusers loader, so vae_name is a repo id, not a local filename. If you want to load a VAE file sitting in your vae folder, use the LDM Vae Loader instead - and there, remember to set upcast_fp32 to False when the file is already fp16, or you undo the memory saving.
Third, don't go hunting for a "better" VAE to fix quality problems. There's no universally superior VAE, only the one that matches the model's training - and for SDXL that's the standard fp16 fix. If your output looks smeared or wrong, the cause is almost always somewhere else (the adapter choice, the base checkpoint, the sampler), not the VAE.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| vae_name | STRING | madebyollin/sdxl-vae-fp16-fix | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| AUTOENCODER | AUTOENCODER | — |