Nodes/ComfyUI LC Audio_Video Nodes/LC VAE Decode 🧩
ComfyUI Node

LC VAE Decode 🧩

Full or tiled decoding behind one boolean, so video latents stop OOMing

By lonecatone23Β·Created 2 days agoΒ·Updated 2 days agoΒ· 1
LC VAE Decode 🧩
  • samples
  • vae
  • IMAGE
β—„tiledfalseβ–Ί
β—„tile_size512β–Ί
β—„overlap64β–Ί
β—„temporal_size64β–Ί
β—„temporal_overlap8β–Ί

Decoding is where video workflows die on small GPUs. The sampler fits, and then VAEDecode blows past VRAM turning the whole latent back into pixels at once. The core fix is tiled decoding - and LC VAE Decode is a wrapper that gives you both the normal decode and the tiled one behind a single tiled boolean, plus the tile controls, all in one node.

The honest description from the source is that it's a boolean wrapper around ComfyUI's own nodes.VAEDecode and nodes.VAEDecodeTiled - it calls the core implementations, so there's no quality difference and nothing new to learn if you already know those two. What it buys you is convenience and a video-aware default posture: for video latents it nudges you toward the MiniMax Video VAE class of things, and it keeps the tile/temporal controls visible instead of hidden in a rarely-used core node. If you're assembling video pipelines you'll be toggling this constantly while you find the settings that fit your card.

How it works

With tiled off it behaves exactly like core VAE Decode: one shot, fastest, highest VRAM. With tiled on it runs the tiled variant, decoding in spatial chunks with the four controls:

  • tile_size (default 512) - how big each spatial tile is. Smaller tiles, less VRAM.
  • overlap (default 64) - how much tiles overlap so seams don't show.
  • temporal_size (default 64) / temporal_overlap (default 8) - the same idea applied along the time axis for video latents, which is the part that actually saves you on long clips.

Inputs are samples (LATENT) and vae (VAE), output is IMAGE. Same latent and same VAE as the two core nodes - nothing is re-implemented or monkey-patched.

The settings that matter

Start with tiled off for stills - it's faster. Flip it on when a decode OOMs or when you're decoding video latents at high resolution. If tiled mode still dies, drop tile_size (512 β†’ 384 β†’ 256) before touching overlap; and if you see seams, raise overlap rather than shrinking tiles further. For video, keep temporal_size modest relative to your clip length - you don't need a temporal tile bigger than the number of latent frames you actually have.

How to install it

Ships in lonecatone23/ComfyUI_LC_AV_nodes (LC Audio_Video toolkit, MIT, by lonecatone23; companion to the image-side ComfyUI_LC123_nodes - separate repos, don't merge):

  • ComfyUI Manager: search "LC Audio_Video" or ComfyUI_LC_AV_nodes.
  • Manual: cd ComfyUI/custom_nodes && git clone https://github.com/lonecatone23/ComfyUI_LC_AV_nodes, restart ComfyUI.

Console prints [LC AV] total 16 nodes. No extra installs - it leans on core nodes that ship with ComfyUI.

Gotchas

Because it's a wrapper, it needs the core VAEDecode/VAEDecodeTiled classes present; on a normal ComfyUI install they always are. The trap people actually hit is choosing the wrong VAE: video latents want a video VAE (the MiniMax Video VAE for that family of models), and decoding video latents with a still-image VAE gives nonsense or errors regardless of which decode node you use. And remember tiled decoding is a memory workaround - expect it to be somewhat slower than a full decode that fits.

CategoryLC AV/io

Inputs (7)

NameTypeDefaultDescription
samplesLATENTβ€”
vaeVAEβ€”
tiledBOOLEANfalseOff = core VAE Decode. On = core VAE Decode (Tiled).
tile_sizeINT51264–4096β€”
overlapINT640–4096β€”
temporal_sizeINT648–4096β€”
temporal_overlapINT84–4096β€”

Outputs (1)

NameTypeDescription
IMAGEIMAGEβ€”