AI API 中转站 · 文档
首页 / 使用文档 / 图片生成

GPT Image 图片生成与编辑 API 参数教程

最后更新:

生图模型(gpt-image-2、gpt-image-2.5-flare 等)和聊天模型不是同一个接口,很多人直接塞进聊天客户端就报错。这一页把参数一个个讲清楚,代码可以直接复制。

gpt-image-2 生成的水彩橘猫
生成:「一只橘猫坐在窗台上看雨,水彩风格」
gpt-image-2 编辑后戴红色毛线帽的橘猫
编辑:上传左图 +「给这只猫戴上一顶红色毛线帽」

以上两张图都是用本页的示例代码在本站实际生成的。

准备工作

  • 创建一个分组为 vip-1-image 的 Key(或 default 分组,价格 2 倍)。见 创建 API Key。
  • 生图是按次计费:每次请求固定价格,和图片内容、token 无关,具体价格看 模型广场。n 填几就按几张计费。
  • 生成一张图通常要 20 秒 ~ 2 分钟,客户端 / 代码的超时请设置到 300 秒以上。
最常见的错误
不能用 /v1/chat/completions(聊天接口)调用生图模型,会返回 Unknown endpoint。在聊天客户端里选 gpt-image-2 发消息是不行的,要用下面的「图片生成」接口,或者使用支持「绘图 / Image」功能的客户端。

图片生成:/v1/images/generations

请求地址:POST https://ai-api.site/v1/images/generations,请求体是 JSON。

参数必填说明示例
model✅生图模型 ID"gpt-image-2"
prompt✅图片描述,中文英文都行,越具体越好(主体、风格、构图、光线、颜色)"一只橘猫坐在窗台上看雨,水彩风格"
size图片尺寸:1024x1024(方图)、1536x1024(横图)、1024x1536(竖图)、auto。注意中间是小写字母 x,不是乘号 ×"1536x1024"
quality画质:low / medium / high / auto。越高越慢"high"
n一次生成几张,默认 1。每张单独计费1
background背景:auto / transparent(透明,需配合 png)/ opaque"transparent"
output_format输出格式:png / jpeg / webp"png"

cURL

curl https://ai-api.site/v1/images/generations \
  -H "Authorization: Bearer sk-你的Key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "一只橘猫坐在窗台上看雨,水彩风格",
    "size": "1024x1024",
    "n": 1
  }' > result.json

Python(推荐)

# pip install openai
import base64
from openai import OpenAI

client = OpenAI(base_url="https://ai-api.site/v1", api_key="sk-你的Key", timeout=300)

resp = client.images.generate(
    model="gpt-image-2",
    prompt="一只橘猫坐在窗台上看雨,水彩风格",
    size="1024x1024",      # 1024x1024 / 1536x1024(横) / 1024x1536(竖) / auto
    quality="medium",      # low / medium / high / auto
    n=1,
)
# 返回的是 base64,需要自己解码保存
with open("cat.png", "wb") as f:
    f.write(base64.b64decode(resp.data[0].b64_json))
print("已保存 cat.png")

Node.js

// Node.js 18+,无需安装依赖
import { writeFileSync } from "node:fs";

const r = await fetch("https://ai-api.site/v1/images/generations", {
  method: "POST",
  headers: {
    "Authorization": "Bearer sk-你的Key",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "gpt-image-2",
    prompt: "赛博朋克风格的城市夜景,霓虹灯,雨夜",
    size: "1536x1024",
  }),
});
const data = await r.json();
if (!r.ok) throw new Error(JSON.stringify(data));
writeFileSync("city.png", Buffer.from(data.data[0].b64_json, "base64"));

返回结果怎么用?(b64_json)

接口返回的不是图片链接,而是 base64 编码的图片数据,放在 data[0].b64_json 里。传 response_format: "url" 也一样返回 base64。需要自己解码保存成文件:

{
  "created": 1793965352,
  "data": [
    {
      "b64_json": "iVBORw0KGgoAAAANSUhEUgAA...(很长的一串,就是图片本身)",
      "revised_prompt": "一只橘猫坐在窗台上看雨,水彩风格",
      "output_format": "png",
      "width": "1254",
      "height": "1254"
    }
  ],
  "model": "gpt-image-2",
  "quality": "medium",
  "size": "1254x1254"
}
# 已经拿到 result.json,用一行 Python 把图片解出来
python3 -c "import json,base64;d=json.load(open('result.json'));open('out.png','wb').write(base64.b64decode(d['data'][0]['b64_json']))"
提示
想在网页里直接显示,不用存文件:<img src="data:image/png;base64,这里放b64_json">。

图片编辑 / 参考图生图:/v1/images/edits

上传一张(或多张)图片,让模型在此基础上修改:换背景、加东西、改风格、多图合成等。请求地址:POST https://ai-api.site/v1/images/edits,请求体是 multipart/form-data(表单上传文件),不是 JSON。

参数必填说明
model✅如 gpt-image-2
image✅要编辑的图片文件(png / jpg / webp)。多张参考图时重复传多个 image[]
prompt✅想怎么改。写清楚「改什么」和「哪些保持不变」效果最好
mask蒙版 png(透明区域 = 要修改的区域),只想改局部时使用
size / quality / n同上

cURL

curl https://ai-api.site/v1/images/edits \
  -H "Authorization: Bearer sk-你的Key" \
  -F model=gpt-image-2 \
  -F image=@cat.png \
  -F "prompt=给这只猫戴上一顶红色毛线帽,其他保持不变" \
  -F size=1024x1024 > edit.json

Python

import base64
from openai import OpenAI

client = OpenAI(base_url="https://ai-api.site/v1", api_key="sk-你的Key", timeout=300)

resp = client.images.edit(
    model="gpt-image-2",
    image=open("cat.png", "rb"),          # 多张参考图:image=[open("a.png","rb"), open("b.png","rb")]
    prompt="给这只猫戴上一顶红色毛线帽,其他保持不变",
    size="1024x1024",
)
with open("cat_hat.png", "wb") as f:
    f.write(base64.b64decode(resp.data[0].b64_json))

生图模型怎么选

模型 ID说明
gpt-image-2默认推荐,效果和速度均衡
gpt-image-2.5-flare / gpt-image-2.6-flare新版本,flare 系列
gpt-image-2.5-sunburst / gpt-image-2.6-sunburst新版本,sunburst 系列

参数完全一样,只换 model 即可。可以用同一个提示词各生成一张对比,挑你喜欢的风格。

生图常见错误

报错 / 现象原因和解决
Unknown endpoint用了聊天接口。改用 /v1/images/generations
No available channel for the current groupKey 的分组不是 vip-1-image / default,去编辑 Key 改分组
请求一直转圈然后超时生图要几十秒到两分钟,把超时调到 300 秒;Python SDK 用 timeout=300
拿到一大串乱码字符那就是 base64 图片,按上面的方法解码保存
Invalid size 之类size 写成了 1024*1024 或 1024×1024,要用小写字母 x
编辑接口报参数错误edits 要用表单(-F)上传文件,不能用 JSON
提示内容违规 / 被拒绝提示词或图片触发了上游安全审核,修改描述后重试

还有问题?看 常见问题 →