Icy VAEDecodeTiled
Icy VAEDecodeTiled is just ComfyUI's tiled decoder wearing a snowflake
- samples
- vae
- IMAGE
If a downloaded workflow hands you an "Icy VAEDecodeTiled" and you have no idea which planet it's from, relax: it's from ComfyUI core. This is the stock VAEDecodeTiled, re-registered by the IcyHider pack under its own category. The pack is a preview-hiding extension by IceKiub (it covers image previews until you hover or select, so you can run ComfyUI in public without everyone watching your screen). To make that work across the whole canvas, its nodes.py wraps every ComfyUI core node at startup - it subclasses each class, prefixes the name with "Icy", and drops it in the IcyHider Comfy Core menu. Same inputs, same math, same output. The snowflake is cosmetic.
So why would you reach for this particular node? Because it's the last step of any big generation. Decoding a latent back to pixels is what turns your sampler output into an image you can see, and the plain decoder does the whole thing in one shot - which on a big latent (2K, 4K, or a large video frame) can blow through VRAM and die with an OOM. The tiled version splits the decode into overlapping chunks, processes them one at a time, and stitches the result back together. It's the oldest VRAM lever in the book, and it barely costs you anything in quality.
Inputs that matter:
samples- the LATENT out of your sampler.vae- the VAE to decode with. Comes from a VAE loader (or theIcyVAELoadersibling of this node) or is baked into your checkpoint.tile_size(default 512) - how big each decode tile is, in image pixels. Drop it for tighter VRAM, raise it if you have headroom.overlap(default 64) - how much neighboring tiles overlap. This is your seam control.temporal_size(64) andtemporal_overlap(8) - the author's own tooltips say it plainly: only used for video VAEs, the frame count decoded at a time and how many frames overlap. For still-image VAEs they do nothing, so ignore them.
Output: a single IMAGE - wire it to PreviewImage, SaveImage, or their Icy equivalents.
Installing the pack is the only "getting this node" step, and it's painless: no Python deps (the pyproject.toml ships an empty dependencies list), no model downloads. Via ComfyUI Manager, search "IcyHider" and install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/icekiub-ai/ComfyUI-IcyHider.git
Then restart ComfyUI - and refresh the page properly, because this is a JS extension.
Where people get burned: first, the pack's Avalanche mode is ON by default, which hides every node until you click it - so the first launch after install looks like your workflow vanished. Click a node to reveal it, or turn it off under Settings → IcyHider. Second, if you see visible seams between tiles, raise overlap; if you set tile_size too small, decode gets slower and more prone to artifacts. And the honest tip: if you don't care about the hiding gimmick at all, just use the core VAEDecodeTiled - it's literally the same node, so swapping one for the other changes nothing about your image.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| samples | LATENT | — | |
| vae | VAE | — | |
| tile_size | INT | 51264–4096 | — |
| overlap | INT | 640–4096 | — |
| temporal_size | INT | 648–4096 | Only used for video VAEs: Amount of frames to decode at a time. |
| temporal_overlap | INT | 84–4096 | Only used for video VAEs: Amount of frames to overlap. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |