AUTOMATIC1111/stable-diffusion-webui · warning · FileNotFoundError
TAESD model not found
Error message
TAESD model not found
What it means
decoder_model() in sd_vae_taesd.py loads the TAESD tiny-VAE used for fast live previews. It tries to auto-download the .pth from github.com/madebyollin/taesd into models/VAE-taesd/; if after the download attempt the file still does not exist (offline, blocked GitHub, proxy failure), it raises FileNotFoundError.
Source
Thrown at modules/sd_vae_taesd.py:117
model_name = "taesd3_decoder.pth"
elif shared.sd_model.is_sdxl:
model_name = "taesdxl_decoder.pth"
else:
model_name = "taesd_decoder.pth"
loaded_model = sd_vae_taesd_models.get(model_name)
if loaded_model is None:
model_path = os.path.join(paths_internal.models_path, "VAE-taesd", model_name)
download_model(model_path, 'https://github.com/madebyollin/taesd/raw/main/' + model_name)
if os.path.exists(model_path):
loaded_model = TAESDDecoder(model_path)
loaded_model.eval()
loaded_model.to(devices.device, devices.dtype)
sd_vae_taesd_models[model_name] = loaded_model
else:
raise FileNotFoundError('TAESD model not found')
return loaded_model.decoder
def encoder_model():
if shared.sd_model.is_sd3:
model_name = "taesd3_encoder.pth"
elif shared.sd_model.is_sdxl:
model_name = "taesdxl_encoder.pth"
else:
model_name = "taesd_encoder.pth"
loaded_model = sd_vae_taesd_models.get(model_name)
if loaded_model is None:
model_path = os.path.join(paths_internal.models_path, "VAE-taesd", model_name)
download_model(model_path, 'https://github.com/madebyollin/taesd/raw/main/' + model_name)
View on GitHub (pinned to 82a973c043)
Solutions
- Manually download the file named in the code (taesd_decoder.pth / taesdxl_decoder.pth / taesd3_decoder.pth depending on your model) from the madebyollin/taesd GitHub repo into models/VAE-taesd/
- Fix network/proxy so the auto-download works, then reload the UI
- Switch live preview mode back to 'Approximation' (Settings > Live preview) which needs no extra weights
Defensive patterns
Strategy: try-catch
Validate before calling
import os
from modules import shared, paths_internal
def taesd_decoder_cached():
name = 'taesd3_decoder.pth' if shared.sd_model.is_sd3 else ('taesdxl_decoder.pth' if shared.sd_model.is_sdxl else 'taesd_decoder.pth')
return os.path.exists(os.path.join(paths_internal.models_path, 'VAE-taesd', name)) Try / catch
try:
dec = sd_vae_taesd.decoder_model()
except FileNotFoundError:
# fall back to approximation preview; do not block generation
shared.opts.live_preview_method = 'Approximation' Prevention
- Pre-download TAESD weights into models/VAE-taesd/ during image build/provisioning
- Keep the fallback preview mode in settings if the host has no internet
- Monitor that the auto-download succeeded on first use before relying on live previews
When it happens
Trigger: Setting Settings > Live preview VAE mode to 'TAESD' (or Cheap-Preview on older builds) on first use with no cached model, while the machine cannot reach raw.githubusercontent.com; or the download wrote a 0-byte/renamed file so os.path.exists() is false.
Common situations: Air-gapped or firewalled deployments; China-region networks where GitHub is unreachable; CI containers without outbound network.
Related errors
- Request to local resource not allowed
- Invalid image url
- RealESRGAN data missing: {scaler.local_data_path}
AI-assisted analysis of AUTOMATIC1111/stable-diffusion-webui@82a973c043 (2026-08-14).
Data as JSON: /api/errors/b1e91f44057c3931.
Report an issue: GitHub.