{"record":{"id":"6f0dda68a50d3be8","repo":"invoke-ai/InvokeAI","slug":"checkpointconfigbase-is-not-implemented-for-qwen-i","errorCode":null,"errorMessage":"CheckpointConfigBase is not implemented for Qwen Image Edit models.","messagePattern":"CheckpointConfigBase is not implemented for Qwen Image Edit models\\.","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"invokeai/backend/model_manager/load/model_loaders/qwen_image.py","lineNumber":142,"sourceCode":"    import inspect\n\n    if is_edit and \"zero_cond_t\" in inspect.signature(QwenImageTransformer2DModel.__init__).parameters:\n        model_config[\"zero_cond_t\"] = True\n\n    return model_config\n\n\n@ModelLoaderRegistry.register(base=BaseModelType.QwenImage, type=ModelType.Main, format=ModelFormat.Diffusers)\nclass QwenImageDiffusersModel(GenericDiffusersLoader):\n    \"\"\"Class to load Qwen Image Edit main models.\"\"\"\n\n    def _load_model(\n        self,\n        config: AnyModelConfig,\n        submodel_type: Optional[SubModelType] = None,\n    ) -> AnyModel:\n        if isinstance(config, Checkpoint_Config_Base):\n            raise NotImplementedError(\"CheckpointConfigBase is not implemented for Qwen Image Edit models.\")\n\n        if submodel_type is None:\n            raise Exception(\"A submodel type must be provided when loading main pipelines.\")\n\n        model_path = Path(config.path)\n        load_class = self.get_hf_load_class(model_path, submodel_type)\n        repo_variant = config.repo_variant if isinstance(config, Diffusers_Config_Base) else None\n        variant = repo_variant.value if repo_variant else None\n        model_path = model_path / submodel_type.value\n\n        # We force bfloat16 for Qwen Image Edit models.\n        # Use `dtype` (newer) with fallback to `torch_dtype` (older diffusers).\n        dtype_kwarg = {\"dtype\": torch.bfloat16}\n        try:\n            result: AnyModel = load_class.from_pretrained(\n                model_path,\n                **dtype_kwarg,\n                variant=variant,","sourceCodeStart":124,"sourceCodeEnd":160,"githubUrl":"https://github.com/invoke-ai/InvokeAI/blob/0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06/invokeai/backend/model_manager/load/model_loaders/qwen_image.py#L124-L160","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"// before\n# models.yaml / scan import\nsource: /models/qwen_image_edit_fp8.safetensors   # -> Checkpoint_Config_Base -> NotImplementedError\n// after\nsource: /models/Qwen-Image-Edit/   # diffusers folder -> Diffusers_Config_Base","handlingStrategy":"validation","validationCode":"from invokeai.backend.model_manager.configs.base import Checkpoint_Config_Base\n\ndef ensure_diffusers_qwen(cfg: AnyModelConfig) -> None:\n    if isinstance(cfg, Checkpoint_Config_Base):\n        raise ValueError(\"Convert the Qwen Image Edit checkpoint to a diffusers folder before importing\")","typeGuard":null,"tryCatchPattern":"try:\n    model = loader._load_model(cfg, submodel_type)\nexcept NotImplementedError as e:\n    if \"CheckpointConfigBase is not implemented for Qwen\" in str(e):\n        convert_single_file_to_diffusers(cfg.path)  # then re-import\n        model = loader._load_model(cfg, submodel_type)\n    else:\n        raise","preventionTips":["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."],"tags":["python","qwen-image","diffusers","model-loading","checkpoint","invokeai"],"backgroundTag":"unsupported-model-format","analyzedSha":"0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06","analyzedAt":"2026-08-29T04:46:49.967Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}