invoke-ai/InvokeAI · error · NotImplementedError
CheckpointConfigBase is not implemented for Qwen Image Edit
Error message
CheckpointConfigBase is not implemented for Qwen Image Edit models.
What it means
The Qwen Image Edit diffusers loader only supports diffusers-folder model records: if the config is a Checkpoint_Config_Base (single-checkpoint format) it raises NotImplementedError, because loading the Qwen Edit transformer from a bare checkpoint file is not implemented in this loader. The error tells the user to convert the model to a diffusers layout (or use a diffusers-format download) instead.
Source
Thrown at invokeai/backend/model_manager/load/model_loaders/qwen_image.py:142
import inspect
if is_edit and "zero_cond_t" in inspect.signature(QwenImageTransformer2DModel.__init__).parameters:
model_config["zero_cond_t"] = True
return model_config
@ModelLoaderRegistry.register(base=BaseModelType.QwenImage, type=ModelType.Main, format=ModelFormat.Diffusers)
class QwenImageDiffusersModel(GenericDiffusersLoader):
"""Class to load Qwen Image Edit main models."""
def _load_model(
self,
config: AnyModelConfig,
submodel_type: Optional[SubModelType] = None,
) -> AnyModel:
if isinstance(config, Checkpoint_Config_Base):
raise NotImplementedError("CheckpointConfigBase is not implemented for Qwen Image Edit models.")
if submodel_type is None:
raise Exception("A submodel type must be provided when loading main pipelines.")
model_path = Path(config.path)
load_class = self.get_hf_load_class(model_path, submodel_type)
repo_variant = config.repo_variant if isinstance(config, Diffusers_Config_Base) else None
variant = repo_variant.value if repo_variant else None
model_path = model_path / submodel_type.value
# We force bfloat16 for Qwen Image Edit models.
# Use `dtype` (newer) with fallback to `torch_dtype` (older diffusers).
dtype_kwarg = {"dtype": torch.bfloat16}
try:
result: AnyModel = load_class.from_pretrained(
model_path,
**dtype_kwarg,
variant=variant,View on GitHub (pinned to 0b6a024f2f)
Solutions
- Download/use the diffusers-format Qwen Image Edit model (folder with transformer/, text_encoder/, vae/, tokenizer/) and add that instead.
- Convert the single checkpoint into a diffusers layout with the official conversion script, then re-import into InvokeAI.
- Add the model via the model manager so it is detected as ModelFormat.Diffusers, not Checkpoint.
- If you only have a checkpoint, use a diffusers conversion pipeline (e.g. from_single_file on the upstream diffusers class) outside InvokeAI, then import the result.
Example fix
// before # models.yaml / scan import source: /models/qwen_image_edit_fp8.safetensors # -> Checkpoint_Config_Base -> NotImplementedError // after source: /models/Qwen-Image-Edit/ # diffusers folder -> Diffusers_Config_Base
Defensive patterns
Strategy: validation
Validate before calling
from invokeai.backend.model_manager.configs.base import Checkpoint_Config_Base
def ensure_diffusers_qwen(cfg: AnyModelConfig) -> None:
if isinstance(cfg, Checkpoint_Config_Base):
raise ValueError("Convert the Qwen Image Edit checkpoint to a diffusers folder before importing") Try / catch
try:
model = loader._load_model(cfg, submodel_type)
except NotImplementedError as e:
if "CheckpointConfigBase is not implemented for Qwen" in str(e):
convert_single_file_to_diffusers(cfg.path) # then re-import
model = loader._load_model(cfg, submodel_type)
else:
raise Prevention
- Add Qwen Image Edit models only in diffusers-folder form.
- Run the upstream single-file->diffusers conversion before importing checkpoints.
- Verify ModelFormat is Diffusers (not Checkpoint) in the model record before loading.
When it happens
Trigger: Registering a Qwen Image Edit model from a single checkpoint file (.safetensors single-file main model) so the record becomes a Checkpoint_Config_Base and dispatches to QwenImageDiffusersModel; adding a base-model Qwen checkpoint expecting automatic conversion.
Common situations: Users downloading a single-file Qwen Image Edit safetensors from a model hub and adding it as a Main/Checkpoint model; migration from other UIs that reference single-file checkpoints; missing diffusers-format conversion step.
Related errors
- Unrecognised PiD decoder checkpoint extension: {suffix!r}
- To extract the VAE and Qwen3-VL encoder, the {model_name} mo
- Only MistralEncoder_Diffusers_Config models are supported he
- Only Tokenizer and TextEncoder submodels are supported. Rece
- Only MistralEncoder_Checkpoint_Config models are supported h
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/6f0dda68a50d3be8.
Report an issue: GitHub.