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

  1. Supply a MistralEncoder_Checkpoint_Config whose path points to the single safetensors file.
  2. Let the ModelManager/model loader registry resolve the loader from the config's format instead of instantiating MistralEncoderCheckpointLoader directly.
  3. For GGUF files use the GGUF loader path (MistralEncoderGGUFLoader); for HF folders use MistralEncoderDiffusersLoader.
  4. 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

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


AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29). Data as JSON: /api/errors/8ebeb28227d3d8ce. Report an issue: GitHub.