{"record":{"id":"1cb1dbd59db695db","repo":"invoke-ai/InvokeAI","slug":"only-checkpointconfigbase-models-are-currently-sup","errorCode":null,"errorMessage":"Only CheckpointConfigBase models are currently supported here.","messagePattern":"Only CheckpointConfigBase models are currently supported here\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"invokeai/backend/model_manager/load/model_loaders/qwen_image.py","lineNumber":192,"sourceCode":"                result = load_class.from_pretrained(model_path, **dtype_kwarg, local_files_only=True)\n            else:\n                raise e\n\n        result = self._apply_fp8_layerwise_casting(result, config, submodel_type)\n        return result\n\n\n@ModelLoaderRegistry.register(base=BaseModelType.QwenImage, type=ModelType.Main, format=ModelFormat.GGUFQuantized)\nclass QwenImageGGUFCheckpointModel(ModelLoader):\n    \"\"\"Class to load GGUF-quantized Qwen Image Edit transformer models.\"\"\"\n\n    def _load_model(\n        self,\n        config: AnyModelConfig,\n        submodel_type: Optional[SubModelType] = None,\n    ) -> AnyModel:\n        if not isinstance(config, Checkpoint_Config_Base):\n            raise ValueError(\"Only CheckpointConfigBase models are currently supported here.\")\n\n        match submodel_type:\n            case SubModelType.Transformer:\n                return self._load_from_singlefile(config)\n\n        raise ValueError(\n            f\"Only Transformer submodels are currently supported. Received: {submodel_type.value if submodel_type else 'None'}\"\n        )\n\n    def _load_from_singlefile(self, config: AnyModelConfig) -> AnyModel:\n        from diffusers import QwenImageTransformer2DModel\n\n        if not isinstance(config, Main_GGUF_QwenImage_Config):\n            raise TypeError(f\"Expected Main_GGUF_QwenImage_Config, got {type(config).__name__}.\")\n        model_path = Path(config.path)\n\n        target_device = TorchDevice.choose_torch_device()\n        compute_dtype = TorchDevice.choose_bfloat16_safe_dtype(target_device)","sourceCodeStart":174,"sourceCodeEnd":210,"githubUrl":"https://github.com/invoke-ai/InvokeAI/blob/0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06/invokeai/backend/model_manager/load/model_loaders/qwen_image.py#L174-L210","documentation":"The Qwen Image single-file (checkpoint) loader only accepts configs deriving from CheckpointConfigBase. When _load_model receives a diffusers-folder style config (e.g. Main_Diffusers_Config or a GGUF config class not based on checkpoint), it raises this ValueError because the single-file loading path cannot handle it.","triggerScenarios":"Registering a Qwen Image single-file model but having it resolved with a non-checkpoint config class, or calling the checkpoint-registered loader's _load_model with a Diffusers/GGUF config object.","commonSituations":"Model format misdetected during scan (single-file .safetensors registered as diffusers); wrong ModelFormat on import; hand-constructed config passed to the wrong loader.","solutions":["Re-import or re-convert the model so it is registered with a CheckpointConfigBase-derived config (Main_Checkpoint_QwenImage_Config or Main_GGUF_QwenImage_Config).","Verify the model's format in the model manager UI/API matches its actual file layout (single-file vs diffusers folder).","If the model is truly a diffusers folder, use the diffusers-registered Qwen Image loader instead."],"exampleFix":"// before\nconfig = Main_Diffusers_Config(path=..., model_format=...)  # folder-style config\nmodel = checkpoint_loader._load_model(config, SubModelType.Transformer)\n// after\nconfig = Main_Checkpoint_QwenImage_Config(path=model_file, config=ConfigVariantEnum.QwenImage)\nmodel = checkpoint_loader._load_model(config, SubModelType.Transformer)","handlingStrategy":"type-guard","validationCode":"from invokeai.backend.model_manager.config import Checkpoint_Config_Base\nif not isinstance(config, Checkpoint_Config_Base):\n    raise TypeError(f\"Single-file loader needs a checkpoint config, got {type(config).__name__}\")","typeGuard":"def is_checkpoint_config(config: AnyModelConfig) -> bool:\n    return isinstance(config, Checkpoint_Config_Base)","tryCatchPattern":"try:\n    model = loader._load_model(config, SubModelType.Transformer)\nexcept ValueError as e:\n    if \"Only CheckpointConfigBase\" in str(e):\n        config = reimport_model_with_correct_format(model_path)  # re-scan/re-register\n        model = loader._load_model(config, SubModelType.Transformer)\n    else:\n        raise","preventionTips":["Match the model record's format field to the on-disk layout (single-file vs folder)","Re-scan the models directory after moving or converting model files","Check isinstance before calling format-specific loaders directly"],"tags":["model-loader","invokeai","checkpoint","config-type"],"backgroundTag":"invalid-config-type","analyzedSha":"0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06","analyzedAt":"2026-08-29T04:46:49.967Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}