Nodes/ComfyUI-IcyHider/Icy VAEDecode
ComfyUI Node

Icy VAEDecode

The Decoder Every Workflow Ends With

By icekiub-ai·Created 9 months ago·Updated 9 months ago· 31
Icy VAEDecode
  • samples
  • vae
  • IMAGE

Every ComfyUI generation ends the same way: a KSampler hands you a latent - a compressed, noise-like tensor - and VAEDecode turns it into the image you can actually look at. It's the most common node in the ecosystem, and if you're reading this you've probably already used the plain one a hundred times. Icy VAEDecode is that same node with the pack's one addition: its output preview is hidden until you hover or select it.

That's not a gimmick - VAEDecode is where the "surprise" in a workflow lands. The sampler runs, the latent decodes, and suddenly there's a full-res image on the canvas. In a shared room or on a shared screen, that's precisely the moment you'd rather have control over. This node gives you that control.

The "Icy" prefix is the pack's privacy layer, not a different decoder. IcyHider subclasses core ComfyUI nodes at startup - same inputs, outputs, and code, filed under the IcyHider Comfy Core category - and its JavaScript covers previews until hover. So this is core VAEDecode with a coat on.

The two inputs, one output

From the schema:

  • samples - the LATENT to decode, the author's own tooltip calls it "the latent to be decoded." Straight from a sampler.
  • vae - the VAE model used for decoding. Wire from your checkpoint loader, or a dedicated VAE loader if you're using a separate VAE.

One output: IMAGE, ready for a PreviewImage, SaveImage, or any image-side processing. The tooltip: "the decoded image."

The thing to know about the VAE itself

The VAE is the component that converts between pixel space and latent space - decode is its "make it a picture" half. And the KB's concepts essay has the warning that matters here: the VAE and the latent must match. A VAE from one architecture on latents from another produces noise or flat color, not a subtly wrong image. If your output suddenly looks like static, the first suspect is a VAE/checkpoint mismatch, not this node.

Also worth knowing: decoding is the last quality-relevant step. People who care about detail often swap in a different VAE (a "f16" or tuned VAE) for a particular checkpoint, and that swap happens by changing what you wire into this node's vae input. Same node, better decoder.

Install

Frontend-only pack, 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

Pack-wide: the hiding is DOM-based, so on ComfyUI's newer Nodes 2.0 canvas frontend it can silently not engage - one user hit exactly that on the release thread. And remember the cover is screen-only: whatever you wire into a SaveImage downstream still lands on disk.

CategoryIcyHider Comfy Core

Inputs (2)

NameTypeDefaultDescription
samplesLATENTThe latent to be decoded.
vaeVAEThe VAE model used for decoding the latent.

Outputs (1)

NameTypeDescription
IMAGEIMAGEThe decoded image.