Skip to main content

OpenAI 图片生成 / 编辑

本页覆盖两种能力:
  • 文生图 POST /v1/images/generations
  • 图生图 / 编辑 POST /v1/images/edits
两者都走 OpenAI 兼容协议,目前推荐使用 gpt-image-2-2026-04-21(在 Azure Foundry 上 2026-04-21 GA)。旧版 gpt-image-1 / gpt-image-1.5 仍可用但能力弱于 gpt-image-2,dall-e-3 已停止维护。

图片生成(文生图)

Content-Type 仅支持 application/jsonmultipart/form-data 会被拒绝。
本接口也能做图生图:在 body 里加 image 字段(URL 或 base64 字符串数组)即可,平台会自动等效转发到 /v1/images/edits。适合业务方用一个接口统一管理所有图片生成能力(不想区分”文生图 / 图生图”两个 endpoint 时)。仅 gpt-image-1 / gpt-image-2 家族生效。详见下方 图片编辑 - 方式 C

快速开始

只需替换 <API-KEY> 为你的实际 API Key。
curl -X POST "https://api.tokenops.ai/v1/images/generations" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <API-KEY>" \
  -d '{
    "model": "gpt-image-2-2026-04-21",
    "prompt": "一只可爱的小猫在花园里玩耍,阳光明媚,油画风格",
    "n": 1,
    "size": "1024x1024",
    "quality": "medium"
  }'

图片编辑(图生图)

基于一张或多张参考图 + 可选 mask + prompt,生成编辑后的图片。 两种 Content-Type 都支持,按需选择:
  • multipart/form-data:传统 OpenAI 兼容写法,直接上传本地文件
  • application/json:平台扩展写法,image / mask 字段传 URLbase64 字符串(业务端接入更方便,不用 form-data 库)

方式 A:multipart/form-data

curl -X POST "https://api.tokenops.ai/v1/images/edits" \
  -H "Authorization: Bearer <API-KEY>" \
  -F model="gpt-image-2-2026-04-21" \
  -F image="@original.png" \
  -F mask="@mask.png" \
  -F prompt="把中间的区域换成一朵盛开的樱花" \
  -F n=1 \
  -F size="1024x1024" \
  -F quality="medium"

方式 B:application/json(推荐,接入更简单)

image字符串数组,每个元素可以是 http(s):// URL 或 base64 字符串(不要data:image/png;base64, 前缀)。mask 是单个字符串,同样规则。平台会自动下载 / 解码,再透传到底层模型。
curl -X POST "https://api.tokenops.ai/v1/images/edits" \
  -H "Authorization: Bearer <API-KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2-2026-04-21",
    "prompt": "把中间的区域换成一朵盛开的樱花",
    "size": "1024x1024",
    "quality": "medium",
    "n": 1,
    "image": [
      "https://example.com/original.png"
    ],
    "mask": "https://example.com/mask.png"
  }'

方式 C:/v1/images/generations + image 字段(平台扩展)

和方式 B 效果完全等价,但 endpoint 是 /v1/images/generations。用途是让业务方用同一个 endpoint 覆盖”文生图 + 图生图”两种用法(参考 doubao-seedream 的接口风格):传 image 字段就是图生图,不传就是文生图。平台会在 provider 层自动把带 image 的 generations 请求转发到 edits 实现。
curl -X POST "https://api.tokenops.ai/v1/images/generations" \
  -H "Authorization: Bearer <API-KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2-2026-04-21",
    "prompt": "把苹果变成蓝色",
    "size": "1024x1024",
    "quality": "low",
    "image": [
      "https://example.com/apple.png"
    ]
  }'
方式 C 的限制
  • gpt-image-1 / gpt-image-1-mini / gpt-image-1.5 / gpt-image-2 + 各自日期快照生效,其他模型(如 dall-e-3)传 image 会被上游直接忽略,退化为纯文生图。
  • 不支持 mask/v1/images/generations 请求体没有 mask 字段。需要用 mask 精修的场景请用方式 A 或 B。
  • 用量计费和方式 B 一致(input_tokens_details.image_tokens 会出现),不会因为换了 endpoint 就免费。

支持的参数

共用参数(generations / edits)

参数类型说明
modelstring模型名。推荐 gpt-image-2-2026-04-21。也支持 gpt-image-1 / gpt-image-1.5 / gpt-image-1-mini
promptstring文字描述,必填
ninteger生成张数,默认 1
sizestring输出分辨率。gpt-image-2 支持 1024x1024(方)、1536x1024(横)、1024x1536(纵)、4K;不传走模型默认
qualitystringlow / medium / high。gpt-image-2 不接受 auto,不传走服务端默认
response_formatstringb64_json(默认)或 url。后者会把图转存到云存储并返回签名 URL
userstring业务方用户标识,便于审计

图片输入参数(edits 必用;generations 的方式 C 也支持 image

参数类型说明
imagefile / file[](form-data)
string / string[](JSON,URL 或 base64)
参考图。JSON 下多图就是数组;form-data 下同名字段重复即可多图。gpt-image-1/2 家族在 /v1/images/generations 也支持此字段(见方式 C)
maskfile(form-data)
string(JSON,URL 或 base64)
可选 PNG mask(alpha 通道透明区域表示”编辑此处”),尺寸必须与 image 一致。/v1/images/edits 支持,方式 C 不支持
JSON body 下 base64 字符串约定:直接放 base64 内容即可,不要data:image/png;base64, 前缀。

尺寸约束(gpt-image-2)

  • 单边 ≤ 3840px,且是 16 的倍数
  • 宽高比 ≤ 3:1
  • 像素总量 655,360 ~ 8,294,400
  • 常用值:1024x1024 / 1536x1024 / 1024x1536 / 4K
  • 超出约束会被上游 400 拒绝

响应示例

{
  "created": 1776840564,
  "data": [
    {
      "url": "https://model-static.skyengine.com.cn/<uid>/images/20260422/generated_xxx.png?q-sign-algorithm=..."
    }
  ],
  "usage": {
    "input_tokens": 10,
    "output_tokens": 272,
    "total_tokens": 282,
    "input_tokens_details": { "text_tokens": 10, "image_tokens": 0 }
  }
}
  • 当请求 response_format=b64_json(或不传),data[i] 里会是 b64_json 字段
  • 当请求 response_format=url,服务端会把图上传到云存储并返回签名 URL
  • usageoutput_tokens 是按 token 计费的依据(不是按图片张数),参考 OpenAI 官方定价

常见问题

  1. quality 不要传 auto:gpt-image-2 的 Azure 部署不接受,会返 HTTP 500。显式传 low / medium / high,或整个字段留空走服务端默认。
  2. 不支持 style 参数vivid / naturaldall-e-3 专属;gpt-image-1/2 都不支持。
  3. 不支持 transparent 背景(gpt-image-2):OpenAI 官方文档明确不支持透明背景。
  4. 输入图片限制(edits):推荐 PNG,单文件 < 20MB;多图场景时总量也有上限。
  5. 耗时预期:quality=low 约 20-30s,medium 约 60-80s,high 约 200s+。按 token 计费,high 耗费显著更高。
  6. 返回的 URL 有签名过期时间:如果业务侧需要长期保存,建议请求 response_format=b64_json 自行落库,或下载 URL 对应图片另存。

应用场景

场景推荐提示
广告 / 社媒配图generations, quality=medium多次生成选最优
产品原型可视化generations, size=1024x1024描述要具体(品类 / 风格 / 视角)
抠图 / 背景替换edits + maskmask 边缘要干净,alpha=0 为”替换处”
风格转换edits(不带 mask)prompt 指明目标风格
多参考图合成edits 多 image按数组顺序上传,主体图放第一个