{"record":{"id":"7ef6b6635e441b25","repo":"invoke-ai/InvokeAI","slug":"lora-lora-key-is-for-stored-config-base-value","errorCode":null,"errorMessage":"LoRA '{lora_key}' is for {stored_config.base.value if stored_config.base else 'unknown'} models, not Krea-2 models. Ensure you are using a Krea-2 compatible LoRA.","messagePattern":"LoRA '(.+?)' is for (.+?) models, not Krea-2 models\\. Ensure you are using a Krea-2 compatible LoRA\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"invokeai/app/invocations/krea2_lora_loader.py","lineNumber":69,"sourceCode":"        default=None,\n        title=\"Qwen3-VL Encoder\",\n        description=FieldDescriptions.qwen3_vl_encoder,\n        input=Input.Connection,\n    )\n\n    def invoke(self, context: InvocationContext) -> Krea2LoRALoaderOutput:\n        lora_key = self.lora.key\n\n        if not context.models.exists(lora_key):\n            raise ValueError(f\"Unknown lora: {lora_key}!\")\n\n        stored_config = context.models.get_config(lora_key)\n        if (\n            self.lora.base is not BaseModelType.Krea2\n            or stored_config.base is not BaseModelType.Krea2\n            or stored_config.type is not ModelType.LoRA\n        ):\n            raise ValueError(\n                f\"LoRA '{lora_key}' is for {stored_config.base.value if stored_config.base else 'unknown'} models, \"\n                \"not Krea-2 models. Ensure you are using a Krea-2 compatible LoRA.\"\n            )\n\n        output = Krea2LoRALoaderOutput()\n\n        if self.transformer is not None:\n            output.transformer = self.transformer.model_copy(deep=True)\n        if self.qwen3_vl_encoder is not None:\n            output.qwen3_vl_encoder = self.qwen3_vl_encoder.model_copy(deep=True)\n\n        transformer_lora = (\n            next((item for item in output.transformer.loras if item.lora.key == lora_key), None)\n            if output.transformer is not None\n            else None\n        )\n        encoder_lora = (\n            next((item for item in output.qwen3_vl_encoder.loras if item.lora.key == lora_key), None)","sourceCodeStart":51,"sourceCodeEnd":87,"githubUrl":"https://github.com/invoke-ai/InvokeAI/blob/0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06/invokeai/app/invocations/krea2_lora_loader.py#L51-L87","documentation":"After fetching the stored model config, invoke() validates that both the caller-supplied lora.base and the stored config are BaseModelType.Krea2 and the config type is ModelType.LoRA. A mismatch (LoRA trained for SDXL/Flux/other architectures, or the stored model is not actually a LoRA) raises this ValueError explaining the LoRA is not Krea-2 compatible.","triggerScenarios":"invoke() where self.lora.base != BaseModelType.Krea2, or stored_config.base != BaseModelType.Krea2, or stored_config.type != ModelType.LoRA.","commonSituations":"Attaching an SDXL or Flux LoRA to a Krea-2 pipeline; a model folder misclassified during import so its base/type metadata is wrong; using an old workflow whose LoRA metadata predates Krea-2 support.","solutions":["Use a LoRA trained for Krea-2 (base must be Krea2) or find a Krea-2 compatible equivalent.","Re-import/re-scan the model in the Model Manager so its base and type metadata are detected correctly.","Remove the incompatible LoRA node from the workflow or re-point it to a Krea2 model.","If the file is genuinely Krea2 but misclassified, fix the model's config (base/type) in the model manager record."],"exampleFix":"// before\nloader.lora = ModelIdentifierField(key=\"abc123\")  # SDXL LoRA\n// after\nloader.lora = ModelIdentifierField(key=\"def456\")  # Krea2 LoRA (base=Krea2, type=LoRA)","handlingStrategy":"validation","validationCode":"from invokeai.backend.model_manager.config import BaseModelType, ModelType\nkey = loader.lora.key\nif loader.lora.base is not BaseModelType.Krea2:\n    raise ValueError(f\"{key} is not tagged Krea2\")\ncfg = context.models.get_config(key)\nif cfg.base is not BaseModelType.Krea2 or cfg.type is not ModelType.LoRA:\n    raise ValueError(f\"{key} is {cfg.base.value}/{cfg.type.value}, not a Krea2 LoRA\")","typeGuard":"def is_krea2_lora(stored_config) -> bool:\n    return (\n        stored_config.base is BaseModelType.Krea2\n        and stored_config.type is ModelType.LoRA\n    )","tryCatchPattern":"try:\n    output = loader.invoke(context)\nexcept ValueError as e:\n    if \"not Krea-2 models\" in str(e):\n        raise UserInputError(\"Choose a Krea-2 trained LoRA; this file targets a different architecture\") from e\n    raise","preventionTips":["Only import LoRA checkpoints explicitly trained for Krea-2","Check the model's base/type in the Model Manager before wiring it into a Krea-2 graph","Re-scan models after upgrades so metadata stays accurate","Filter candidate LoRAs by base==Krea2 when building graphs programmatically"],"tags":["lora","model-compatibility","base-model-mismatch","valueerror"],"backgroundTag":"model-architecture-mismatch","analyzedSha":"0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06","analyzedAt":"2026-08-29T04:46:49.967Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}