invoke-ai/InvokeAI · error · ValueError
Only MistralEncoder_Checkpoint_Config models are supported h
Error message
Only MistralEncoder_Checkpoint_Config models are supported here.
What it means
MistralEncoderCheckpointLoader._load_model (single-file safetensors format) requires the config to be MistralEncoder_Checkpoint_Config and raises a ValueError otherwise. This loader is registered for ModelType.MistralEncoder with format Checkpoint; receiving a Diffusers-folder or GGUF config means the caller bypassed the registry's format-based dispatch or built a mismatched config record.
Source
Thrown at invokeai/backend/model_manager/load/model_loaders/mistral_encoder.py:904
f"Received: {submodel_type.value if submodel_type else 'None'}"
)
@ModelLoaderRegistry.register(
base=BaseModelType.Any,
type=ModelType.MistralEncoder,
format=ModelFormat.Checkpoint,
)
class MistralEncoderCheckpointLoader(ModelLoader):
"""Load a Mistral encoder from a single safetensors file (text-only)."""
def _load_model(
self,
config: AnyModelConfig,
submodel_type: Optional[SubModelType] = None,
) -> AnyModel:
if not isinstance(config, MistralEncoder_Checkpoint_Config):
raise ValueError("Only MistralEncoder_Checkpoint_Config models are supported here.")
match submodel_type:
case SubModelType.TextEncoder:
return self._load_text_encoder(config)
case SubModelType.Tokenizer:
logger = InvokeAILogger.get_logger("MistralEncoderProcessor")
return _load_tokenizer_for_model(Path(config.path), logger)
raise ValueError(
"Only Tokenizer and TextEncoder submodels are supported. "
f"Received: {submodel_type.value if submodel_type else 'None'}"
)
def _load_text_encoder(self, config: MistralEncoder_Checkpoint_Config) -> AnyModel:
from safetensors.torch import load_file
logger = InvokeAILogger.get_logger(self.__class__.__name__)
target_device = TorchDevice.choose_torch_device()View on GitHub (pinned to 0b6a024f2f)
Solutions
- Supply a MistralEncoder_Checkpoint_Config whose path points to the single safetensors file.
- Let the ModelManager/model loader registry resolve the loader from the config's format instead of instantiating MistralEncoderCheckpointLoader directly.
- For GGUF files use the GGUF loader path (MistralEncoderGGUFLoader); for HF folders use MistralEncoderDiffusersLoader.
- Re-import/convert the model so InvokeAI generates a config record matching the actual file format.
Example fix
// before model = checkpoint_loader._load_model(gguf_cfg, SubModelType.TextEncoder) # ValueError // after from invokeai.backend.model_manager.configs.mistral import MistralEncoder_Checkpoint_Config assert isinstance(cfg, MistralEncoder_Checkpoint_Config) model = checkpoint_loader._load_model(cfg, SubModelType.TextEncoder)
Defensive patterns
Strategy: type-guard
Validate before calling
from invokeai.backend.model_manager.configs.mistral import MistralEncoder_Checkpoint_Config
def can_load_with_checkpoint_loader(cfg: AnyModelConfig) -> bool:
return isinstance(cfg, MistralEncoder_Checkpoint_Config) Type guard
def is_mistral_checkpoint_config(cfg: AnyModelConfig) -> TypeGuard[MistralEncoder_Checkpoint_Config]:
return isinstance(cfg, MistralEncoder_Checkpoint_Config) Try / catch
try:
model = loader._load_model(cfg, SubModelType.TextEncoder)
except ValueError as e:
if "Only MistralEncoder_Checkpoint_Config" in str(e):
model = registry_loader_for(cfg)._load_model(cfg, SubModelType.TextEncoder)
else:
raise Prevention
- Use checkpoint configs only with single .safetensors files; route GGUF/folder records to their own loaders.
- Prefer registry-based loading over direct loader instantiation.
- Validate config class before custom loader calls.
When it happens
Trigger: Calling MistralEncoderCheckpointLoader._load_model with MistralEncoder_Diffusers_Config or MistralEncoder_GGUF_Config (or any non-checkpoint AnyModelConfig), typically via direct loader invocation or hand-constructed config records.
Common situations: Custom import scripts that point this loader at a diffusers folder; test harnesses mocking AnyModelConfig; model records whose format field says 'checkpoint' but whose config class was instantiated for another format.
Related errors
- Only MistralEncoder_Diffusers_Config models are supported he
- Only MistralEncoder_GGUF_Config models are supported here.
- Only Tokenizer and TextEncoder submodels are supported. Rece
- A submodel type must be provided when loading onnx pipelines
- Unrecognised PiD decoder checkpoint extension: {suffix!r}
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/8ebeb28227d3d8ce.
Report an issue: GitHub.