invoke-ai/InvokeAI · error · ValueError
Unsupported model base: {model_identifier.base}
Error message
Unsupported model base: {model_identifier.base} What it means
preprocess_t5_encoder_model_identifier normalizes a T5 text-encoder model identifier so it points at the right submodel (TextEncoder2 for Flux, TextEncoder3 for StableDiffusion3, TextEncoder for T5-family bases). Bases outside the supported set have no T5 encoder mapping, so ValueError is raised with the offending base value.
Source
Thrown at invokeai/app/util/t5_model_identifier.py:16
from invokeai.app.invocations.model import ModelIdentifierField
from invokeai.backend.model_manager.taxonomy import BaseModelType, SubModelType
def preprocess_t5_encoder_model_identifier(model_identifier: ModelIdentifierField) -> ModelIdentifierField:
"""A helper function to normalize a T5 encoder model identifier so that T5 models associated with FLUX
or SD3 models can be used interchangeably.
"""
if model_identifier.base == BaseModelType.Any:
return model_identifier.model_copy(update={"submodel_type": SubModelType.TextEncoder2})
elif model_identifier.base == BaseModelType.Flux:
return model_identifier.model_copy(update={"submodel_type": SubModelType.TextEncoder2})
elif model_identifier.base == BaseModelType.StableDiffusion3:
return model_identifier.model_copy(update={"submodel_type": SubModelType.TextEncoder3})
else:
raise ValueError(f"Unsupported model base: {model_identifier.base}")
def preprocess_t5_tokenizer_model_identifier(model_identifier: ModelIdentifierField) -> ModelIdentifierField:
"""A helper function to normalize a T5 tokenizer model identifier so that T5 models associated with FLUX
or SD3 models can be used interchangeably.
"""
if model_identifier.base == BaseModelType.Any:
return model_identifier.model_copy(update={"submodel_type": SubModelType.Tokenizer2})
elif model_identifier.base == BaseModelType.Flux:
return model_identifier.model_copy(update={"submodel_type": SubModelType.Tokenizer2})
elif model_identifier.base == BaseModelType.StableDiffusion3:
return model_identifier.model_copy(update={"submodel_type": SubModelType.Tokenizer3})
else:
raise ValueError(f"Unsupported model base: {model_identifier.base}")
View on GitHub (pinned to 0b6a024f2f)
Solutions
- Use a T5, Flux, or StableDiffusion3 model as the T5 encoder identifier
- Update the workflow/graph to reference the correct encoder model for the model family
- Fix the model identifier's base/submodel fields if the stored record is stale
- Check preprocessing of the tokenizer counterpart (preprocess_t5_tokenizer_model_identifier) uses a matching supported base
Example fix
// before encoder = ModelIdentifierField(base=BaseModelType.StableDiffusion1, ...) # unsupported // after encoder = ModelIdentifierField(base=BaseModelType.StableDiffusion3, ..., submodel_type=SubModelType.TextEncoder3)
Defensive patterns
Strategy: validation
Validate before calling
from invokeai.backend.model_manager.config import BaseModelType
T5_ENCODER_BASES = {BaseModelType.T5Encoder, BaseModelType.Flux, BaseModelType.StableDiffusion3}
def t5_encoder_ok(model_identifier):
return model_identifier.base in T5_ENCODER_BASES Type guard
def is_t5_capable_base(identifier):
return getattr(identifier, 'base', None) in (
BaseModelType.T5Encoder, BaseModelType.Flux, BaseModelType.StableDiffusion3
) Try / catch
try:
encoder_id = preprocess_t5_encoder_model_identifier(identifier)
except ValueError as e:
if 'Unsupported model base' in str(e):
raise ValueError(f"{identifier.base} cannot supply a T5 encoder; use a T5/Flux/SD3 model") from e
raise Prevention
- Only assign T5-family/Flux/SD3 models to T5 encoder slots
- Validate model identifiers when loading saved workflows
- Keep base and submodel_type consistent in ModelIdentifierField
When it happens
Trigger: Calling invoke with a T5 encoder model whose ModelIdentifierField.base is e.g. StableDiffusion1/2-XL or another non-SD3/Flux/T5 base.
Common situations: Selecting an SD1.5 or SDXL checkpoint as the T5 encoder in a Flux/SD3 workflow; misconfigured model identifier stored in a graph after switching model families; stale saved workflows referencing a different base.
Related errors
- Unsupported base model: {base_model}
- Invalid mode selected
- Unexpected control_input type: ${type(control_input)}
- Unexpected T2I-Adapter base model type: '${t2i_adapter_model
- 'latents' or 'noise' must be provided!
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/4ff9bf63ff84c317.
Report an issue: GitHub.