OpenAI Images Generations API 目前支持多种图像生成模型,包括经典的 dall-e-3、文字渲染能力更强的 gpt-image-1、最新一代的 gpt-image-2,以及通过同一接口接入的 nano-banana / nano-banana-2 / nano-banana-pro 系列模型。它们都能根据文本描述生成高质量的图像。
本文档主要介绍 OpenAI Images Generations API 操作的使用流程,利用它我们可以轻松使用 OpenAI 系列的图像生成功能。
申请流程
要使用 OpenAI Images Generations API,首先可以到 OpenAI Images Generations API 页面点击「Acquire」按钮,获取请求所需要的凭证:

如果你尚未登录或注册,会自动跳转到登录页面邀请您来注册和登录,登录注册之后会自动返回当前页面。
在首次申请时会有免费额度赠送,可以免费使用该 API。
GPT-Image-2 模型
gpt-image-2 是 OpenAI 推出的新一代图像生成模型,相比 dall-e-3 和 gpt-image-1,在以下方面有明显提升:
- 指令遵循能力更强:能够准确理解复杂构图、计数、位置关系等结构化指令。
- 文字渲染更清晰:海报、菜单、信息图、标志等场景下的英文与数字几乎不会出现错乱。
- 风格表现更丰富:原生支持电影感人像、复古海报、儿童插画、产品摄影、信息图等多种风格。
- 原生多比例 + 高分辨率支持:覆盖 5 种比例(1:1、4:3、3:4、16:9、9:16)共 3 档分辨率(1K / 2K / 4K)。
调用方式与其它模型完全一致,只需将 model 字段设置为 gpt-image-2 即可。返回结果中的 url 是一个永久托管在 platform.cdn.acedata.cloud 上的图片链接,可以直接在浏览器中打开或嵌入到网页中。
支持的 size 取值
gpt-image-2 只检查 size 的格式,只要不是 auto 或空串,就需要匹配 WIDTHxHEIGHT(例如 1024x1024、2048x1152、800x600);任何其他形态会返回 400。所有尺寸(1K / 2K / 4K / 自定义)按单张统一扣费,不按尺寸加价。
上游对自定义尺寸的硬约束:宽高均为 16 的倍数、长边 ≤ 3840、总像素数 ≤ 8,294,400。超出范围会被上游拒绝并以 4xx 返回。
| 比例 | 1K 推荐 | 2K 推荐 | 4K 推荐 |
|---|---|---|---|
| 1:1 | 1024x1024 |
2048x2048 |
2880x2880 |
| 4:3 | 1536x1024 |
2048x1536 |
3264x2448 |
| 3:4 | 1024x1536 |
1536x2048 |
2448x3264 |
| 16:9 | 1792x1024 |
2048x1152 |
3840x2160 |
| 9:16 | 1024x1792 |
1152x2048 |
2160x3840 |
你也可以传
size: "auto"或者省略size字段,此时由模型自行选择默认尺寸。1K 档下上游输出不保证严格像素对齐——你传
1024x1024可能拿到1254x1254,比例保持一致。如果你重新把它当作size传进来,计费不变。4K 单次调用通常需要 4–8 分钟,建议配合后文的
callback_url异步回调使用。关于
n参数
gpt-image-2目前不支持n > 1:该参数会被静默忽略,无论传n=1还是n=10,单次请求都只会返回 1 张图,并且只按 1 张计费。如果你需要一次拿到多张候选图,请自行并发发起多次请求(建议同时传不同的prompt或不同的seed,否则得到的几张图可能高度相似)。该限制同样适用于gpt-image-1/gpt-image-1.5,以及nano-banana/nano-banana-2/nano-banana-pro系列。dall-e-2是目前唯一原生支持n > 1的模型;dall-e-3仅支持n = 1。
下面通过几个不同方位的真实示例来直观感受 gpt-image-2 的能力。
场景一:电影感人像
提示词中可以使用电影术语(35mm 胶片、浅景深、霓虹光等)来精准控制氛围与质感。
Python 样例调用代码:
1 |
import requests |
返回结果如下:
1 |
{ |
生成的图片如下所示:

场景二:复古旅行海报(带文字渲染)
gpt-image-2 在排版与字体渲染方面表现稳定,非常适合用来生成海报、菜单、贺卡等带文字的设计稿。
1 |
payload = { |
返回结果中的 url 字段对应的图片如下:

可以看到模型不仅准确还原了 Art Deco 海报的视觉风格,标题文字 AMALFI 与 ITALIA 1958 都被清晰、正确地渲染出来。
场景三:复杂构图与计数
下面这个提示词用来测试模型对“数量”和“位置”等结构化指令的遵循能力。
1 |
payload = { |
生成的图片如下:

可以看到三层书架上的书本数量(1 / 3 / 7)与提示词完全一致,这是 dall-e-3 时代很难稳定做到的。
场景四:插画风格(横屏)
通过指定艺术媒介与情绪关键词,可以引导模型产出风格化的插画。
1 |
payload = { |
生成的横屏插画如下:

异步与回调
gpt-image-2 单次调用通常需要 60~90 秒,如果不希望保持长连接,可以使用本文后续介绍的 callback_url 异步回调机制,调用流程与其它模型完全一致。
Nano Banana 系列模型
nano-banana 系列是基于 Gemini 的图像生成模型,已通过同一个 /openai/images/generations 接口接入,无需切换 endpoint,只要把 model 改为下表中的任意一个即可。
| 模型 | 计费(Credits / 次) | 适用场景 |
|---|---|---|
nano-banana |
0.14 | 普通图像生成,速度最快、成本最低 |
nano-banana-2 |
0.28 | 质量与细节明显提升 |
nano-banana-pro |
0.35 | 系列中的旗舰,构图、细节、文字均最佳 |
重要:参数支持范围
Nano Banana 通过适配层接入 OpenAI 协议,与
gpt-image-*相比仅支持以下参数:model、prompt、size。
size会按下表映射为内部aspect_ratio,未列出的尺寸会退化为1:1:
1024x1024/512x512/256x256→1:11792x1024→16:91024x1792→9:16- 不支持
n、quality、style、response_format、background、output_format等参数;填了也会被忽略。- 返回结构遵循 OpenAI 格式(
data[].url),但created固定为0,且不会返回b64_json,revised_prompt始终等于原始prompt。
基本调用
1 |
import requests |
返回结果如下:
1 |
{ |
生成的图片可以直接通过返回的 url 字段访问:

升级到旗舰模型 nano-banana-pro
只需把 model 改为 nano-banana-pro,其余参数完全一致:
1 |
payload = { |
返回示例:
1 |
{ |

异步回调
callback_url 异步回调机制对 nano-banana 同样有效,调用流程与其它模型完全一致,详见下文 异步回调 一节。
基本使用
接下来就可以在界面上填写对应的内容,如图所示:

在第一次使用该接口时,我们至少需要填写三个内容,一个是 authorization,直接在下拉列表里面选择即可。另一个参数是 model, model 就是我们选择使用 OpenAI DALL-E 官网模型类别,这里我们主要有 1 种模型,详情可以看我们提供的模型。最后一个参数是prompt,prompt 是我们输入要生成图像的提示词。
同时您可以注意到右侧有对应的调用代码生成,您可以复制代码直接运行,也可以直接点击「Try」按钮进行测试。

Python 样例调用代码:
1 |
import requests |
调用之后,我们发现返回结果如下:
1 |
{ |
返回结果一共有多个字段,介绍如下:
created,生成此次图像生成的 ID,用于唯一标识此次任务。data,包含图像生成的结果信息。
其中 data 是包含了模型生成图片的具体信息,它里面的 url 是生成图片的详情链接,可以发现如图所示。

图片质量参数 quality
接下来将介绍如何设置图像生成结果的一些详细参数,其中图片质量参数 quality 包含俩种,第一个 standard 表示生成标准的图片,另一个 hd 表示创建的图像具有更精细的细节和更大的一致性。
下面设置图片质量参数为 standard ,具体设置如下图:

同时您可以注意到右侧有对应的调用代码生成,您可以复制代码直接运行,也可以直接点击「Try」按钮进行测试。

Python 样例调用代码:
1 |
import requests |
调用之后,我们发现返回结果如下:
1 |
{ |
返回的结果与基本使用的内容一致,可以看到图片质量参数为 standard 的生成图片如下图所示:

与上述相同操作,仅需将图片质量参数设置为 hd ,可以得到如下图所示的图片:

可以看到 hd 比 standard 生成的图片具有更精细的细节和更大的一致性。
图片大小尺寸参数 size
我们还可以设置生成图片的尺寸大小,我们可以进行下面的设置。
下面设置图片的尺寸大小为 1024 * 1024 ,具体设置如下图:

同时您可以注意到右侧有对应的调用代码生成,您可以复制代码直接运行,也可以直接点击「Try」按钮进行测试。

Python 样例调用代码:
1 |
import requests |
调用之后,我们发现返回结果如下:
1 |
{ |
返回的结果与基本使用的内容一致,可以看到图片的尺寸大小为 1024 * 1024 的生成图片如下图所示:

与上述相同操作,仅需将图片的尺寸大小为 1792 * 1024 ,可以得到如下图所示的图片:

可以看到图片的尺寸大小很明显不一样,另外还可以设置更多尺寸大小,详情信息参考我们官网文档。
图片风格参数 style
图片风格参数 style 包含俩个参数,第一种 vivid 表示生成的图片是更加生动的,另一种 natural 表示生成的图片更加的自然一点。
下面设置图片风格参数为 vivid ,具体设置如下图:

同时您可以注意到右侧有对应的调用代码生成,您可以复制代码直接运行,也可以直接点击「Try」按钮进行测试。

Python 样例调用代码:
1 |
import requests |
调用之后,我们发现返回结果如下:
1 |
{ |
返回的结果与基本使用的内容一致,可以看到图片风格参数为 vivid 的生成图片如下图所示:

与上述相同操作,仅需将图片风格参数为 natural ,可以得到如下图所示的图片:

可以看到 vivid 比 natural 生成的图片具有更加生动逼真。
图片链接的格式参数 response_format
最后一个图片链接的格式参数 response_format 也有俩种,第一种 b64_json 是对图片链接进行 Base64 编码,另一种 url 就是普通的图片链接,可以直接查看图片。
下面设置图片链接的格式参数为 url ,具体设置如下图:

同时您可以注意到右侧有对应的调用代码生成,您可以复制代码直接运行,也可以直接点击「Try」按钮进行测试。

Python 样例调用代码:
1 |
import requests |
调用之后,我们发现返回结果如下:
1 |
{ |
返回的结果与基本使用的内容一致,可以看到图片链接的格式参数为 url 的生成图片的链接为 图片 URL 这是可以直接访问的,图片内容如下图所示:

与上述相同操作,仅需将图片链接的格式参数为 b64_json ,可以得到结果 Base64 编码后的图片链接,具体结果如下图所示:
1 |
{ |
异步回调
由于 OpenAI Images Generations API 生成图片的时间可能相对较长,如果 API 长时间无响应,HTTP 请求会一直保持连接,导致额外的系统资源消耗,所以本 API 也提供了异步回调的支持。
整体流程是:客户端发起请求的时候,额外指定一个 callback_url 字段,客户端发起 API 请求之后,API 会立马返回一个结果,包含一个 task_id 的字段信息,代表当前的任务 ID。当任务完成之后,生成图片的结果会通过 POST JSON 的形式发送到客户端指定的 callback_url,其中也包括了 task_id 字段,这样任务结果就可以通过 ID 关联起来了。
下面我们通过示例来了解下具体怎样操作。
首先,Webhook 回调是一个可以接收 HTTP 请求的服务,开发者应该替换为自己搭建的 HTTP 服务器的 URL。此处为了方便演示,使用一个公开的 Webhook 样例网站 https://webhook.site/,打开该网站即可得到一个 Webhook URL,如图所示:

将此 URL 复制下来,就可以作为 Webhook 来使用,此处的样例为 https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab。
接下来,我们可以设置字段 callback_url 为上述 Webhook URL,同时填入相应的参数,如以下代码所示:
1 |
import requests |
点击运行,可以发现会立即得到一个结果,如下:
1 |
{ |
稍等片刻,我们可以在 Webhook URL 上观察到生成图片的结果,内容如下:
1 |
{ |
可以看到结果中有一个 task_id 字段,data 字段包含了和同步调用一样的图片生成结果,通过 task_id 字段即可实现任务的关联。
错误处理
在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:
400 token_mismatched:Bad request, possibly due to missing or invalid parameters.400 api_not_implemented:Bad request, possibly due to missing or invalid parameters.401 invalid_token:Unauthorized, invalid or missing authorization token.429 too_many_requests:Too many requests, you have exceeded the rate limit.500 api_error:Internal server error, something went wrong on the server.
错误响应示例
1 |
{ |
结论
通过本文档,您已经了解了如何使用 OpenAI Images Generations API 轻松使用官方 OpenAI DALL-E 的图像生成功能。希望本文档能帮助您更好地对接和使用该 API。如有任何问题,请随时联系我们的技术支持团队。