invoke-ai/InvokeAI · error · Exception

No diffusers pipeline known for base={config.base}, variant=

Error message

No diffusers pipeline known for base={config.base}, variant={config.variant}

What it means

The single-file checkpoint loader maps (base model family, pipeline variant) pairs to diffusers from_single_file pipeline classes via a nested dict. If the combination is not in the table (e.g. an unsupported base or variant), the KeyError is caught and re-raised as this Exception. It means InvokeAI has no recipe to convert that checkpoint into a diffusers pipeline.

Source

Thrown at invokeai/backend/model_manager/load/model_loaders/stable_diffusion.py:134

            },
        }
        assert isinstance(
            config,
            (
                Main_Diffusers_SD1_Config,
                Main_Diffusers_SD2_Config,
                Main_Diffusers_SDXL_Config,
                Main_Diffusers_SDXLRefiner_Config,
                Main_Checkpoint_SD1_Config,
                Main_Checkpoint_SD2_Config,
                Main_Checkpoint_SDXL_Config,
                Main_Checkpoint_SDXLRefiner_Config,
            ),
        )
        try:
            load_class = load_classes[config.base][config.variant]
        except KeyError as e:
            raise Exception(f"No diffusers pipeline known for base={config.base}, variant={config.variant}") from e

        # Without SilenceWarnings we get log messages like this:
        # site-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.
        # warnings.warn(
        # Some weights of the model checkpoint were not used when initializing CLIPTextModel:
        # ['text_model.embeddings.position_ids']
        # Some weights of the model checkpoint were not used when initializing CLIPTextModelWithProjection:
        # ['text_model.embeddings.position_ids']

        with SilenceWarnings():
            pipeline = load_class.from_single_file(config.path, torch_dtype=self._torch_dtype)

        if not submodel_type:
            return pipeline

        # Proactively load the various submodels into the RAM cache so that we don't have to re-load
        # the entire pipeline every time a new submodel is needed.
        for subtype in SubModelType:

View on GitHub (pinned to 0b6a024f2f)

Solutions

  1. Use a supported base/variant: re-tag the model config with the correct BaseModelType and ModelVariantType (SD, SDXL, SDXLRefiner, etc.).
  2. Convert the checkpoint to diffusers folder layout offline (convert_original_stable_diffusion_to_diffusers.py) and install that instead.
  3. Upgrade InvokeAI — support for new checkpoint formats is added over time.
  4. If the checkpoint is genuinely unsupported, load it with an external tool (ComfyUI/diffusers directly).

Example fix

// before: config records base=SD3 for a single-file checkpoint -> KeyError
// after: correct the config or use diffusers layout
config = Main_Checkpoint_Config_Base(
    base=BaseModelType.StableDiffusionXL,
    variant=ModelVariantType.Normal,
    path="model.safetensors",
)
Defensive patterns

Strategy: validation

Validate before calling

SUPPORTED = {(BaseModelType.StableDiffusion, ModelVariantType.Normal),
             (BaseModelType.StableDiffusionXL, ModelVariantType.Normal),
             (BaseModelType.StableDiffusionXL, ModelVariantType.Inpaint),
             (BaseModelType.StableDiffusionXLRefiner, ModelVariantType.Normal)}
if (config.base, config.variant) not in SUPPORTED:
    raise ValueError(f"Single-file load unsupported for {config.base}/{config.variant}")

Try / catch

try:
    model = loader.load_model(config, submodel_type)
except Exception as e:
    if "No diffusers pipeline known" in str(e):
        logger.error("Convert checkpoint to diffusers layout or fix base/variant config: %s", e)
    raise

Prevention

When it happens

Trigger: Loading a single-file checkpoint whose config.base/config.variant combination has no entry in load_classes — e.g. an exotic or newer base model type, or an unusual variant, resolved at stable_diffusion.py:134.

Common situations: Importing checkpoints for model families not supported for single-file loading (e.g. some SD3/Flux/non-standard bases); a config record with the wrong base/variant fields; custom or community checkpoints that aren't standard SD/SDXL/SDXL-Refiner layouts.

Related errors


AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29). Data as JSON: /api/errors/682fcbbcaad7fe3d. Report an issue: GitHub.