跳转至

生成、编辑图片

用 CodeProxy 转售的 gpt-image-2.5,走中转的海外机。照 CodeProxy 文档调,只改两处:

  • base URL:https://codeproxy.dev 换成 https://codeproxy.reverse-pro.xyz
  • API key:用 .env 里的 MY_API_KEY,写成 Authorization: Bearer $MY_API_KEY,别打印出来
# 生成
curl -sS https://codeproxy.reverse-pro.xyz/v1/images/generations \
  -H "Authorization: Bearer $MY_API_KEY" -H "Content-Type: application/json" \
  -d '{"model": "gpt-image-2.5", "prompt": "<描述>", "n": 1, "size": "1:1"}'

# 编辑:原图放在 images[].image_url 里
curl -sS https://codeproxy.reverse-pro.xyz/v1/images/edits \
  -H "Authorization: Bearer $MY_API_KEY" -H "Content-Type: application/json" \
  -d '{"model": "gpt-image-2.5", "prompt": "<怎么改>", "images": [{"image_url": "<URL 或 data URI>"}],
       "image_resolution": "1k", "size": "1024:1024"}'
  • 跟 OpenAI 官方不一样的地方:编辑也用 JSON 提交,不是 multipart 上传,所以别用 OpenAI SDK 的 images.edit。size 写成比例,比如 "1:1"、"16:9",不是 1024x1024
  • 结果:同步返回,data[0] 里二者有其一:b64_json 是 PNG 的 base64,解码后存成文件;url 是图片链接,再下载一次。同一个请求哪种都可能出,两种都要接。快的三四十秒,慢的七分多钟(21:9 生成 438 秒),超时设 600 秒
  • 同时最多两个请求:第三个约 30 秒后回 429 Concurrency limit exceeded;偶尔整个超时或回 502 connection reset by peer,原样重发就好
  • 用 HTTP/2 发:走 HTTP/1.1 的请求(Python 的 urllib、curl --http1.1)到 62 秒就被中转回 499,返回体是空的;curl 默认走 HTTP/2,同一个请求照常返回
  • size 写比例:"2:3" 出 1024×1536,"9:16" 出 940×1672,"21:9" 出 1916×821;16:9、3:2、4:3、4:5 也实测过
  • 本地图片:写成 data:image/png;base64,…,放进 image_url
  • 更高分辨率:2.5 没有 2k、4k 版本,要的话只能退回旧版 gpt-image-2-2k 或 gpt-image-2-4k

维护记录:接口从哪来、实测结果。正常使用不用看,出问题再看。