TAESD Decode (Tiled)
Decoding a giant latent? This node does it in tiles
- samples
- IMAGE
Sometimes the problem isn't that decode is slow - it's that a single decode won't fit in memory at all. Generate a few-thousand-pixel-wide image or a big animation frame and the full VAE decode can push the machine into swapping, which makes a 5-second job take 30 minutes. TAESD Decode (Tiled) (class DecodeTAESDTiled, from neocrz/comfyui-usetaesd) is the low-memory answer: it decodes your latent piece by piece with a Tiny AutoEncoder, so peak memory stays flat no matter how big the output is.
It's the same idea as ComfyUI's ordinary tiled VAE decode, but with TAESD's already-tiny footprint on top. If plain TAESD Decode is the "fast preview" node, this is the "fast preview on something that wouldn't otherwise preview at all" node. Big hi-res generations, batch animation renders, or an old card with 6 GB - that's the territory. You still get the approximation quality of TAESD, so treat it as the look-before-you-commit pass, not the final render.
How it works
The pack reads samples (LATENT), then calls ComfyUI's tiled decoder. The interesting bit is unit handling: ComfyUI's decode_tiled expects tile sizes in latent pixels, but the node's inputs are in image pixels - so the pack converts using the VAE's compression factor (8× for these models) before passing them through. A tile_size of 512 image pixels becomes a 64×64 latent tile. There's also a safety clamp: if your overlap is more than a quarter of the tile, it gets pulled down to tile_size // 4 so the math stays sane.
The inputs that matter
samples(LATENT) - what you're decoding, same as any VAE decode.taesd_model_name-taesd(default),taesdxl,taesd3,taef1. Match it to your model family or the colors will be off.tile_size(INT, default 512, step 64) - the tile, in image pixels. Smaller = less peak memory, more passes.overlap(INT, default 64, step 32) - pixels of overlap between tiles so seams blend instead of showing as a grid. Zero is allowed; you'll probably see seams.
Output is a single IMAGE, wired into PreviewImage or SaveImage like any other decode.
Installing it
ComfyUI Manager, search comfyui-usetaesd, or:
cd ComfyUI/custom_nodes
git clone https://github.com/neocrz/comfyui-usetaesd
Restart, and no requirements.txt drama - the pack runs on ComfyUI core alone. What it does not bundle are the TAESD files, and this node needs the decoder half in ComfyUI/models/vae_approx/:
cd ComfyUI/models/vae_approx
wget https://huggingface.co/madebyollin/taesd/resolve/main/taesd_decoder.safetensors
wget https://huggingface.co/madebyollin/taesdxl/resolve/main/taesdxl_decoder.safetensors
Common issues
FileNotFoundError- decoder file missing fromvae_approx. Same folder, same fix, same restart.taesd3/taef1won't load. madebyollin publishes those two only as a combineddiffusion_pytorch_model.safetensors, but the pack wants splittaesd3_decoder.safetensors/taef1_decoder.safetensors. Realistically you'll usetaesdandtaesdxl, which ship exactly the split files the pack expects.- Visible seams. Crank
overlapup (and keep it well undertile_size). Tiling always costs a little extra work for the three-pass blend; if the image is small enough to decode in one go, just use the non-tiledTAESD Decode- tiling is for when the one-shot path runs out of memory or crawls through RAM fallback.
Small single-file MIT pack from neocrz. No dependencies, no surprises, and for "the latent is too big to decode in one piece" it's the right tool.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| samples | LATENT | — | |
| taesd_model_name | COMBO | taesd | 4 options: taesd, taesdxl, taesd3, taef1 |
| tile_size | INT | 51264–16384 | Tile size for decoding (image pixels, converted to latent space for VAE) |
| overlap | INT | 640–16384 | Overlap between tiles (image pixels, converted to latent space for VAE) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |