⚡ Gigachad VAE Decode
VAE decode with tiled fallback and video-frame flattening — the last node in every workflow
- samples
- vae
- image
Gigachad VAE Decode is the node at the end of every pipeline: it turns a LATENT back into an IMAGE. The stock VAEDecode does the same thing, but this version adds two things you'll actually hit: tiled decoding for big images, and automatic video-frame flattening so video latents come out as usable image batches.
The inputs that matter
samples(LATENT) andvae(VAE) - the obvious two.tiled(default off) - the switch that changes your life on big generations. When on, the node usesvae.decode_tiledinstead of a full decode, which trades a little quality for dramatically lower peak VRAM. On an 8GB card trying to decode a 2048px+ image, tiled is frequently the difference between "works" and "CUDA out of memory."tile_size(default 512) andtile_overlap(default 64) - the spatial tile size and how much tiles overlap to hide seams. If you see visible tile boundaries in tiled output, bump the overlap; if you're still OOMing, shrink the tile size.temporal_size(default 64) andtemporal_overlap(default 8) - the same idea applied to the time axis, for video VAEs. Defaults are a sensible start for LTX/Wan-class video latents.
The single output is image (IMAGE), ready for a save or preview node.
What it does under the hood
Full decode is just vae.decode(). Tiled mode calls decode_tiled with your tile/overlap settings for both space and time. The part that's easy to miss: if the decoded tensor comes out 5-dimensional (B T H W C - a video latent), the node flattens it to B*T H W C automatically. That means your video frames come out as one big image batch instead of a shape that downstream image nodes choke on. That flattening is the difference between this node "just working" with video models and a stock VAE decode throwing shape errors.
Where it fits
Standard text-to-image: wire the KSampler's latent here and it's the final hop before Save Image. For video: it's the decode stage that hands frame batches to whatever saves frames. For hi-res work: it's where you flip tiled on. The KB's upscaling essay is worth a read in this context - decode is also where you start if you're re-encoding for img2img, and where you end when upscaling.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Winnougan/comfyui-gigachad.git
or install comfyui-gigachad via ComfyUI Manager and restart. No requirements.txt in the pack - pure ComfyUI.
Honest verdict: it's a stock node with a tiled switch and a video convenience bolted on. If you only do 1024px SDXL stills, the stock VAEDecode is fine and this is interchangeable. If you generate big images on a tight card, or you're doing video at all, the tiled + flatten behavior is worth having. Same for its sibling - the GigachadVAEEncode in this pack mirrors these controls on the encode side.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| samples | LATENT | — | |
| vae | VAE | — | |
| tiled | BOOLEAN | false | Use tiled decoding to reduce VRAM usage for large images. |
| tile_size | INT | 51264–4096 | Spatial tile size in pixels. |
| tile_overlap | INT | 640–512 | Overlap between tiles in pixels. |
| temporal_size | INT | 648–4096 | Temporal tile size (frames) for video VAEs. |
| temporal_overlap | INT | 84–256 | Temporal overlap (frames) for video VAEs. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |