Icy VAEEncode
The pixel-to-latent node that's secretly just VAEEncode
- pixels
- vae
- LATENT
"Icy VAEEncode" is ComfyUI's VAEEncode with a prefix, and you should know that before anything else. The IcyHider pack - the privacy extension that covers image previews until you hover or select a node - doesn't hand-write any of these VAE nodes. It wraps every core ComfyUI node at startup: subclass, rename with "Icy", file it under the IcyHider Comfy Core category. So this node is the encode half of the VAE you already use, behaving identically. The only real difference is where it appears in the menu and the fact that its body hides itself when you aren't hovering.
You reach for it the same way you reach for VAEEncode: whenever a workflow needs an image as a latent. That's the img2img setup - you load an image, encode it to latent space, feed it into a KSampler at a denoise under 1, and the model starts from your picture instead of noise. It's also the standard front door to inpainting, latent compositing, and any pass where you want to nudge an existing image.
How it works: the VAE encoder compresses your pixels into the compressed representation the diffusion model actually works in - roughly 8× smaller per side, with far fewer channels than RGB. The KB's concepts essay frames it well: the VAE is not a color filter, it's the converter between pixel space and latent space, and without it there's no image at all. Encode is the lossy direction, so every encode/decode cycle costs a little quality - which is exactly why you don't chain encode/decode passes when you can avoid it.
Inputs (the whole thing, there are only two):
pixels- the IMAGE to encode.vae- the VAE to encode with, from a VAE loader (theIcyVAELoaderin this pack, or the stock one - same list of files).
Output: LATENT - wire it straight into the KSampler's latent input, or into an inpaint setup via the noise-mask variants.
Install is the pack install, and it's a nothingburger: no dependencies, no model downloads. ComfyUI Manager, search "IcyHider", install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/icekiub-ai/ComfyUI-IcyHider.git
Restart ComfyUI and hard-refresh the page - this is a JS extension, so a cached tab will look like nothing happened.
Two real gotchas, both inherited from the core node. First: a VAE mismatch. Encode an SDXL image with an SD 1.5 VAE and you get noise or flat gray instead of a subtly wrong image - the KB's VAE section calls out grey, washed-out output as the classic missing-or-wrong-VAE symptom. Use the VAE that matches your checkpoint's architecture. Second, and this one is IcyHider-specific: the pack's Avalanche mode defaults to ON, which hides every node until selected. If your whole workflow seems to disappear after installing, that's it - click a node to reveal it, or disable Avalanche in Settings → IcyHider. And if you just want the encoding and not the hiding, swap this for core VAEEncode; it's the identical node.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| pixels | IMAGE | — | |
| vae | VAE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |