Skip to content

图像生成(同步 / 编辑) ​

图像生成提供两种调用方式:

  • 同步接口 POST /v1/images/generations:请求阻塞直到生成完成,一次性返回图片结果,适合交互式场景;
  • 异步任务 POST /v1/images/generations/async:提交后立即返回 task_id,轮询取结果,适合耗时较长的模型,见异步图像任务。

图像编辑 POST /v1/images/edits 在原图基础上按指令修改,也属于同步接口。

哪些模型必须走异步

部分模型(阿里 wanx 系列、qwen-image、flux、SD 等异步族)上游本身就是任务式接口,无法通过同步端点一次性返回,调用同步端点会被拦截并提示改走异步端点。判定规则见异步图像任务 · 模型分流。

接入说明 ​

项目说明
Base URLhttps://your-domain/v1
认证Authorization: Bearer sk-xxxx
请求格式application/json(编辑接口亦支持 multipart/form-data)
响应格式图片以 url 或 b64_json 返回,结构对齐 OpenAI Images API

图像生成 ​

bash
POST /v1/images/generations

请求参数 ​

参数类型必填说明
modelstring✅图像模型名,如 gpt-image-1、dall-e-3、seedream-4.0、qwen-image-2.0
promptstring✅图像描述
ninteger—生成数量,默认 1
sizestring—尺寸,如 1024x1024、1792x1024;各模型支持的档位不同
qualitystring—质量档位,如 standard / hd(dall-e-3)、high / medium / low(gpt-image)
stylestring—风格,如 vivid / natural(dall-e-3)
response_formatstring—url(默认)/ b64_json;gpt-image 系列仅支持 b64_json
output_formatstring—输出文件格式:png / jpeg / webp
output_compressioninteger—输出压缩率 0 – 100(jpeg / webp)
backgroundstring—背景透明度:transparent / opaque
moderationstring—内容审核力度:low / auto
watermarkboolean—是否添加水印(部分国内模型支持)
partial_imagesinteger—流式返回的中间图数量(gpt-image)
streamboolean—true 时以 SSE 逐帧返回中间图(gpt-image)
userstring—终端用户标识,用于审计追踪

参数透传

网关按 OpenAI Images 协议解析请求并转换为目标渠道格式;上表未覆盖的模型特有参数(如火山 seedream 的 sequential_image_generation、Gemini 的 aspect_ratio 等)以各渠道协议为准,详见下文模型适配说明。

响应 ​

json
{
  "created": 1730000000,
  "data": [
    {
      "url": "https://......png",
      "revised_prompt": "a panda riding a bicycle on the moon"
    }
  ],
  "size": "1024x1024",
  "usage": {
    "total_tokens": 1234,
    "input_tokens": 30,
    "output_tokens": 1204,
    "input_tokens_details": {"text_tokens": 30, "image_tokens": 0}
  }
}
字段类型说明
createdinteger时间戳
data[]array图片数组:url(下载地址)或 b64_json(base64),revised_prompt 为改写后的提示词(dall-e-3),content_type 为 MIME 类型
usageobjectToken 计量(gpt-image 系列返回;dall-e 系列按次计费、无此字段)

请求示例:

bash
curl https://your-domain/v1/images/generations \
  -H "Authorization: Bearer sk-xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-1",
    "prompt": "一只在月球上骑自行车的熊猫,电影感光效",
    "size": "1024x1024",
    "n": 1
  }'

图像编辑 ​

bash
POST /v1/images/edits

在原图基础上按指令编辑,支持 multipart/form-data(文件上传)或 JSON(base64)两种编码:

参数类型必填说明
modelstring✅支持编辑的模型,如 gpt-image-1、qwen-image-edit
promptstring✅编辑指令
imagefile / string✅原图:multipart 文件或 JSON base64
imagesarray—多张参考图(JSON base64 数组)
maskfile / string—遮罩图:透明区域(alpha 为 0)表示需要重绘的部分
input_fidelitystring—输入保真度:high / low,控制对原图的还原程度
n / size / quality / response_format 等——与图像生成一致
bash
curl https://your-domain/v1/images/edits \
  -H "Authorization: Bearer sk-xxxx" \
  -F model="gpt-image-1" \
  -F image="@original.png" \
  -F prompt="把背景换成雪山"

WARNING

阿里 wanx 图像编辑族(wanx-image-inpainting、wanx2.1-image-edit、qwen-image-edit 等)属异步族模型,请走异步图像任务端点。

模型适配说明 ​

网关按渠道类型将统一请求转换为各上游的原生协议,主要差异如下:

模型族上游协议参数差异说明
gpt-image-1 / gpt-image-2OpenAI Images仅返回 b64_json;Token 计量;stream 支持 SSE 中间图
dall-e-2 / dall-e-3OpenAI Images按次计费;size / quality / style 档位见 OpenAI 规范
Gemini 内生图(gemini-2.5-flash-image 等)generateContentsize 自动换算为 aspect_ratio(如 1024x1024 → 1:1);暂不支持 n > 1;亦可在对话接口用 image_config 控制
imagen-*Gemini predict按上游原生参数转换
qwen-image-2*、z-image*、wan2.6-t2i*、wan2.7-image*阿里 multimodal-generation同步返回;支持中文提示词
wanx*、qwen-image(-plus)、flux-*、sd-*、wan2.2-t2i阿里 image-synthesis(异步)必须走异步端点,见异步图像任务
seedream-*(火山)Ark ImagesOpenAI 风格参数直传
即梦(Jimeng)即梦兼容网关支持中文提示词与水印控制
image-01(MiniMax)MiniMax Imagessize 自动换算为 aspect_ratio

支持的具体模型以控制台「模型配置」与 /v1/models 返回为准。

SDK 接入示例 ​

Python ​

python
from openai import OpenAI

client = OpenAI(base_url="https://your-domain/v1", api_key="sk-xxxx")

resp = client.images.generate(
    model="gpt-image-1",
    prompt="一只在月球上骑自行车的熊猫",
    size="1024x1024",
    n=1,
)
print(resp.data[0].url or resp.data[0].b64_json[:32])

Node.js ​

javascript
import OpenAI from 'openai'

const client = new OpenAI({ baseURL: 'https://your-domain/v1', apiKey: 'sk-xxxx' })

const resp = await client.images.generate({
  model: 'gpt-image-1',
  prompt: '一只在月球上骑自行车的熊猫',
  size: '1024x1024',
})
console.log(resp.data[0].url ?? resp.data[0].b64_json.slice(0, 32))

图像编辑(文件上传) ​

python
resp = client.images.edit(
    model="gpt-image-1",
    image=open("original.png", "rb"),
    prompt="把背景换成雪山",
)

错误响应 ​

错误结构与 OpenAI 一致。异步族模型误调同步端点时返回 400,提示改用异步端点;完整错误码见错误码说明。

基于 AGPL-3.0 许可发布