gpt-image-2 电商图片编辑为什么 400用 3 个实测请求排查 size、model 和 endpoint适合读者正在接入gpt-image-2图片编辑 API 的后端开发、AI 应用开发、SaaS 工程团队。文章重点不讲“提示词玄学”先用最小请求把链路跑通再定位size、model、endpoint 这些确定性错误。先说结论电商用gpt-image-2做商品图经常失败的原因不一定是模型不行很多时候是 API 请求构造不对。我用 Crazyrouter 做了一组最小实测测试的是图片编辑接口Base URL: https://cn.crazyrouter.com Endpoint: POST /v1/images/edits Model: gpt-image-2 Input: 768x768 本地 demo 商品图 Test date: 2026-07-05实测结果Case关键参数HTTP结果正常图片编辑modelgpt-image-2,sizeauto200返回 PNG输出图可下载错误 sizesize123x456400invalid_request缺少 model不传model400Model name is required正常请求耗时约 26 秒返回 PNG 图片说明gpt-image-2图片编辑链路可以跑通。两个失败请求说明size和model是开发接入时最应该先检查的字段。1. 最小可用请求先跑通链路下面是本次跑通的请求形态真实 token 用环境变量占位curlhttps://cn.crazyrouter.com/v1/images/edits\-HAuthorization: Bearer$CRAZYROUTER_API_KEY\-Fmodelgpt-image-2\-Fsizeauto\-Fqualitylow\-Fn1\-Fresponse_formaturl\-Fimage./product.png\-Fprompt基于输入商品图生成电商场景主图。保留商品主体、包装、已有图案和已有文字不新增任何品牌标识、授权声明、版权标注或角色形象只调整背景、光影、台面材质和画面构图。如果你想复现同样的测试可以直接使用本站 Crazyrouter 的 OpenAI-compatible 图片接口API Base: https://cn.crazyrouter.com/v1 Endpoint: /images/edits Model: gpt-image-2注册地址https://crazyrouter.com/register?utm_sourcecsdnutm_mediumarticleutm_campaigngpt_image2_ecommerceutm_contentdebug_api_20260705__quickstart环境变量可以这样设置exportCRAZYROUTER_API_KEY你的 API KeyPowerShell$env:CRAZYROUTER_API_KEY你的 API Key几个关键点model必须显式传。图片编辑走/v1/images/edits不是/v1/chat/completions。文件上传使用multipart/form-data。size先用auto不要直接传电商平台最终尺寸。卖点文案、平台裁剪、压缩建议放到后处理。如果这个最小请求跑不通不要急着改提示词。先查API key 是否正确 Base URL 是否正确 endpoint 是否正确 model 是否传了 image 字段是否传了 size 是否在模型支持范围内2. 反例一size 不是任意尺寸很多电商系统会把“平台最终尺寸”直接塞进size。例如800x800 1200x1200 1920x1080 3:4 9:16但模型 API 的size通常不是任意画布尺寸而是模型支持的参数值。我故意跑了一个错误请求curlhttps://cn.crazyrouter.com/v1/images/edits\-HAuthorization: Bearer$CRAZYROUTER_API_KEY\-Fmodelgpt-image-2\-Fsize123x456\-Fqualitylow\-Fn1\-Fimage./product.png\-Fprompt基于输入商品图生成电商场景主图。返回HTTP 400 code: invalid_request message: size dimensions must be multiples of 16 for gpt-image-2这说明size会被模型或网关校验。你想要最终商品图是某个尺寸不代表模型 API 直接接受这个尺寸。推荐做法模型生成阶段使用 auto 或已验证白名单尺寸 业务后处理阶段裁剪、扩边、缩放、压缩到平台尺寸3. 反例二不传 model 会直接失败第二个反例是不传modelcurlhttps://cn.crazyrouter.com/v1/images/edits\-HAuthorization: Bearer$CRAZYROUTER_API_KEY\-Fsizeauto\-Fqualitylow\-Fn1\-Fimage./product.png\-Fprompt基于输入商品图生成电商场景主图。返回HTTP 400 message: Model name is required这个错误和提示词没有关系属于请求构造问题。实际业务里缺model通常发生在这些地方后台配置了默认模型但服务端没有把字段传出去。聊天请求和图片编辑请求复用了同一个构造器。前端显示了模型名但异步任务队列里丢了字段。多模型路由层只处理文本模型没有处理图片模型。4. 建议加一层请求前校验服务端发请求前最好先做参数校验不要等上游返回 400。示例ALLOWED_IMAGE_SIZES{auto,1024x1024,2048x1152,3840x2160}defvalidate_image_edit_request(payload,image_file):errors[]ifnotpayload.get(model):errors.append(model is required)ifpayload.get(model)!gpt-image-2:errors.append(unsupported image edit model)ifnotpayload.get(prompt):errors.append(prompt is required)ifimage_fileisNone:errors.append(image file is required)sizepayload.get(size,auto)ifsizenotinALLOWED_IMAGE_SIZES:errors.append(funsupported size:{size})returnerrors前置校验有两个好处错误更快返回不浪费上游请求。错误文案更准确用户知道该改哪里。5. endpoint 不要混用电商生图经常有多个步骤任务推荐接口商品图理解多模态理解或视觉分析提示词生成chat completions商品图换背景images edits从零生成场景图images generations卖点文字排版后处理或设计模板平台尺寸适配裁剪、扩边、压缩不要因为/v1/chat/completions能返回文字就把图片编辑也塞进去。图片编辑要上传文件要走正确 endpoint。6. 品牌、logo、IP 提示词要收敛电商商品图里经常有品牌、logo、包装文字、授权标识。提示词里不要写成补全品牌 logo 让授权标识更清晰 生成某某角色图案 做成某某品牌同款风格更稳的写法保留输入商品图中已经存在的包装、图案和文字。 不新增任何品牌标识、授权声明、版权标注或角色形象。 只调整背景、光影、台面材质和画面构图。让模型负责背景、光影和构图不要让模型重新生产品牌资产。7. 最小排查顺序开发者可以按这个顺序排查1. GET /v1/models 确认模型是否可见 2. 用 sizeauto 跑最小 images/edits 请求 3. 确认 image 字段能被正确上传 4. 故意测试错误 size看是否返回 400 5. 故意测试缺 model看错误文案是否准确 6. 再逐步加入业务 prompt、quality、批量任务 7. 最后再处理渠道 5xx、超时、额度不足等问题8. 本站测试矩阵可以怎么用我建议把这 3 个测试固定成接入gpt-image-2前的 smoke test测试项请求特征预期结果说明正常图片编辑modelgpt-image-2,sizeauto, 上传商品图HTTP 200返回图片 URL验证 key、Base URL、endpoint、multipart 上传都正常错误尺寸size123x456HTTP 400invalid_request验证错误映射不要把参数错误当成渠道故障缺少模型不传modelHTTP 400提示模型名必填验证任务队列或 SDK 没有丢字段这组测试不需要真实店铺素材先用一张干净的 demo 商品图就够了。只要这三类结果符合预期就可以基本确认API Key、接口地址、图片上传、参数校验和错误处理链路是通的。后面再接入真实商品图时问题就更容易归因如果最小测试稳定成功业务图失败就重点看素材、提示词、品牌/IP 表达、后处理尺寸和上游临时状态。本站入口https://crazyrouter.com/register?utm_sourcecsdnutm_mediumarticleutm_campaigngpt_image2_ecommerceutm_contentdebug_api_20260705__matrix总结这次实测里gpt-image-2的图片编辑请求在 Crazyrouter 上可以跑通modelgpt-image-2、sizeauto、/v1/images/edits返回了 HTTP 200 和可下载 PNG。同时错误size和缺少model都会稳定触发 HTTP 400。这说明很多电商生图失败并不是模型能力问题而是请求构造问题。一句话先跑通最小请求再谈提示词优化先校验model、size、image、endpoint再排查模型和渠道。如果你正在接入电商图片编辑可以先在本站用gpt-image-2跑上面的最小测试再把结果接入自己的业务队列和错误分类系统https://crazyrouter.com/register?utm_sourcecsdnutm_mediumarticleutm_campaigngpt_image2_ecommerceutm_contentdebug_api_20260705__final