Stack_VAEDecodeTiled
Tiled VAE Decode Settings, Ready to Plug Into Other Apt_Preset Nodes
- vaeTile
VAE decode is the step where your latent finally becomes pixels, and it's also where a big generation quietly runs out of VRAM even after the sampling itself succeeded - decoding a large latent in one full-frame pass needs a surprising amount of memory. Stock ComfyUI's fix is its own VAE Decode (Tiled) node, which splits the decode into overlapping tiles instead of doing it all at once. Stack_VAEDecodeTiled takes those exact same settings - tile_size, overlap, temporal_size, temporal_overlap - and packages them as a standalone config object instead of a full node with its own VAE and samples inputs.
Why that matters. This node doesn't decode anything by itself - notice there's no latent or vae input anywhere on it. It exists purely to be wired into other Apt_Preset nodes that need tiled-decode behavior internally. The clearest example in this pack is Stack_ksampler_tile's lowCpu input, which is typed to accept exactly this node's output - plug this in there and that node's internal VAE decode runs tiled using whatever settings you set here, instead of decoding the whole upscaled image in one shot.
The settings themselves. tile_size (default 512) and overlap (default 64) are the same VRAM-vs-seam tradeoff as any tiled workflow: bigger tiles use more memory per tile but leave fewer seams for the overlap blending to hide; more overlap smooths those seams further at the cost of redundant decode work. temporal_size and temporal_overlap only matter for video VAEs - Wan and other video models decode frames in chunks along the time axis the same way image tiling works spatially, and these two fields control that chunking. If you're only ever decoding still images, they're irrelevant; if you're working through any of this pack's Wan video nodes, they're the equivalent VRAM dial for the temporal dimension.
Output: vaeTile, typed VAEDecodeTiled - matching the exact type name of ComfyUI's own native tiled decode node, which is presumably deliberate: this config is meant to be a drop-in settings source for anything in the pack expecting that type.
Installing it. No special dependencies for this node beyond the base pack: cd ComfyUI/custom_nodes && git clone https://github.com/cardenluo/ComfyUI-Apt_Preset, restart ComfyUI, or search "ComfyUI-Apt_Preset" in ComfyUI Manager. Windows users should run install.bat once after cloning as a general precaution, since other nodes in this pack pull in Python dependencies Manager doesn't always resolve on its own.
Troubleshooting. If you wire this in and nothing seems to change, first confirm the downstream node actually has a typed input expecting VAEDecodeTiled - this isn't a general-purpose VAE override, it only connects to slots specifically built to accept it, like Stack_ksampler_tile's lowCpu. If you're still hitting out-of-memory errors on decode after wiring this in, drop tile_size further before increasing overlap - overlap adds compute and memory per tile rather than reducing peak usage. And if you're decoding video and seeing visible flicker or discontinuity between frame chunks, that's a temporal_size/temporal_overlap tuning problem specifically - raise temporal_overlap first, since too little overlap between temporal chunks is the more common cause of visible seams than the spatial tile settings.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| 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 |
|---|---|---|
| vaeTile | VAEDecodeTiled | ā |