GGUF VAE Loader ποΈ
The niche-of-a-niche node (and when it's actually the answer)
- vae
- summary
Honest opening: you will probably almost never need this node, and its own author basically says so. VAE weights are small - a few hundred MB at most, versus the gigabytes a diffusion model or text encoder eats - so GGUF release packages almost always ship the VAE as plain safetensors and only bother quantizing the big components. That's why a typical "Flux GGUF" download is a quantized diffusion model, a quantized T5 text encoder, and a normal vae safetensors sitting next to them.
GGUF VAEs in the wild are rare enough that this node exists mostly for two reasons: the occasional fully-GGUF-packaged model set where someone quantized everything including the VAE, and symmetry - so that a model distributed entirely in .gguf form doesn't need two different loading philosophies inside one pack. The README says as much, in so many words: "included for symmetry."
So when would you actually reach for it? Exactly one scenario, really: you've got a .gguf VAE file on disk - maybe it came bundled inside a fully-quantized package, or you downloaded the only copy of a niche model someone published and the VAE happened to be GGUF - and you don't want to go hunting for a matching safetensors version. This node opens it and gives you a normal VAE output that plugs into VAEDecode/VAEEncode exactly like any other VAE in ComfyUI.
How it works
Same pattern as the other GGUF loaders in OmniNodes: the file is read with the gguf package's GGUFReader, every tensor is dequantized, and the resulting plain state dict is handed to comfy.sd.VAE to build a standard VAE object. One difference worth noting: the default weight_dtype here is fp32, not fp16. ComfyUI's VAE decode path is more precision-sensitive than UNet or CLIP inference, so the author keeps it at full precision unless you specifically choose fp16.
Inputs and outputs
gguf_name- dropdown of.gguffiles undervae,vae_gguf, andcheckpoints. Empty? Usepath_overridewith an absolute path to the file.weight_dtype-fp32(default) orfp16. Leave it on fp32 unless you're chasing every last bit of memory and accept the precision trade.
Outputs: vae (wire into VAEDecode) and summary (file loaded, tensors dequantized, dtype).
Installing
It's one of six GGUF nodes inside OmniNodes, TensorVizion's all-purpose ComfyUI pack. The GGUF category is the newest part of the pack, and it's the only part needing an extra dependency:
cd ComfyUI/custom_nodes/
git clone https://github.com/TensorVizion/OmniNodes
cd OmniNodes && pip install -r requirements.txt # adds gguf
Restart ComfyUI, then find it under TensorVizion/GGUF in the search menu. Manager users can install the pack by searching "OmniNodes", but the pip install gguf step still applies - it's not bundled with ComfyUI, and every GGUF node returns a clear "install gguf" error rather than crashing if it's missing.
Troubleshooting
The one failure mode that actually bites: comfy.sd.VAE rejects the dequantized state dict, which the node reports as "tensor key names don't match a VAE architecture ComfyUI recognizes." That means the file probably isn't a VAE at all, or it's a VAE architecture your ComfyUI version doesn't know. Run GGUFFile Info on the file first to confirm what you're holding - it's read-only and free - before assuming the loader is broken. If everything checks out, remember the file dropdown only sees folders ComfyUI registers; path_override is the escape hatch for files living anywhere else.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| gguf_name | COMBO | 1 options: <none found in model folders β use path_override> | |
| weight_dtype | COMBO | fp32 | 2 options: fp32, fp16 |
| path_overrideopt | STRING | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| vae | VAE | β |
| summary | STRING | β |