ToAPIsToAPIs
GPT-Image-2

GPT-Image-2 图像生成

使用 gpt-image-2 模型生成图像,支持文生图和 reference_images 图生图

POST
/v1/images/generations

国内用户请注意: 中国大陆用户请使用 https://toapis.cn 作为接口地址(Base URL)。文档示例中的 https://toapis.com 请替换为 https://toapis.cn。

  • 统一的图像生成 API 接口
  • 通过 model 参数选择 gpt-image-2
  • 支持文生图、单图参考和多图参考生成
  • 异步任务管理,通过任务 ID 查询结果

重要变更:为了更好的性能和成本控制,我们不再支持在 image_urls / reference_images 中直接传入 base64 图片数据。请先使用 上传图片接口 上传图片,获取 URL 后再调用本接口。

Authorizations

Authorizationstring请求头必填

所有接口均需要使用 Bearer Token 进行认证

获取 API Key:访问 API Key 管理页面 获取您的 API Key

使用时在请求头中添加:

Authorization: Bearer YOUR_API_KEY

Body

modelstring请求体必填默认值: gpt-image-2

图像生成模型名称

示例:"gpt-image-2"

promptstring请求体必填

图像生成的文本描述

最长 32,000 个字符(GPT image models 官方上限)

sizestring请求体默认值: 1:1

输出图像比例

目前支持以下全部比例:

1:1、3:2、2:3、4:3、3:4、5:4、4:5、16:9、9:16、2:1、1:2、21:9、9:21

也可以传 auto 让上游自动选择尺寸,但最终宽高比和像素尺寸无法保证。

resolutionstring请求体默认值: 1k

输出分辨率档位

支持值:1k、2k、4k

backgroundstring请求体

可选的背景参数. 传入 "transparent" 生成透明背景图片, 不传此参数时正常生图.

文生图和带 reference_images 的图生图均可使用. 普通生图请直接省略此字段, 无需传入 auto 或 opaque.

在 Playground 中选择 gpt-image-2, 将 "背景" 从默认的 "普通" 切换为 "透明" 即可. 切回 "普通" 后, 请求不再携带 background.

尺寸对照表

size1k2k4k
1:11024x10242048x20482880x2880
3:21536x10242048x13603520x2336
2:31024x15361360x20482336x3520
4:31024x7682048x15363312x2480
3:4768x10241536x20482480x3312
5:41280x10242560x20483216x2576
4:51024x12802048x25602576x3216
16:91536x8642048x11523840x2160
9:16864x15361152x20482160x3840
2:12048x10242688x13443840x1920
1:21024x20481344x26881920x3840
21:92016x8642688x11523840x1648
9:21864x20161152x26881648x3840
ninteger请求体默认值: 1

生成图像的数量

默认:1

response_formatstring请求体默认值: url

返回格式

固定返回图片 URL,推荐使用 url

reference_imagesstring[]请求体

参考图 URL 列表,用于图生图

⚠️ 仅支持 URL 格式(不再支持 base64)

  • 公开可访问的图片 URL(http:// 或 https://)
  • 可使用 上传图片接口 上传本地图片获取 URL
  • 支持单图和多图参考
  • 最多 14 张图片
image_urlsstring[]请求体

向后兼容的参考图字段

在 ToAPIs 中会自动归一化为 reference_images

Response

idstring

任务唯一标识符,用于查询任务状态

objectstring

对象类型,固定为 generation.task

modelstring

使用的模型名称

statusstring

任务状态

  • queued - 排队等待处理
  • in_progress - 处理中
  • completed - 成功完成
  • failed - 失败
progressinteger

任务进度百分比(0-100)

created_atinteger

任务创建时间戳(Unix 时间戳)

请求示例

curl --request POST \
  --url https://toapis.com/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gpt-image-2",
    "prompt": "生成一张未来城市夜景海报,霓虹灯,电影感构图",
    "n": 1,
    "size": "1:1",
    "resolution": "1k",
    "response_format": "url"
  }'
curl --request POST \
  --url https://toapis.com/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gpt-image-2",
    "prompt": "生成一只可爱的猫咪贴纸, 背景透明",
    "n": 1,
    "size": "1:1",
    "resolution": "1k",
    "background": "transparent",
    "response_format": "url"
  }'
curl --request POST \
  --url https://toapis.com/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gpt-image-2",
    "prompt": "保留主体结构,把画面改成赛博朋克风格,增强光影和细节",
    "n": 1,
    "size": "1:1",
    "resolution": "1k",
    "image_urls": [
      "https://example.com/source.png",
       "https://example.com/source.png",
      "https://example.com/source.png"
    ],
    "response_format": "url"
  }'
const response = await fetch('https://toapis.com/v1/images/generations', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer your-ToAPIs-key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'gpt-image-2',
    prompt: 'Generate a futuristic city night poster with neon lighting and cinematic composition',
    n: 1,
    size: '1:1',
    resolution: '1k',
    response_format: 'url'
  })
});

const task = await response.json();
console.log(task.id, task.status);

响应示例

{
  "id": "task_img_abc123def456",
  "object": "generation.task",
  "model": "gpt-image-2",
  "status": "queued",
  "progress": 0,
  "created_at": 1703884800,
  "metadata": {}
}