{"record":{"id":"c67df830ff4cea68","repo":"invoke-ai/InvokeAI","slug":"reference-images-are-not-supported-by-request-mod","errorCode":null,"errorMessage":"Reference images are not supported by {request.model.name}","messagePattern":"Reference images are not supported by (.+?)","errorType":"exception","errorClass":"ExternalProviderCapabilityError","httpStatus":null,"severity":"error","filePath":"invokeai/app/services/external_generation/external_generation_default.py","lineNumber":109,"sourceCode":"    def get_provider_statuses(self) -> dict[str, ExternalProviderStatus]:\n        return {provider_id: provider.get_status() for provider_id, provider in self._providers.items()}\n\n    def _validate_request(self, request: ExternalGenerationRequest) -> None:\n        capabilities = request.model.capabilities\n\n        self._logger.debug(\n            \"Validating external request provider=%s model=%s mode=%s supported=%s\",\n            request.model.provider_id,\n            request.model.provider_model_id,\n            request.mode,\n            capabilities.modes,\n        )\n\n        if request.mode not in capabilities.modes:\n            raise ExternalProviderCapabilityError(f\"Mode '{request.mode}' is not supported by {request.model.name}\")\n\n        if request.reference_images and not capabilities.supports_reference_images:\n            raise ExternalProviderCapabilityError(f\"Reference images are not supported by {request.model.name}\")\n\n        if capabilities.max_reference_images is not None:\n            if len(request.reference_images) > capabilities.max_reference_images:\n                raise ExternalProviderCapabilityError(\n                    f\"{request.model.name} supports at most {capabilities.max_reference_images} reference images\"\n                )\n\n        if capabilities.max_images_per_request is not None and request.num_images > capabilities.max_images_per_request:\n            raise ExternalProviderCapabilityError(\n                f\"{request.model.name} supports at most {capabilities.max_images_per_request} images per request\"\n            )\n\n        if capabilities.max_image_size is not None:\n            if request.width > capabilities.max_image_size.width or request.height > capabilities.max_image_size.height:\n                raise ExternalProviderCapabilityError(\n                    f\"{request.model.name} supports a maximum size of {capabilities.max_image_size.width}x{capabilities.max_image_size.height}\"\n                )\n","sourceCodeStart":91,"sourceCodeEnd":127,"githubUrl":"https://github.com/invoke-ai/InvokeAI/blob/0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06/invokeai/app/services/external_generation/external_generation_default.py#L91-L127","documentation":"ExternalProviderCapabilityError raised by _validate_request when reference images are supplied but capabilities.supports_reference_images is False. The external model cannot accept reference image input at all.","triggerScenarios":"generate() called with a non-empty request.reference_images list against a model whose capabilities report supports_reference_images=False.","commonSituations":"Passing reference images to a plain text-to-image model; UI that shows the reference-image uploader regardless of selected model; workflows reused across models with different capabilities.","solutions":["Remove reference images from the request for this model","Select a model whose capabilities.supports_reference_images is True","Gate the reference-image UI/logic on the model's supports_reference_images capability"],"exampleFix":"// before\nrequest.reference_images = [img]\nservice.generate(request)  # model doesn't support them\n\n// after\nif model.capabilities.supports_reference_images:\n    request.reference_images = [img]\nelse:\n    request.reference_images = []","handlingStrategy":"validation","validationCode":"if request.reference_images and not request.model.capabilities.supports_reference_images:\n    request.reference_images = []","typeGuard":"def accepts_reference_images(model) -> bool:\n    return bool(getattr(model.capabilities, \"supports_reference_images\", False))","tryCatchPattern":"try:\n    result = service.generate(request)\nexcept ExternalProviderCapabilityError as e:\n    if \"Reference images\" in str(e):\n        request.reference_images = []\n        result = service.generate(request)\n    else:\n        raise","preventionTips":["Hide/disable the reference-image input when the model doesn't support it","Clear reference images when switching to a non-supporting model","Encode per-model input requirements in capability metadata","Document which models accept reference images"],"tags":["validation","capability-mismatch","reference-images"],"backgroundTag":"unsupported-capability","analyzedSha":"0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06","analyzedAt":"2026-08-29T04:46:49.967Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}