Nodes/comfyui-usetaesd/TAESD Decode
ComfyUI Node

TAESD Decode

Want to see your image before the slow VAE finishes? This is the node

By neocrz·Created about a year ago·Updated 10 months ago· 4
TAESD Decode
  • samples
  • IMAGE
taesd_model_nametaesd

The slowest part of a generation is usually not the sampling. It's the decode at the end, when a full VAE grinds a latent back into pixels - and on a laptop card that step can take longer than everything before it combined. TAESD Decode (class DecodeTAESD, from the neocrz/comfyui-usetaesd pack) is the shortcut: it swaps the full VAE for a Tiny AutoEncoder, a distilled approximation maybe 1% of the size, and turns that decode into a blink. One user in the TAESD tradition measured a 1024x1024 generation dropping from 27 seconds to 7 just by switching the decode path. That's the whole pitch.

You reach for it when you want to see what you got before committing to the expensive version: checking composition and pose on a batch of seeds, iterating on a prompt, previewing animation frames, or running on a card where the real VAE decode spills into system RAM. Wire its IMAGE output straight into a PreviewImage or SaveImage node. It is not a replacement for the real thing - it's the "good enough to look at" pass, and you follow it with the full-quality decode once you've picked a keeper.

How it works

TAESD models (by madebyollin) are tiny CNNs trained to mimic a full VAE's encode/decode with a fraction of the weights. This node loads the decoder, wraps it in ComfyUI's comfy.sd.VAE machinery, and - the part that matters - bakes in the correct vae_scale and vae_shift for whichever model you picked. That scaling is what makes the decode come out with the right brightness and color instead of looking like noise. It's also what makes the model choice genuinely matter, not just a label.

Models load on demand and are cached in memory, so the first run prints the loaded file paths to your console and everything after that is instant.

The inputs that matter

Only two, and one of them is the whole ballgame:

  • samples (LATENT) - the latent from your KSampler, exactly like a normal VAEDecode input.
  • taesd_model_name - an enum with four choices: taesd, taesdxl, taesd3, taef1. Default is taesd.

The model name must match the latent space you're decoding: taesd for SD 1.5, taesdxl for SDXL, taef1 for Flux. The default is fine if you're on SD 1.5 and actively wrong for everything else - a mismatch gives you a washed-out or oddly-scaled image because the scale/shift constants are per-model.

Installing it

In ComfyUI Manager, search for comfyui-usetaesd and install, or:

cd ComfyUI/custom_nodes
git clone https://github.com/neocrz/comfyui-usetaesd

Restart ComfyUI. The pack has no requirements.txt and no extra dependencies - it only uses ComfyUI core, which is rare and nice.

The catch: the model files are not bundled. Download them from HuggingFace and drop them into 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 on load. The decoder file for the selected model isn't in vae_approx. This is the same folder ComfyUI's built-in preview uses, so the fix is the same: put the file in, restart. The pack tries .safetensors, .pt, .bin, and .pth, so a file with any of those names works.
  • taesd3 and taef1 fail even with the standard downloads. Here's the trap: madebyollin's taesd3 and taef1 repos only ship a single combined diffusion_pytorch_model.safetensors, but this pack expects split taesd3_decoder.safetensors / taef1_decoder.safetensors files. In practice, taesd and taesdxl are the options that work out of the box; the other two will raise until you obtain split files that aren't published in that form.
  • Image looks soft. That's the design trade, not a bug. Fine detail gets "smooshed" by the tiny decoder; on painterly styles it's nearly invisible, on intricate detail it isn't. Keep the full VAE decode for final output.

This is a small, single-file MIT pack by neocrz - no dependencies, nothing sketchy, but also nothing more than what it claims to be: the fast preview decode.

Categorylatent/TAESD

Inputs (2)

NameTypeDefaultDescription
samplesLATENT
taesd_model_nameCOMBOtaesd4 options: taesd, taesdxl, taesd3, taef1

Outputs (1)

NameTypeDescription
IMAGEIMAGE