Icy VAEEncodeTiled
Icy VAEEncodeTiled
- pixels
- vae
- LATENT
Icy VAEEncodeTiled is the encode-side twin of VAEDecodeTiled, and like every node with the "Icy" prefix it's ComfyUI core wearing a coat: the IcyHider pack wraps all core nodes at startup, subclassing VAEEncodeTiled, renaming it, and filing it under IcyHider Comfy Core. The math is untouched. What the tiled version buys you is VRAM headroom when the thing you're encoding is big.
Most of the time, plain VAEEncode is all you need. Encoding an image to a latent is much cheaper than decoding one - the encode path doesn't have to build the full-resolution image in memory. But there are cases where it bites: feeding a multi-thousand-pixel image into an img2img pass, pre-encoding frames for video work, or running through a video VAE, where the temporal dimension adds another axis of memory pressure. When the plain encoder OOMs, this node splits the image into overlapping tiles, encodes each one, and reassembles the latents - same result, far lower peak memory. It's the same reasoning as tiled decode, just on the way in.
Inputs that matter:
pixels- the IMAGE to encode.vae- the VAE, matched to the image's architecture.tile_size(default 512) - tile size in image pixels. Lower = gentler on VRAM, but more tiles means slower encode and more visible seam risk.overlap(default 64) - the overlap between adjacent tiles. This is your seam-control knob; too little and you can see the tile grid in the result.temporal_size(64) andtemporal_overlap(8) - per the tooltips, only used for video VAEs: frames to encode at a time and frames to overlap. On still-image VAEs they're inert, so leave them alone unless you're encoding video latents.
Output: LATENT, straight into a KSampler or the rest of a video pipeline.
Install is the pack install and it's genuinely light - the pack ships zero Python dependencies and needs no model downloads:
cd ComfyUI/custom_nodes
git clone https://github.com/icekiub-ai/ComfyUI-IcyHider.git
or ComfyUI Manager → search "IcyHider" → Install. Restart ComfyUI, then hard-refresh the page; it's a JS extension, and a stale tab will make it look like the install did nothing.
Honest troubleshooting, without inventing problems: if you see tile seams in your encode, raise overlap - that's the knob designed for it. If encoding is mysteriously slow, you've set tile_size too small; a 512 default is a fine middle ground for most cards. And remember the pack-level trap: Avalanche mode defaults to ON, so after install everything hides until you click it - Settings → IcyHider is where you turn that off. Finally, the practical truth: for plain image encode, IcyVAEEncodeTiled is a drop-in for core VAEEncodeTiled with zero behavior change, so if you don't want the hiding pack on your machine, just use the core node - the tiled encoding is exactly what you think it is.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| pixels | IMAGE | — | |
| 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 encode at a time. |
| temporal_overlap | INT | 84–4096 | Only used for video VAEs: Amount of frames to overlap. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |