invoke-ai/InvokeAI · error · ValueError
Only Transformer submodels are currently supported. Received
Error message
Only Transformer submodels are currently supported. Received: {submodel_type.value if submodel_type else 'None'} What it means
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.
Source
Thrown at invokeai/backend/model_manager/load/model_loaders/qwen_image.py:198
@ModelLoaderRegistry.register(base=BaseModelType.QwenImage, type=ModelType.Main, format=ModelFormat.GGUFQuantized)
class QwenImageGGUFCheckpointModel(ModelLoader):
"""Class to load GGUF-quantized Qwen Image Edit transformer models."""
def _load_model(
self,
config: AnyModelConfig,
submodel_type: Optional[SubModelType] = None,
) -> AnyModel:
if not isinstance(config, Checkpoint_Config_Base):
raise ValueError("Only CheckpointConfigBase models are currently supported here.")
match submodel_type:
case SubModelType.Transformer:
return self._load_from_singlefile(config)
raise ValueError(
f"Only Transformer submodels are currently supported. Received: {submodel_type.value if submodel_type else 'None'}"
)
def _load_from_singlefile(self, config: AnyModelConfig) -> AnyModel:
from diffusers import QwenImageTransformer2DModel
if not isinstance(config, Main_GGUF_QwenImage_Config):
raise TypeError(f"Expected Main_GGUF_QwenImage_Config, got {type(config).__name__}.")
model_path = Path(config.path)
target_device = TorchDevice.choose_torch_device()
compute_dtype = TorchDevice.choose_bfloat16_safe_dtype(target_device)
sd = gguf_sd_loader(model_path, compute_dtype=compute_dtype)
sd = _strip_comfyui_prefix(sd)
is_edit = getattr(config, "variant", None) == QwenImageVariantType.Edit
model_config = _build_qwen_image_transformer_config(sd, is_edit=is_edit)View on GitHub (pinned to 0b6a024f2f)
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.
Example fix
// before vae = loader._load_model(config, SubModelType.VAE) # unsupported // after transformer = loader._load_model(config, SubModelType.Transformer) # only supported case vae = vae_loader._load_model(vae_config, SubModelType.VAE)
Defensive patterns
Strategy: validation
Validate before calling
SUPPORTED = {SubModelType.Transformer}
if submodel_type not in SUPPORTED:
raise ValueError(f"Qwen Image single-file loader supports only Transformer, got {submodel_type}") Type guard
def is_transformer_submodel(sub: SubModelType | None) -> bool:
return sub == SubModelType.Transformer Try / catch
try:
model = loader._load_model(config, submodel_type)
except ValueError as e:
if "Only Transformer submodels" in str(e):
logger.warning("Use dedicated loaders for VAE/text-encoder components")
else:
raise Prevention
- 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
When it happens
Trigger: 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).
Common situations: 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.
Related errors
- Only Tokenizer and TextEncoder submodels are supported. Rece
- A submodel type must be provided when loading main pipelines
- No VAE source provided. Single-file / GGUF transformers requ
- No Mistral encoder source provided. Single-file / GGUF trans
- Unknown model: {key}
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/3cf036a70bc8dba3.
Report an issue: GitHub.