(Down)load VAE
Grab a VAE from CivitAI or HuggingFace without leaving ComfyUI
- vae_name
The third of the pack's model-fetching nodes, and the one you'll reach for least often - most checkpoints ship a baked-in VAE, so you only need this when you're chasing a specific fix (a known-bad baked VAE, a community-preferred alternative) or building a workflow that's meant to be fully self-contained on first run.
How it works
Same pattern as DownloadCheckpoint and DownloadLora: choose a source, give it a model ID, and it downloads the VAE file into the appropriate models folder and hands back the filename. It's an output node, so it'll execute during a run whether or not anything downstream reads its output - you can use it purely to pre-populate a VAE file on disk.
The inputs and outputs that matter
source-civitaiorhuggingface.model_id(STRING) - the CivitAI model ID or HuggingFace repo path.base_model- SD1.5, SDXL, Flux.1, Kolors, or Pony. VAEs are architecture-specific too (a SD 1.5 VAE won't decode a Flux latent correctly, for instance), so get this right.version_id(optional) andfile_names(optional, multiline) - pin a specific version or file when a model page has more than one on offer.
Output: vae_name - wire straight into a VAE loader node.
How to install it
Like the other Download* nodes, this one lives in the bundled ComfyUI-Model-Downloader submodule, not the main repo. Get it with a recursive clone:
cd ComfyUI/custom_nodes
git clone --recursive https://github.com/liuqianhonga/ComfyUI-QHNodes.git
If you already have a non-recursive clone sitting around:
cd ComfyUI/custom_nodes/ComfyUI-QHNodes
git submodule init && git submodule update
Installing via ComfyUI Manager can leave this node out if it doesn't pull submodules on its own - if it's missing after install, run the commands above inside the existing clone rather than reinstalling from scratch.
Common issues & troubleshooting
Decoded images come out wrong (blocky, washed out, or grey). This is almost always a mismatch between the VAE and the model architecture, not a download problem. If you downloaded a VAE meant for one base model and are decoding latents from a different one, that's the fix - check base_model matches what you're actually pairing it with.
Gated repos return nothing. Same limitation as the pack's other download nodes: no API key or auth token field exists here, so a HuggingFace repo that requires you to accept a license and log in first won't authenticate through this node.
You don't actually need this node. Worth saying plainly: most checkpoints already include a working VAE, and swapping it is a fix for a specific, known problem (a bad baked VAE, an architecture that ships VAE separately like Flux) rather than something every workflow needs. If you're not chasing a specific issue, you probably don't need to wire this in at all.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| source | COMBO | civitai | 2 options: civitai, huggingface |
| model_id | STRING | — | |
| base_model | COMBO | Flux.1 | 5 options: SD1.5, SDXL, Flux.1, Kolors, Pony |
| version_idopt | STRING | — | |
| file_namesopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| vae_name | * | — |