协议接入
OpenAI Images

OpenAI Images

如果你要接入 gpt-image-2 这类图片生成模型,请使用 image.4tk.ai 专站(OpenAI Images API 兼容):

POST https://image.4tk.ai/v1/images/generations
POST https://image.4tk.ai/v1/images/edits

鉴权、计价与消耗日志仍由 4tk.ai 主站负责;子令牌与控制台其它 API 相同。专站适合文生图、参考图编辑与局部重绘。

兼容说明:https://api.4tk.ai/v1/images/* 仍可用,但新接入请优先使用 image.4tk.ai。

什么时候应该选 Images

  • 你要直接调用 gpt-image-2 做文生图
  • 你要上传一张或多张参考图做编辑或重绘
  • 你希望对接 OpenAI 官方 Images API 的调用习惯,而不是聊天协议

最小示例:生成图片

curl -sS "https://image.4tk.ai/v1/images/generations" \
  -H "Authorization: Bearer YOUR_SUB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "为一个 AI 控制台首页生成深色主题 UI 视觉稿,强调玻璃拟态、数据卡片和科技感",
    "size": "1024x1024",
    "quality": "auto",
    "output_format": "png",
    "background": "auto"
  }'

典型响应会是:

{
  "created": 1776839954,
  "data": [
    {
      "url": "https://.../image.png"
    }
  ],
  "usage": {
    "total_tokens": 1150,
    "input_tokens": 590,
    "output_tokens": 560
  }
}

Response 会返回 url,也会返回 b64_json。网关会把上游原始结构透传给你。

如果你使用 GPT Image 模型,并传 "stream": true,网关也会直接透传 SSE 事件流;partial_images 会原样带给上游。

curl -N -sS "https://image.4tk.ai/v1/images/generations" \
  -H "Authorization: Bearer YOUR_SUB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "生成一张克制的未来感控制台首页视觉稿",
    "size": "1024x1024",
    "stream": true,
    "partial_images": 2
  }'

最小示例:编辑图片

编辑接口兼容 multipart/form-data。至少上传一个 image 文件;如果要局部重绘,可额外传 mask。

curl -sS "https://image.4tk.ai/v1/images/edits" \
  -H "Authorization: Bearer YOUR_SUB_TOKEN" \
  -F 'model=gpt-image-2' \
  -F 'prompt=保留原有布局,把整体界面改成更克制的 dark 模式,并提升卡片层次感' \
  -F 'image=@./ui-mock.png' \
  -F 'mask=@./mask.png' \
  -F 'size=1024x1024' \
  -F 'quality=auto' \
  -F 'output_format=png'

如果只是拿参考图做风格延展,不一定需要 mask;直接上传一张或多张 image 也可以。

编辑接口在 multipart/form-data 下同样支持 stream 和 partial_images,例如:

curl -N -sS "https://image.4tk.ai/v1/images/edits" \
  -H "Authorization: Bearer YOUR_SUB_TOKEN" \
  -F 'model=gpt-image-2' \
  -F 'prompt=先返回 2 帧局部预览,再给最终成图' \
  -F 'stream=true' \
  -F 'partial_images=2' \
  -F 'image=@./ui-mock.png'

常用字段

  • model:建议直接填写 gpt-image-2
  • prompt:图片生成或编辑指令
  • size:如 1024x1024、1536x1024、1024x1536,也可用 auto
  • quality:low、medium、high、auto
  • output_format:png、jpeg、webp
  • background:auto、opaque、transparent
  • stream:true 时透传图片 SSE 事件流
  • partial_images:流式生成时返回的局部预览帧数量,范围 0-3
  • image:编辑时上传的图片文件,可多张
  • mask:可选,局部编辑蒙版

接入建议

  • 想做单次生图:直接走 POST /v1/images/generations(Host:image.4tk.ai)
  • 想做参考图生成或局部重绘:走 POST /v1/images/edits
  • 不要把 gpt-image-2 当成普通聊天模型去调 POST /v1/chat/completions(Host:api.4tk.ai)

当前限制

  • 当前网关在 stream=true 时按上游原样透传 SSE,不重写 image_generation.* / image_edit.* 事件名和载荷
  • 当前计费按后台配置的单次价格结算;图片模型请按控制台价格表确认是否为按次计费
  • 如果某个上游只支持聊天或 Responses,不支持 Images API,你会收到上游返回的 4xx / 5xx
  • 触发主站 authorize 限流时会返回 429,响应头含 Retry-After 与 RateLimit 系列字段

排错建议

  • 如果返回 401,优先检查 Bearer Token 是否是子令牌而不是登录口令
  • 如果返回 400,先确认 model 是否就是价格页里展示的模型名,例如 gpt-image-2
  • 如果返回 402,检查余额与模型是否已配置为按次计费(per_request)
  • 如果返回 429,说明该账户在限流窗口内 authorize 次数过多,请按 Retry-After 退避后重试
  • 如果返回 502 / 504,通常说明图片上游不可用、超时,或该线路不支持 Images API