图像/OpenAI Images API

通过 OpenAI 兼容 Images API 使用 gpt-image-2 生成和编辑图片。

OpenAI Images API

通过 OpenAI 兼容的 Images API 使用 gpt-image-2 生成和编辑图片。

Base URL: https://api.unigateway.ai/v1

文生图

curl -sS -X POST "https://api.unigateway.ai/v1/images/generations" \
  -H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A clean product hero image for an AI gateway dashboard."
  }' > response.json

Python

from openai import OpenAI; import base64
client = OpenAI(api_key="<YOUR_UNIGATEWAY_API_KEY>", base_url="https://api.unigateway.ai/v1")
r = client.images.generate(model="gpt-image-2", prompt="A hero image.")
with open("out.png","wb") as f: f.write(base64.b64decode(r.data[0].b64_json))

TypeScript

import OpenAI from "openai"; import fs from "fs";
const c = new OpenAI({ apiKey: process.env.UNIGATEWAY_API_KEY, baseURL: "https://api.unigateway.ai/v1" });
const r = await c.images.generate({ model: "gpt-image-2", prompt: "A hero image." });
fs.writeFileSync("out.png", Buffer.from(r.data[0].b64_json, "base64"));

多图生成

curl -sS -X POST "https://api.unigateway.ai/v1/images/generations" \
  -H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-image-2","prompt":"Four icons: chat, image, video, search.","n":4,"size":"1024x1024","quality":"medium","output_format":"png"}' > batch.json

参数

参数必填取值说明
modelgpt-image-2
prompt文本
size1024x10241536x10242048x2048autoW×H,16 的倍数,最大 3840,比例 ≤ 3:1
qualitylow / medium / high / auto默认 auto
n1–10
output_formatpng / jpeg / webp默认 png
output_compression0–100仅 jpeg/webp
backgroundopaque / auto
moderationauto / low
streamtrueSSE 流式
partial_images0–3流式中间图片数
userstring终端用户标识

流式生成

curl -sS -X POST "https://api.unigateway.ai/v1/images/generations" \
  -H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-image-2","prompt":"A winter landscape.","stream":true,"partial_images":2}'

保存返回

jq -r '.data[0].b64_json' response.json | base64 -D > output.png    # macOS
jq -r '.data[0].b64_json' response.json | base64 --decode > output.png  # Linux

编辑 / 合成 / 重绘

均使用 POST /v1/images/editsmultipart/form-data

单图编辑:

curl -sS -X POST "https://api.unigateway.ai/v1/images/edits" \
  -H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
  -F "model=gpt-image-2" -F "image[]=@room.png" \
  -F "prompt=将沙发改为米白色,其余保持不变。" \
  -F "quality=high" -F "size=1024x1024" -F "output_format=png" > edit.json

多参考图合成:

curl -sS -X POST "https://api.unigateway.ai/v1/images/edits" \
  -H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
  -F "model=gpt-image-2" \
  -F "image[]=@item1.png" -F "image[]=@item2.png" -F "image[]=@item3.png" \
  -F "prompt=将全部物品合成一张白底产品照。" \
  -F "quality=high" -F "output_format=png" > composite.json

局部重绘:

curl -sS -X POST "https://api.unigateway.ai/v1/images/edits" \
  -H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
  -F "model=gpt-image-2" -F "mask=@mask.png" -F "image[]=@src.png" \
  -F "prompt=在 mask 区域画一只粉色火烈鸟。" > inpaint.json

Mask 要求:尺寸一致、格式相同、≤ 50 MB、含 alpha 通道。

响应格式

{ "created": 1710000000, "data": [{ "b64_json": "..." }] }

常见错误

状态码原因处理
400参数错误检查 promptsizemask
401API Key 无效检查 Authorization
404模型不可用通过 GET /v1/models 确认
429触发限流退避重试
5xx服务异常指数退避

Example request

Run it in your stack

Pick the SDK style that matches your app and copy the snippet directly into your project.

from openai import OpenAI; import base64
client = OpenAI(api_key="<YOUR_UNIGATEWAY_API_KEY>", base_url="https://api.unigateway.ai/v1")
r = client.images.generate(model="gpt-image-2", prompt="A hero image.")
with open("out.png","wb") as f: f.write(base64.b64decode(r.data[0].b64_json))