{"record":{"id":"3cf036a70bc8dba3","repo":"invoke-ai/InvokeAI","slug":"only-transformer-submodels-are-currently-supported","errorCode":null,"errorMessage":"Only Transformer submodels are currently supported. Received: {submodel_type.value if submodel_type else 'None'}","messagePattern":"Only Transformer submodels are currently supported\\. Received: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"invokeai/backend/model_manager/load/model_loaders/qwen_image.py","lineNumber":198,"sourceCode":"\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)\n\n        sd = gguf_sd_loader(model_path, compute_dtype=compute_dtype)\n        sd = _strip_comfyui_prefix(sd)\n\n        is_edit = getattr(config, \"variant\", None) == QwenImageVariantType.Edit\n        model_config = _build_qwen_image_transformer_config(sd, is_edit=is_edit)","sourceCodeStart":180,"sourceCodeEnd":216,"githubUrl":"https://github.com/invoke-ai/InvokeAI/blob/0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06/invokeai/backend/model_manager/load/model_loaders/qwen_image.py#L180-L216","documentation":"The Qwen Image checkpoint loader's _load_model only implements a SubModelType.Transformer case; any other submodel type (vae, text_encoder, tokenizer, or None) falls through the match statement and raises this ValueError. The error message includes the actual submodel type received.","triggerScenarios":"Calling the single-file checkpoint loader's _load_model with submodel_type set to anything other than SubModelType.Transformer (e.g. SubModelType.VAE or None).","commonSituations":"A main-checkpoint model registered with a base model type that makes the manager request VAE/text-encoder submodels from this loader; custom code iterating all submodels of a checkpoint pipeline.","solutions":["Load only the transformer from single-file checkpoints; load VAE/text-encoder/tokenizer components from separate models.","If you need full pipeline loading from one checkpoint, use a different loader or extract components into separate model entries.","Ensure the model is registered with ModelType.Main / the right base so the manager does not request unsupported submodels."],"exampleFix":"// before\nvae = loader._load_model(config, SubModelType.VAE)  # unsupported\n// after\ntransformer = loader._load_model(config, SubModelType.Transformer)  # only supported case\nvae = vae_loader._load_model(vae_config, SubModelType.VAE)","handlingStrategy":"validation","validationCode":"SUPPORTED = {SubModelType.Transformer}\nif submodel_type not in SUPPORTED:\n    raise ValueError(f\"Qwen Image single-file loader supports only Transformer, got {submodel_type}\")","typeGuard":"def is_transformer_submodel(sub: SubModelType | None) -> bool:\n    return sub == SubModelType.Transformer","tryCatchPattern":"try:\n    model = loader._load_model(config, submodel_type)\nexcept ValueError as e:\n    if \"Only Transformer submodels\" in str(e):\n        logger.warning(\"Use dedicated loaders for VAE/text-encoder components\")\n    else:\n        raise","preventionTips":["Only pass SubModelType.Transformer to single-file Qwen Image loaders","Register VAE/text-encoder/tokenizer as separate model entries","Read the loader's match statement to learn supported submodels"],"tags":["model-loader","invokeai","submodel-type","unsupported"],"backgroundTag":"unsupported-variant","analyzedSha":"0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06","analyzedAt":"2026-08-29T04:46:49.967Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}