Nodes/ComfyUI-PolyhedronLoRAStack/⬡ Polyhedron Load VAE
ComfyUI Node

⬡ Polyhedron Load VAE

The VAE loader that names the family before your image comes out grey

By PolyhedronAI·Created 3 months ago·Updated a day ago· 2
⬡ Polyhedron Load VAE
  • model
  • vae
  • info
vae_name
precisionauto

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 from models/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.

CategoryPolyhedron/Loaders

Inputs (3)

NameTypeDefaultDescription
vae_nameCOMBOVAE 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.
precisionCOMBOautoOverride the VAE dtype (the useful part of the wrapper loaders, applied to the NATIVE VAE). auto = ComfyUI default.
modeloptMODELOptional cross-check: verifies the model's latent format matches this VAE and fails loudly BEFORE sampling instead of mid-run.

Outputs (2)

NameTypeDescription
vaeVAEThe loaded VAE (native type -- fits every decoder).
infoSTRINGReadout: file | channels -> family | dtype | note.