⬡ Polyhedron Load VAE
The VAE loader that names the family before your image comes out grey
- model
- vae
- info
The ⬡ Polyhedron Load VAE is a native VAE loader with two upgrades over the stock one: it names the family it just loaded, and - when you wire a MODEL into it - it checks that the two actually belong together before you waste a sampling run.
That second bit is the reason to care. A VAE and a model from different families is the classic silent failure: the graph runs fine, and what comes out of the decoder is colour drift, washed-out grey, or speckle noise - and the cause is miles from the symptom. The mismatch isn't "broken," it's just wrong, which is the hardest kind of bug to catch. This node verifies the model's latent format against the VAE and fails loudly before sampling instead of mid-run or at decode time.
What you set
vae_name- the VAE file frommodels/vae. The dropdown shows sizes, so you can tell a proper 700MB video VAE from a small pruned image VAE at a glance.precision- dtype override (auto, bf16, fp16, fp32). This is the useful part of the wrapper loaders, applied to the native VAE. Leave on auto unless you're fighting a specific dtype bug; fp16 VAEs are the classic source of NaN checkerboards on some hardware.model(optional) - wire your diffusion model in and the cross-check runs. Do it; it costs nothing and it's the whole point.
One note baked into the tooltip that will save you a Wan-specific headache: wan_2.1_vae is the right VAE for Wan 2.1 and all Wan 2.2 14B models, while wan2.2_vae is for the TI2V-5B model only. Grabbing "the 2.2 VAE" for a 14B model is a real, common mix-up, and this node's readout is built to catch it.
What comes out
vae(VAE) - the loaded VAE, native type, so it fits every decoder node.info(STRING) - readout: file | latent channels → family | dtype | note. Wire it into a ⬡ Polyhedron Note for a standing "what's loaded" display.
Installing it
Part of the ⬡ Polyhedron Suite pack. ComfyUI Manager → "Polyhedron Suite", or:
cd ComfyUI/custom_nodes
git clone https://github.com/PolyhedronAI/ComfyUI-PolyhedronLoRAStack.git
# restart ComfyUI
No extra dependencies.
Gotchas
The cross-check only runs if you wire model in - leave it unwired and you get the family naming but not the mismatch guard, so wire it. And remember this loader loads; if you want encode/decode in one node, that's the separate ⬡ Polyhedron VAE Codec. Finally, if an image comes out of a core loader looking grey and you can't see why, that's not this node - but the fix is the same lesson: load the matching VAE explicitly rather than relying on whatever got baked in. As with the rest of the pack, blank rendering under Nodes 2.0 (Modern Node Design) means disable that renderer in Settings.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| vae_name | COMBO | VAE file (models/vae). Wan note: wan_2.1_vae = Wan 2.1 AND all Wan 2.2 14B models; wan2.2_vae = TI2V-5B ONLY. | |
| precision | COMBO | auto | Override the VAE dtype (the useful part of the wrapper loaders, applied to the NATIVE VAE). auto = ComfyUI default. |
| modelopt | MODEL | Optional cross-check: verifies the model's latent format matches this VAE and fails loudly BEFORE sampling instead of mid-run. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| vae | VAE | The loaded VAE (native type -- fits every decoder). |
| info | STRING | Readout: file | channels -> family | dtype | note. |