{"record":{"id":"26cecf3fc6c90bcf","repo":"invoke-ai/InvokeAI","slug":"request-model-name-supports-a-maximum-size-of-c","errorCode":null,"errorMessage":"{request.model.name} supports a maximum size of {capabilities.max_image_size.width}x{capabilities.max_image_size.height}","messagePattern":"(.+?) supports a maximum size of (.+?)x(.+?)","errorType":"exception","errorClass":"ExternalProviderCapabilityError","httpStatus":null,"severity":"error","filePath":"invokeai/app/services/external_generation/external_generation_default.py","lineNumber":124,"sourceCode":"            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\n                if capabilities.aspect_ratio_sizes:\n                    size_ratio = _ratio_for_size(request.width, request.height, capabilities.aspect_ratio_sizes)\n                if size_ratio is None or size_ratio not in capabilities.allowed_aspect_ratios:\n                    ratio_label = size_ratio or aspect_ratio\n                    raise ExternalProviderCapabilityError(\n                        f\"{request.model.name} does not support aspect ratio {ratio_label}\"\n                    )\n\n        required_modes = capabilities.input_image_required_for or [\"img2img\", \"inpaint\"]\n        if request.mode in required_modes and request.init_image is None:\n            raise ExternalProviderCapabilityError(","sourceCodeStart":106,"sourceCodeEnd":142,"githubUrl":"https://github.com/invoke-ai/InvokeAI/blob/0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06/invokeai/app/services/external_generation/external_generation_default.py#L106-L142","documentation":"ExternalProviderCapabilityError raised by _validate_request when request.width or request.height exceeds capabilities.max_image_size dimensions. The requested output resolution is larger than the external model allows.","triggerScenarios":"generate() called where request.width > capabilities.max_image_size.width or request.height > capabilities.max_image_size.height.","commonSituations":"Reusing high-res settings (e.g. 2048px) with a model capped at 1024px; aspect-ratio presets producing a dimension above the cap; upscaling settings applied to a non-upscaling external model.","solutions":["Clamp width/height to the model's max_image_size, preserving aspect ratio","Generate at an allowed size and upscale locally afterwards","Choose a model with a higher max_image_size","Update UI size presets from model capabilities before submitting"],"exampleFix":"// before\nrequest.width, request.height = 2048, 2048  # max is 1024x1024\n\n// after\nmx = model.capabilities.max_image_size\nscale = min(1.0, mx.width / request.width, mx.height / request.height)\nrequest.width, request.height = int(request.width * scale), int(request.height * scale)","handlingStrategy":"validation","validationCode":"mx = request.model.capabilities.max_image_size\nif mx is not None:\n    scale = min(1.0, mx.width / request.width, mx.height / request.height)\n    request.width = int(request.width * scale)\n    request.height = int(request.height * scale)","typeGuard":"def within_max_size(model, width: int, height: int) -> bool:\n    mx = model.capabilities.max_image_size\n    return mx is None or (width <= mx.width and height <= mx.height)","tryCatchPattern":"try:\n    result = service.generate(request)\nexcept ExternalProviderCapabilityError as e:\n    if \"maximum size\" in str(e):\n        mx = request.model.capabilities.max_image_size\n        s = min(mx.width / request.width, mx.height / request.height)\n        request.width, request.height = int(request.width * s), int(request.height * s)\n        result = service.generate(request)\n    else:\n        raise","preventionTips":["Clamp size inputs to the model's max_image_size before submit","Preserve aspect ratio when downscaling to fit the cap","Update canvas size presets from the selected model's capabilities","Plan for local upscaling instead of requesting oversized generations"],"tags":["validation","capability-mismatch","image-size","limits"],"backgroundTag":"unsupported-capability","analyzedSha":"0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06","analyzedAt":"2026-08-29T04:46:49.967Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}