Pick a VAE that matches your style
If your Stable Diffusion images look slightly grey, washed out or muddy, the VAE is almost always the culprit. The VAE is the final decode step that turns the model’s latent math into pixels, and different VAEs render colour, contrast and especially skin tones differently. This guide matches your image style to a well-known VAE and tells you exactly which file to download.
How VAEs affect the image
Stable Diffusion works in a compressed latent space; the VAE decodes that latent into the RGB image you see. Two checkpoints with the same prompt can look very different purely because of their VAE:
- sd-vae-ft-mse-840000 — the community default for SD 1.5 realism. Slightly softer, very natural skin tones, reliable colour.
- vae-ft-mse (original) — a touch more contrast and saturation than 840000; good general purpose.
- kl-f8-anime2 / blessed2 — tuned for anime and illustration: punchier colours, cleaner flat regions, crisp lineart.
- SDXL VAE (sdxl-vae-fp16-fix) — the standard for SDXL. The fp16-fix variant avoids the black-image NaN bug on some GPUs.
A mismatched or missing VAE shows up as flat, desaturated output — the tell-tale “grey wash.”
Tips and download notes
- Drop files in
models/VAE/(Automatic1111/Forge) or your ComfyUImodels/vae/folder, then refresh and select from the VAE dropdown. - Use Automatic first. Many modern checkpoints ship a good baked-in VAE; only override if the image looks washed out.
- Match the architecture. SD 1.5 VAEs never work on SDXL and vice versa.
- fp16-fix for SDXL on consumer GPUs. If you get pure-black images on SDXL,
switch to
sdxl-vae-fp16-fix— it solves the half-precision NaN problem. - All of these VAEs are hosted on Hugging Face (stabilityai and community repos); search the exact filename to find the canonical download.
What the VAE actually does in the diffusion pipeline
Stable Diffusion does not operate on pixels directly during the diffusion steps. Instead, the input image is first encoded into a compressed latent representation by the VAE encoder (a grid roughly 8× smaller than the image in each dimension). The diffusion model then works entirely in this smaller latent space — adding and removing noise over many steps. Only at the very end does the VAE decoder convert the final denoised latent back into RGB pixel values.
This design is why the VAE has such a large effect on visual quality: it is responsible for the final translation from abstract latent mathematics into the actual colours and textures you see. A well-tuned VAE recovers fine detail and accurate colour; a poorly matched one introduces colour shifts, blurriness, or loss of high-frequency texture.
SD 1.5 VAE options compared
For SD 1.5 checkpoints, three VAEs are commonly discussed:
sd-vae-ft-mse-840000 is fine-tuned with mean squared error loss on a large dataset. It produces the most natural-looking skin tones and is the safest default for photorealistic and portrait work. The “840000” in the name refers to the training steps.
vae-ft-mse (non-840k) is an earlier version of the same fine-tuning. It tends toward slightly stronger contrast and saturation, which some find more aesthetically pleasing for vibrant scene types but which can look slightly oversaturated on skin.
kl-f8-anime2 uses a KL divergence loss and is trained primarily on anime art. It produces cleaner, punchier colours with less muddiness in saturated regions and sharper linework — the right choice when your checkpoint is focused on illustration or anime styles.
The SDXL VAE fp16 NaN problem
SDXL uses its own VAE architecture that is incompatible with SD 1.5 VAEs. The
official Stability AI VAE for SDXL works well on full float32 precision but can
produce entirely black images on consumer GPUs running in fp16 mode. This is
because certain intermediate values overflow to NaN in half-precision arithmetic
during the decode. The community-created sdxl-vae-fp16-fix resolves this by
adjusting normalization and activation layers to stay numerically stable in fp16.
If you are running SDXL on a consumer GPU and seeing black outputs, this is
almost certainly the fix you need.
Signs your VAE is wrong or missing
- Colours are flat and greyish even with vivid prompts
- Skin tones look muddy or olive regardless of lighting
- Fine details like hair strands, fabric texture, or eye reflections are blurry
- SDXL images come out pure black
- The image looks correct but with an odd colour cast across the entire frame
Any of these symptoms points to trying a different VAE before adjusting prompts or sampler settings.