Nodes/comfyui-usetaesd/TAESD Decode (Tiled)
ComfyUI Node

TAESD Decode (Tiled)

Decoding a giant latent? This node does it in tiles

By neocrz·Created about a year ago·Updated 10 months ago· 4
TAESD Decode (Tiled)
  • samples
  • IMAGE
taesd_model_nametaesd
tile_size512
overlap64

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 from vae_approx. Same folder, same fix, same restart.
  • taesd3 / taef1 won't load. madebyollin publishes those two only as a combined diffusion_pytorch_model.safetensors, but the pack wants split taesd3_decoder.safetensors / taef1_decoder.safetensors. Realistically you'll use taesd and taesdxl, which ship exactly the split files the pack expects.
  • Visible seams. Crank overlap up (and keep it well under tile_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-tiled TAESD 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.

Categorylatent/TAESD

Inputs (4)

NameTypeDefaultDescription
samplesLATENT
taesd_model_nameCOMBOtaesd4 options: taesd, taesdxl, taesd3, taef1
tile_sizeINT51264–16384Tile size for decoding (image pixels, converted to latent space for VAE)
overlapINT640–16384Overlap between tiles (image pixels, converted to latent space for VAE)

Outputs (1)

NameTypeDescription
IMAGEIMAGE