GPT-Image-2 图片生成报错:Invalid image size 1920x1080 解决方案
调用 gpt-image-2 时遇到 Invalid image size 1920x1080?本文解释 16 倍数尺寸校验、1920x1080 失败的原因、可用替代尺寸,以及前后端自动修正方案。
大家好,我是 Codex 中文网的站长宇哥。
调用 gpt-image-2 生成图片时,有人会遇到下面这类错误:
{
"error": {
"code": "ERR-6830CADB06",
"message": "Invalid image size 1920x1080: both edges must be non-zero and multiples of 16 (got 1920x1080)",
"type": "invalid_request_error"
}
}
看起来很奇怪:1920x1080 明明是常见的 1080P 分辨率,为什么图片生成接口却拒绝它?关键在错误信息本身:这个请求所使用的 gpt-image-2 服务要求宽和高都必须为非零的 16 的倍数。
错误是什么意思
核心报错是:
Invalid image size 1920x1080
both edges must be non-zero and multiples of 16
也就是说,宽度和高度都要满足:
width % 16 == 0
height % 16 == 0
把 1920x1080 拆开计算:
1920 / 16 = 120
1080 / 16 = 67.5
宽度 1920 合格,但高度 1080 不是 16 的倍数,因此请求被拒绝。
这里需要区分两件事:本文讨论的是这条错误响应体现出的尺寸校验行为,并不代表所有名称相近的模型、所有中转服务或 OpenAI 官方端点都接受任意“16 的倍数”尺寸。接入某个具体平台前,仍应以该平台文档和接口返回的支持尺寸为准。
为什么标准 1080P 会失败
视频和显示器常用 1920x1080,但图片生成模型的输入约束并不一定沿用视频标准。
许多扩散模型会先把图片映射到潜空间,再经过解码器得到最终像素图。简化后的流程可以理解为:
用户 Prompt
↓
扩散模型
↓
Latent Space 潜空间
↓
Decoder
↓
最终图片
处理过程中可能发生多次下采样和张量分块。例如 1920x1080 经过 8 倍下采样会变成 240x135。为了让内部张量、卷积或分块计算对齐,服务端可能要求输入边长满足 8、16、32 或指定尺寸列表等限制。
因此,“传统显示器尺寸”并不自动等于“该图片模型接受的尺寸”。本次错误明确要求 16 的倍数,就应按 16 对齐后再请求。
怎么把 1920x1080 改成可用尺寸
如果目标是尽量保持 16:9 横版构图,可以使用临近的 16 倍数尺寸:
1920x1088
计算结果:
1920 / 16 = 120
1088 / 16 = 68
两个方向均为整数。相应的竖版尺寸可使用:
1088x1920
另外两种常见选择:
1280x736
1024x1024
其中 1280x736 可作为 16 倍数高清横图,1024x1024 适合正方形封面、头像和商品主图。请注意,服务端即使要求 16 倍数,也可能还会有最大分辨率、固定档位或比例限制;若接口提供尺寸列表,应优先使用列表中的选项。
| 场景 | 可尝试的 16 倍数尺寸 |
| --- | --- |
| 横版接近 16:9 | 1920x1088 |
| 竖版接近 9:16 | 1088x1920 |
| 普通高清横图 | 1280x736 |
| 正方形 | 1024x1024 |
API 调用如何修改
错误请求:
{
"model": "gpt-image-2",
"prompt": "一只橘猫站在森林里",
"size": "1920x1080"
}
修改为:
{
"model": "gpt-image-2",
"prompt": "一只橘猫站在森林里",
"size": "1920x1088"
}
如果平台不接受这个值,不要继续猜测任意尺寸。先查询该平台的模型参数或调用其“列出图片选项”的能力,再从返回的标准尺寸中选择最接近的比例。
程序里自动修正尺寸
如果产品允许用户自定义宽高,最好在提交 API 前就完成校验。最简单的向下取整写法如下:
func fixImageSize(width, height int) (int, int) {
width = width / 16 * 16
height = height / 16 * 16
return width, height
}
输入:
1920x1080
会得到:
1920x1072
因为:
1072 / 16 = 67
向下取整不会超出用户给出的边界,但会轻微改变比例。若产品更看重接近原始比例,可以实现“向上、向下两种候选值比较”,再选择误差更小且不超过服务端最大边长的尺寸。例如 1080 向上取整为 1088,能够得到更接近 16:9 的 1920x1088。
无论哪种策略,都要先处理无效输入:宽高小于等于零时应直接报参数错误,不要让结果变成 0x0。还应结合服务端的最小值、最大值和允许档位做二次校验。
开发 AI 图片平台时要注意什么
前端提供合法尺寸
不要只让用户随意输入 1920x1080。可以提供常用预设,并在界面说明实际输出尺寸:
横版接近 16:9:1920x1088
竖版接近 9:16:1088x1920
正方形:1024x1024
如果后端只支持固定尺寸,更应该使用下拉选项或比例选择器,而非允许任意输入。
后端统一校验或纠正
收到以下请求时:
{
"width": 1920,
"height": 1080
}
可按产品策略转换为 1920x1072 或 1920x1088,然后在响应中明确返回最终实际提交的尺寸。不要悄悄改动用户输入,否则用户可能会因为构图变化而难以排查问题。
把模型错误翻译成用户能理解的话
不要直接把:
Invalid image size 1920x1080
原样暴露为唯一提示。更友好的反馈可以是:
当前图片尺寸不符合该模型的要求:宽和高需要是 16 的倍数。
已建议调整为 1920x1088;确认后可继续生成。
若服务端不允许自动修正,则直接提示可选尺寸列表和当前输入不合规的具体原因。
常见问题 FAQ
为什么 1280x720 也可能失败
1280 是 16 的倍数,但 720 / 16 = 45,实际上可以通过本次“16 的倍数”规则。若它仍然失败,通常说明该服务还有额外限制,例如仅允许固定尺寸档位、模型最大像素限制或特定的宽高比。应检查完整错误信息和服务端文档。
1920x1072 和 1920x1088 应该选哪个
两者都是 16 的倍数。1920x1072 不会超过原始高度,适合严格限制最大画布的情况;1920x1088 更接近 16:9,适合更在意视频封面和横版构图的场景。选择前还要确认服务端是否允许该尺寸。
所有 AI 图片模型都要求 16 的倍数吗
不是。不同模型或服务可能要求 8、16、32 的倍数,或只支持少数几个固定尺寸。不要把某一个接口的校验规则直接复制到全部模型上。
为什么已经是 16 的倍数仍然提示尺寸无效
除倍数规则外,还可能触发最大宽高、总像素、固定尺寸列表、横竖比例或账户权限限制。记录完整错误响应,并查询当前接入服务的模型参数。
总结
Invalid image size 1920x1080 不是接口故障,而是请求尺寸未通过校验。针对本文中的错误响应,核心规则是:
width % 16 == 0
height % 16 == 0
在开发 AI 生图应用、图片 API 中转、AI Agent 工具或 MCP 图片服务时,最好在前端和后端都增加尺寸校验,并向用户展示最终实际使用的尺寸。这样可以减少无效请求,也能让尺寸调整对构图的影响变得可控。
相关文章
Cloudflare 1010、403、WAF 拦截,怎么区分是源站还是 Cloudflare
Cloudflare 可能在请求到达源站之前就拦截,因此源站 access log 里完全没有记录。排查这类问题要同时看 Cloudflare 返回特征和源站日志,而不是只看浏览器页面。
Codex 返回 JSON parse error 怎么办?中转站响应格式排查
围绕「Codex 返回 JSON parse error 怎么办」给出面向 Codex 用户的原理、配置、操作步骤、排查方法与常见问题,适合新手直接照着实践。
Codex 流式响应卡住不结束怎么办?SSE 事件和代理缓冲排查
围绕「Codex 流式响应卡住不结束怎么办」给出面向 Codex 用户的原理、配置、操作步骤、排查方法与常见问题,适合新手直接照着实践。
GPT-6 正式进入 ChatGPT:这次更新到底改变了什么?
更新日期:2026 年 10 月 9 日。本文结合 OpenAI 最新官方资料整理;涉及社区体验的内容会单独标注。