AUTOMATIC1111/stable-diffusion-webui · critical · FileNotFoundError
No checkpoints found. When searching for checkpoints, looked
Error message
No checkpoints found. When searching for checkpoints, looked at:
- file {os.path.abspath(shared.cmd_opts.ckpt)}
- directory {model_path}
- directory {os.path.abspath(shared.cmd_opts.ckpt_dir)}
Can't run without a checkpoint. Find and place a .ckpt or .safetensors file into any of those locations. What it means
Raised by sd_models.py's checkpoint selection when checkpoints_list is empty: startup model discovery found no .ckpt/.safetensors in the models/Stable-diffusion directory, the --ckpt file, or --ckpt_dir. The WebUI cannot build a model without weights, so it raises FileNotFoundError listing every location it searched.
Source
Thrown at modules/sd_models.py:234
def select_checkpoint():
"""Raises `FileNotFoundError` if no checkpoints are found."""
model_checkpoint = shared.opts.sd_model_checkpoint
checkpoint_info = checkpoint_aliases.get(model_checkpoint, None)
if checkpoint_info is not None:
return checkpoint_info
if len(checkpoints_list) == 0:
error_message = "No checkpoints found. When searching for checkpoints, looked at:"
if shared.cmd_opts.ckpt is not None:
error_message += f"\n - file {os.path.abspath(shared.cmd_opts.ckpt)}"
error_message += f"\n - directory {model_path}"
if shared.cmd_opts.ckpt_dir is not None:
error_message += f"\n - directory {os.path.abspath(shared.cmd_opts.ckpt_dir)}"
error_message += "Can't run without a checkpoint. Find and place a .ckpt or .safetensors file into any of those locations."
raise FileNotFoundError(error_message)
checkpoint_info = next(iter(checkpoints_list.values()))
if model_checkpoint is not None:
print(f"Checkpoint {model_checkpoint} not found; loading fallback {checkpoint_info.title}", file=sys.stderr)
return checkpoint_info
checkpoint_dict_replacements_sd1 = {
'cond_stage_model.transformer.embeddings.': 'cond_stage_model.transformer.text_model.embeddings.',
'cond_stage_model.transformer.encoder.': 'cond_stage_model.transformer.text_model.encoder.',
'cond_stage_model.transformer.final_layer_norm.': 'cond_stage_model.transformer.text_model.final_layer_norm.',
}
checkpoint_dict_replacements_sd2_turbo = { # Converts SD 2.1 Turbo from SGM to LDM format.
'conditioner.embedders.0.': 'cond_stage_model.',
}
View on GitHub (pinned to 82a973c043)
Solutions
- Place a .ckpt or .safetensors file into the models/Stable-diffusion directory shown in the message
- If using --ckpt, verify the path exists (ls the absolute path printed in the error)
- If using --ckpt_dir, confirm it is the directory that actually contains the weights
- Re-download the model (e.g. from huggingface.co/stabilityai or civitai) if the file was deleted or truncated to 0 bytes
Defensive patterns
Strategy: validation
Validate before calling
import os, glob
ckpt_dirs = [os.path.join('models', 'Stable-diffusion')]
found = [f for d in ckpt_dirs for f in glob.glob(os.path.join(d, '*.safetensors')) + glob.glob(os.path.join(d, '*.ckpt'))]
assert found, 'No checkpoint present; download one before launching' Prevention
- Keep at least one .safetensors in models/Stable-diffusion before launching
- Script installs: download the model first, then start the WebUI
- Pin --ckpt/--ckpt_dir to stable absolute paths in service definitions
When it happens
Trigger: First launch with no model downloaded; --ckpt pointing to a moved/deleted file; --ckpt_dir set to an empty or wrong directory; model directory permissions preventing enumeration; model file with an unsupported extension.
Common situations: Fresh installs where the user expected a bundled model; moving model folders and forgetting the --ckpt_dir flag; headless/API setups whose launch script passes a stale checkpoint path.
Related errors
- Multiple data.pkl found in {filename}
- Unknown checkpoint: {x}
- Lora layer {self.network_key} matched a layer with unsupport
- Could not find a module type (out of {', '.join([x.__class__
- Invalid image format
AI-assisted analysis of AUTOMATIC1111/stable-diffusion-webui@82a973c043 (2026-08-14).
Data as JSON: /api/errors/0ce95fafb2bd3b25.
Report an issue: GitHub.