Nodes/ComfyUI/VAE Decode (Tiled)
ComfyUI Node Runs on cloud

VAE Decode (Tiled)

Your video and big-image lifeline

By Comfy-Org·Created 4 years ago·Updated 11 minutes ago· 129,958
VAE Decode (Tiled)
  • samples
  • vae
  • IMAGE
tile_size512
overlap64
temporal_size64
temporal_overlap8

You'll know you need this node when the plain VAE Decode spits out "OutOfMemoryError" on a perfectly reasonable generation. VAE Decode (Tiled) does the same job as VAE Decode - latent to image - but it eats the latent in overlapping chunks instead of all at once, so it fits in a fraction of the VRAM. It's the decode half of the "your GPU can sample it but can't render it" problem, and for video it's basically mandatory on consumer cards.

Inputs:

  • samples - the LATENT to decode.
  • vae - your VAE.
  • tile_size - default 512. The pixel size of each decode chunk. Lower = less VRAM, but more visible seams.
  • overlap - default 64. How much neighboring tiles overlap so the seams get blended. Too little overlap and you see tile boundaries; too much and you waste compute.
  • temporal_size / temporal_overlap - defaults 64/8, and the tooltips say it plainly: only used for video VAEs. These chunk the frame dimension. A long video's latent is decoded a few frames at a time, with overlapping frames blended so motion doesn't flicker at the boundaries.

The mechanism is unglamorous: it divides the latent into tiles, runs each through the decoder, then feathers the overlapping regions back together. The source even clamps overlap to sane fractions of tile size so you can't configure yourself into a corner. There's a matching VAE Encode (Tiled) for the encode direction, plus tiled variants for audio (VAE Decode Audio Tiled) if you're in that corner of the ecosystem.

When to reach for it

  • Video decode on <16GB cards. Video VAEs are 3D - they compress time as well as space - and decoding 80+ frames at full res is exactly what OOMs. Set temporal_size to something like 16–32 frames and even long clips decode.
  • Big stills. 2K/4K latents from hi-res workflows. tile_size 512 with overlap 64 is the community default that works on almost anything.
  • When the preview also OOMs. Some frontends decode for the preview too; tiled decode fixes that as a side effect.

The trade you should know about

Tiled decode is a memory fix, not a quality win. Tiles decoded separately can diverge slightly - you'll see the classic faint grid or a change in texture at tile borders, worst on smooth gradients and skies. In practice with overlap ≥ 64 and tile_size ≥ 512 it's usually invisible; the more you shrink tiles to squeeze VRAM, the more it shows. That's the dial: big GPU, keep defaults or skip this node entirely; 6GB card, you'll be living with small tiles and mild seams, which is a better deal than no decode at all.

Two gotchas worth knowing: first, some VAEs are picky about tile sizes not aligning with their compression factor - the node handles this internally by dividing the tile size by the VAE's spatial compression (8x on most), so you don't have to think about it, but it's why a 512 "pixel" tile is really a 64-latent tile. Second, temporal parameters only matter for video VAEs; on an image VAE the node quietly ignores them, so don't panic if changing them does nothing.

Categorymodel/latent

Inputs (6)

NameTypeDefaultDescription
samplesLATENT
vaeVAE
tile_sizeINT51264–4096
overlapINT640–4096
temporal_sizeINT648–4096Only used for video VAEs: Amount of frames to decode at a time.
temporal_overlapINT84–4096Only used for video VAEs: Amount of frames to overlap.

Outputs (1)

NameTypeDescription
IMAGEIMAGE