Skip to main content
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-3gpt-image-1,在以下方面有明显提升:
  • 指令遵循能力更强:能够准确理解复杂构图、计数、位置关系等结构化指令。
  • 文字渲染更清晰:海报、菜单、信息图、标志等场景下的英文与数字几乎不会出现错乱。
  • 风格表现更丰富:原生支持电影感人像、复古海报、儿童插画、产品摄影、信息图等多种风格。
  • 原生多比例 + 高分辨率支持:覆盖 5 种比例(1:1、4:3、3:4、16:9、9:16)共 3 档分辨率(1K / 2K / 4K)。
调用方式与其它模型完全一致,只需将 model 字段设置为 gpt-image-2 即可。返回结果中的 url 是一个永久托管在 platform.cdn.xhuoapi.ai 上的图片链接,可以直接在浏览器中打开或嵌入到网页中。

支持的 size 取值与计费档位

gpt-image-2 只检查 size 的格式,只要不是 auto 或空串,就需要匹配 WIDTHxHEIGHT(例如 1024x10242048x1152800x600);任何其他形态会返回 400。计费只分两个档位:
  • 1K 标准价:输入为下表中任一 1K 推荐尺寸,或为上游常见的 1K 输出别名(1254x12541672x941941x1672——这些是上游在 1K 档下实际返回的尺寸,收到后重新代入不会被跳价)。
  • 其他档位(1.5×):任何不在上述 1K 集合里的尺寸,包括下表推荐的 2K / 4K 预设,以及你自定义传入的任意 WIDTHxHEIGHT
上游对自定义尺寸的硬约束:宽高均为 16 的倍数、长边 ≤ 3840、总像素数 ≤ 8,294,400。超出范围会被上游拒绝并以 4xx 返回。
你也可以传 size: "auto" 或者省略 size 字段,此时由模型自行选择默认尺寸,按 1K 标准价计费。 1K 档下上游输出不保证严格像素对齐 —— 你传 1024x1024 可能拿到 1254x1254,比例保持一致。如果你重新把它当作 size 传进来,仍然按 1K 计费。 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 样例调用代码:
返回结果如下:
生成的图片如下所示:

场景二:复古旅行海报(带文字渲染)

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

可以看到模型不仅准确还原了 Art Deco 海报的视觉风格,标题文字 AMALFIITALIA 1958 都被清晰、正确地渲染出来。

场景三:复杂构图与计数

下面这个提示词用来测试模型对“数量”和“位置”等结构化指令的遵循能力。
生成的图片如下:

可以看到三层书架上的书本数量(1 / 3 / 7)与提示词完全一致,这是 dall-e-3 时代很难稳定做到的。

场景四:插画风格(横屏)

通过指定艺术媒介与情绪关键词,可以引导模型产出风格化的插画。
生成的横屏插画如下:

异步与回调

gpt-image-2 单次调用通常需要 60~90 秒,如果不希望保持长连接,可以使用本文后续介绍的 callback_url 异步回调机制,调用流程与其它模型完全一致。

Nano Banana 系列模型

nano-banana 系列是基于 Gemini 的图像生成模型,已通过同一个 /openai/images/generations 接口接入,无需切换 endpoint,只要把 model 改为下表中的任意一个即可。
重要:参数支持范围 Nano Banana 通过适配层接入 OpenAI 协议,与 gpt-image-* 相比仅支持以下参数:modelpromptsize
  • size 会按下表映射为内部 aspect_ratio,未列出的尺寸会退化为 1:1
    • 1024x1024 / 512x512 / 256x2561:1
    • 1792x102416:9
    • 1024x17929:16
  • 不支持 nqualitystyleresponse_formatbackgroundoutput_format 等参数;填了也会被忽略。
  • 返回结构遵循 OpenAI 格式(data[].url),但 created 固定为 0,且不会返回 b64_jsonrevised_prompt 始终等于原始 prompt

基本调用

返回结果如下:
生成的图片可以直接通过返回的 url 字段访问:

升级到旗舰模型 nano-banana-pro

只需把 model 改为 nano-banana-pro,其余参数完全一致:
返回示例:

异步回调

callback_url 异步回调机制对 nano-banana 同样有效,调用流程与其它模型完全一致,详见下文 异步回调 一节。

基本使用

接下来就可以在界面上填写对应的内容,如图所示:

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

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

图片质量参数 quality

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

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

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

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

可以看到 hdstandard 生成的图片具有更精细的细节和更大的一致性。

图片大小尺寸参数 size

我们还可以设置生成图片的尺寸大小,我们可以进行下面的设置。 下面设置图片的尺寸大小为 1024 * 1024 ,具体设置如下图:

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

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

与上述相同操作,仅需将图片的尺寸大小为 1792 * 1024 ,可以得到如下图所示的图片: 可以看到图片的尺寸大小很明显不一样,另外还可以设置更多尺寸大小,详情信息参考我们官网文档。

图片风格参数 style

图片风格参数 style 包含俩个参数,第一种 vivid 表示生成的图片是更加生动的,另一种 natural 表示生成的图片更加的自然一点。 下面设置图片风格参数为 vivid ,具体设置如下图:

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

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

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

可以看到 vividnatural 生成的图片具有更加生动逼真。

图片链接的格式参数 response_format

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

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

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

与上述相同操作,仅需将图片链接的格式参数为 b64_json ,可以得到结果 Base64 编码后的图片链接,具体结果如下图所示:

异步回调

由于 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,同时填入相应的参数,如以下代码所示:
点击运行,可以发现会立即得到一个结果,如下:
稍等片刻,我们可以在 Webhook URL 上观察到生成图片的结果,内容如下:
可以看到结果中有一个 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.

错误响应示例

结论

通过本文档,您已经了解了如何使用 OpenAI Images Generations API 轻松使用官方 OpenAI DALL-E 的图像生成功能。希望本文档能帮助您更好地对接和使用该 API。如有任何问题,请随时联系我们的技术支持团队。