AUTOMATIC1111/stable-diffusion-webui · error · Exception
Could not find checkpoint with name {p.refiner_checkpoint}
Error message
Could not find checkpoint with name {p.refiner_checkpoint} What it means
At the start of process_images, if p.refiner_checkpoint is set (not None/''), sd_models.get_closet_checkpoint_match is used to resolve it to a CheckpointInfo; when no loaded-or-known checkpoint matches the string, None is returned and this Exception stops the run. It guards against a stale or mistyped refiner model name in the generation request.
Source
Thrown at modules/processing.py:885
assert(len(p.prompt) > 0)
else:
assert p.prompt is not None
devices.torch_gc()
seed = get_fixed_seed(p.seed)
subseed = get_fixed_seed(p.subseed)
if p.restore_faces is None:
p.restore_faces = opts.face_restoration
if p.tiling is None:
p.tiling = opts.tiling
if p.refiner_checkpoint not in (None, "", "None", "none"):
p.refiner_checkpoint_info = sd_models.get_closet_checkpoint_match(p.refiner_checkpoint)
if p.refiner_checkpoint_info is None:
raise Exception(f'Could not find checkpoint with name {p.refiner_checkpoint}')
if hasattr(shared.sd_model, 'fix_dimensions'):
p.width, p.height = shared.sd_model.fix_dimensions(p.width, p.height)
p.sd_model_name = shared.sd_model.sd_checkpoint_info.name_for_extra
p.sd_model_hash = shared.sd_model.sd_model_hash
p.sd_vae_name = sd_vae.get_loaded_vae_name()
p.sd_vae_hash = sd_vae.get_loaded_vae_hash()
modules.sd_hijack.model_hijack.apply_circular(p.tiling)
modules.sd_hijack.model_hijack.clear_comments()
p.fill_fields_from_opts()
p.setup_prompts()
if isinstance(seed, list):
p.all_seeds = seed
else:
View on GitHub (pinned to 82a973c043)
Solutions
- Download or restore the refiner checkpoint .safetensors/.ckpt into models/Stable-diffusion and refresh the checkpoint list.
- Or clear the refiner selection (refiner_checkpoint: null / 'None' / '') if you don't want the refiner pass.
- Use the exact title shown in the UI checkpoint dropdown; get_closet_checkpoint_match does substring/hash matching, so a distinctive substring of the real filename works.
Example fix
# before p.refiner_checkpoint = 'sd_xl_refiner_1.0' # not on disk -> Exception # after p.refiner_checkpoint = None # skip refiner pass
Defensive patterns
Strategy: validation
Validate before calling
from modules import sd_models
def resolve_refiner(name):
if name in (None, '', 'None', 'none'):
return None
info = sd_models.get_closet_checkpoint_match(name)
if info is None:
raise ValueError(f'refiner {name!r} not present; download it or clear the field')
return info
p.refiner_checkpoint = resolve_refiner(p.refiner_checkpoint) Type guard
def checkpoint_exists(name: str) -> bool:
return sd_models.get_closet_checkpoint_match(name) is not None Try / catch
try:
processed = process_images(p)
except Exception as e:
if 'Could not find checkpoint' in str(e) and 'refiner' not in str(e):
# message contains the refiner name; null it and retry without the refine pass
p.refiner_checkpoint = None
processed = process_images(p)
else:
raise Prevention
- Validate refiner_checkpoint against the checkpoint list before submitting jobs.
- Clear saved refiner selection after deleting models from models/Stable-diffusion.
When it happens
Trigger: Sending a txt2img request with refiner_checkpoint: 'sd_x_refiner_1.5' when no checkpoint with that name/hash/substring exists in models/Stable-diffusion (not downloaded, deleted, or misspelled).
Common situations: Refiner model was removed from the models directory but still selected in saved defaults; name typo in an API call; shared config where the refiner exists on one machine but not another.
Related errors
- Could not find checkpoint with name {self.hr_checkpoint_name
- When merging inpainting model with a normal one, A must be t
- When merging instruct-pix2pix model with a normal one, A mus
- No GFPGAN model found
- Model file {path} not found
AI-assisted analysis of AUTOMATIC1111/stable-diffusion-webui@82a973c043 (2026-08-14).
Data as JSON: /api/errors/5b27ddd4b9abf529.
Report an issue: GitHub.