{"record":{"id":"9ede53aa33ece86e","repo":"invoke-ai/InvokeAI","slug":"request-model-name-supports-at-most-capabilitie","errorCode":null,"errorMessage":"{request.model.name} supports at most {capabilities.max_reference_images} reference images","messagePattern":"(.+?) supports at most (.+?) reference images","errorType":"exception","errorClass":"ExternalProviderCapabilityError","httpStatus":null,"severity":"error","filePath":"invokeai/app/services/external_generation/external_generation_default.py","lineNumber":113,"sourceCode":"        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\n        if capabilities.allowed_aspect_ratios:\n            aspect_ratio = _format_aspect_ratio(request.width, request.height)\n            if aspect_ratio not in capabilities.allowed_aspect_ratios:\n                size_ratio = None","sourceCodeStart":95,"sourceCodeEnd":131,"githubUrl":"https://github.com/invoke-ai/InvokeAI/blob/0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06/invokeai/app/services/external_generation/external_generation_default.py#L95-L131","documentation":"ExternalProviderCapabilityError raised by _validate_request when the number of reference images in the request exceeds capabilities.max_reference_images. The model supports reference images, but only up to a fixed maximum.","triggerScenarios":"len(request.reference_images) > capabilities.max_reference_images (when max_reference_images is not None) during generate()'s validation pass.","commonSituations":"Uploading more reference images than the provider allows (e.g. several refs against a single-ref model); batch UIs accumulating images without checking the cap.","solutions":["Trim the reference_images list to at most capabilities.max_reference_images","Choose a model with a higher max_reference_images limit","Split the workload into multiple requests, each within the limit"],"exampleFix":"// before\nrequest.reference_images = imgs  # 5 images, limit is 2\n\n// after\nrequest.reference_images = imgs[: model.capabilities.max_reference_images]","handlingStrategy":"validation","validationCode":"max_refs = request.model.capabilities.max_reference_images\nif max_refs is not None:\n    request.reference_images = request.reference_images[:max_refs]","typeGuard":"def within_reference_limit(model, images: list) -> bool:\n    mx = model.capabilities.max_reference_images\n    return mx is None or len(images) <= mx","tryCatchPattern":"try:\n    result = service.generate(request)\nexcept ExternalProviderCapabilityError as e:\n    if \"reference images\" in str(e):\n        request.reference_images = request.reference_images[: request.model.capabilities.max_reference_images]\n        result = service.generate(request)\n    else:\n        raise","preventionTips":["Enforce max_reference_images in the upload UI (disable the add button at the cap)","Truncate or paginate reference image batches before submission","Surface the model's limit in tooltips/help text","Split large multi-reference jobs across requests"],"tags":["validation","capability-mismatch","reference-images","limits"],"backgroundTag":"unsupported-capability","analyzedSha":"0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06","analyzedAt":"2026-08-29T04:46:49.967Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}