TAESD Decode
Want to see your image before the slow VAE finishes? This is the node
- samples
- IMAGE
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 normalVAEDecodeinput.taesd_model_name- an enum with four choices:taesd,taesdxl,taesd3,taef1. Default istaesd.
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
FileNotFoundErroron load. The decoder file for the selected model isn't invae_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.taesd3andtaef1fail even with the standard downloads. Here's the trap: madebyollin'staesd3andtaef1repos only ship a single combineddiffusion_pytorch_model.safetensors, but this pack expects splittaesd3_decoder.safetensors/taef1_decoder.safetensorsfiles. In practice,taesdandtaesdxlare 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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| samples | LATENT | — | |
| taesd_model_name | COMBO | taesd | 4 options: taesd, taesdxl, taesd3, taef1 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |