# ChatGPT API 生图怎么接：先用 OpenAI Images API

> 如果你搜 ChatGPT API 生图，当前最稳的入口是 OpenAI Images API 加 gpt-image-1.5。只有图片是更大工作流的一部分时才改用 Responses。

- Source: https://www.aifreeapi.com/zh/posts/chatgpt-api-generate-image
- Language: zh
- Published: 2026-03-23
- Updated: 2026-10-05
- Publisher: AI Free API (https://www.aifreeapi.com)

> **2026 年 10 月 5 日补充：** OpenAI 已于 2026 年 9 月 8 日发布 GPT Image 2.5，API 模型 ID 是 `gpt-image-2.5-flare` 和 `gpt-image-2.5-sunburst`；`gpt-image-2` 仍可在 API 中调用。两代模型的图片输出都是每百万 token 30 美元、图片输入 8 美元（[OpenAI 定价页](https://developers.openai.com/api/docs/pricing)），图像 API 仍然没有免费额度。本文的判断方法同样适用于新型号，两款型号的区别见 [GPT Image 2.5 介绍](/zh/posts/gpt-image-2-5)。

如果你搜索的是 `chatgpt api generate image`，**截至 2026 年 3 月 23 日**，最实用也最稳的答案其实很简单：**先用 OpenAI Images API 和 `gpt-image-1.5`**。对单次直接生图来说，这意味着先走 `client.images.generate()` 或 `POST /v1/images/generations`，而不是去找一个所谓“ChatGPT 专用生图接口”。

这个关键词之所以一直显得比它应有的复杂，核心原因不是 SDK 语法，而是 OpenAI 把答案拆散在了多个页面里。[image generation guide](https://developers.openai.com/api/docs/guides/image-generation) 讲的是 Images API 的直接路线，并把 `gpt-image-1.5` 放在当前默认位置；[image_generation tool guide](https://developers.openai.com/api/docs/guides/tools-image-generation) 讲的是 Responses 分支；[`chatgpt-image-latest` 模型页](https://developers.openai.com/api/docs/models/chatgpt-image-latest) 则解释了这个名字只是指向 ChatGPT 当前使用的图片 snapshot。你只看其中一页，很容易把“产品里的 ChatGPT 图像体验”和“真正要接的 API surface”混成一回事。

最省时间的顺序并不花哨：先把一条 Images API 的直通请求跑通，拿到 base64 图片并成功落盘，再确认自己的账号真的具备访问这条图像能力的资格，最后才去加 alias、edit 或 Responses 这类后续分支。这个顺序解决的不是“写不出代码”，而是“别在第一步就选错层”。

![说明 ChatGPT 搜索词最终通常会落到 OpenAI Images API，Responses 只是分支路线的路线图。](https://www.aifreeapi.com/posts/zh/chatgpt-api-generate-image/img/cover.png)

## 要点速览

- 你并不需要先找到一个独立的“ChatGPT 生图 API”再开始。
- 单次直接生成图片，默认先用 **OpenAI Images API** 和 **`gpt-image-1.5`**。
- 只有当图片生成只是更大多模态工作流里的一个工具时，才切到 Responses `image_generation`。
- `chatgpt-image-latest` 更像是 ChatGPT 当前图片 snapshot 的 alias，不应该被理解成另一套平台。
- 如果示例跑不通，优先检查 **usage tier**、**organization verification** 以及 **API key 当前所属的组织**，不要先改 prompt。

## 你找的是 ChatGPT 生图 API，还是 OpenAI Images API？

![展示三层关系的图：搜索词里的 ChatGPT、chatgpt-image-latest 这个 alias，以及大多数开发者真正应该先接的 OpenAI Images API 路线。](https://www.aifreeapi.com/posts/zh/chatgpt-api-generate-image/img/query-translation-map.png)

从实现角度看，大多数时候你真正找的是 **OpenAI Images API**，只是你的搜索词用了 ChatGPT 的表达。这个判断必须先讲清楚，否则后面的文档再全，读者也会在第一步就走偏。

OpenAI 的 [`chatgpt-image-latest` 页面](https://developers.openai.com/api/docs/models/chatgpt-image-latest) 明确写着，这个 alias **指向当前在 ChatGPT 中使用的 image snapshot**。这也是为什么这个关键词会出现。用户先接触到的是 ChatGPT 产品体验，于是自然会用 ChatGPT 这个名字去搜 API。但真正落地时，你接的仍然是 OpenAI API 的 surface：**`v1/images/generations`**、**`v1/images/edits`**，以及当图片生成只是大工作流一部分时的 **Responses API**。

这不只是命名差异。它会直接影响你的第一层抽象怎么选、团队文档怎么写、问题出现时先排查哪一层。如果你脑子里想的是“我要接 ChatGPT 图片 API”，你很容易顺着搜索结果点进那些还在教 `gpt-4o`、proxy base URL 或所谓“全球解锁路线”的文章。如果你先把问题改写成“这个 ChatGPT 表达实际映射到哪条 OpenAI 图片 API 路线”，路线会清晰得多。

这也是这个关键词仍然值得做的原因。官方页面有事实，但没有把事实按读者的真实决策顺序拼好。一页讲模型，一页讲 tool，一页讲 reference，一页讲 verification。读者真正的问题不是“Image generation 是什么”，而是“我第一步到底该调什么，才能不在最开始就选错 abstraction”。

对这个问题，实用规则够短就行：

1. 先用 Images API。
2. 当前默认模型看 `gpt-image-1.5`。
3. 把 `chatgpt-image-latest` 视为 alias 选择，而不是第一层架构选择。

如果你还想先把整个 OpenAI 图片栈的全景理清，再继续往下读，更适合先看中文的 [OpenAI Image API 教程](/zh/posts/openai-image-api-tutorial)。这篇文章故意更窄，它的工作就是把 ChatGPT 这个搜索表达翻译成正确的第一步实现路线。

## 当前最快的 API 生图路线

对于单纯的“给一个 prompt，拿回一张图”这类需求，最稳的起步仍然是直接走 Images API。[Images 官方 reference](https://developers.openai.com/api/reference/resources/images) 直接给出 **`POST /images/generations`**，而 [image generation guide](https://developers.openai.com/api/docs/guides/image-generation) 则把 **`gpt-image-1.5`** 放在当前最推荐的默认位置。

第一条请求最好刻意保持简单：

- 一个 prompt
- 一张方图
- 不加额外 orchestration
- 拿到 base64
- 本地落盘

这样你验证的是整条接入链路，而不只是“HTTP 能不能发出去”。

JavaScript:

```js
import fs from "fs";
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
});

const result = await client.images.generate({
  model: "gpt-image-1.5",
  prompt: "Create a clean editorial illustration of a robot camera operator in a bright studio",
  size: "1024x1024",
  quality: "medium",
});

const imageBase64 = result.data[0].b64_json;
const imageBuffer = Buffer.from(imageBase64, "base64");
fs.writeFileSync("chatgpt-api-generate-image.png", imageBuffer);
```

Python:

```python
from openai import OpenAI
import base64

client = OpenAI()

result = client.images.generate(
    model="gpt-image-1.5",
    prompt="Create a clean editorial illustration of a robot camera operator in a bright studio",
    size="1024x1024",
    quality="medium",
)

image_base64 = result.data[0].b64_json
image_bytes = base64.b64decode(image_base64)

with open("chatgpt-api-generate-image.png", "wb") as f:
    f.write(image_bytes)
```

cURL:

```bash
curl https://api.openai.com/v1/images/generations \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-1.5",
    "prompt": "Create a clean editorial illustration of a robot camera operator in a bright studio",
    "size": "1024x1024",
    "quality": "medium"
  }' \
  | jq -r '.data[0].b64_json' \
  | base64 --decode > chatgpt-api-generate-image.png
```

这条路线是当前最好的起点，有三个原因。第一，它直接跟随官方当前推荐的模型命名。第二，它足够直，失败时更容易分层定位问题。第三，它把很多弱教程还在跳过的输出处理讲清楚了：Image API **默认返回 base64 图片数据**，**PNG** 是默认格式，**JPEG/WebP** 和 `output_compression` 才是后续优化项。

如果你真正需要的是一页更完整的示例集合，下一步更适合读中文的 [OpenAI image generation API example](/zh/posts/openai-image-generation-api-example)。对这个关键词来说，先把第一条路线选对，比一开始就堆满参数更重要。

## Images API 和 Responses image_generation 什么时候各用各的

![对比直连 Images API 与 Responses 的 image_generation 工具路线，并突出首次使用时推荐路径的决策图。](https://www.aifreeapi.com/posts/zh/chatgpt-api-generate-image/img/api-surface-decision-board.png)

当“图片生成本身就是功能主体”时，Images API 才是更合适的默认路线；当“图片只是更大多模态流程中的一个工具”时，Responses 的 image_generation tool 才更合理。

| 场景 | 更合适的默认路线 | 为什么 |
| --- | --- | --- |
| 只想发一个请求直接生成一张图 | Images API | 层最少、最容易先跑通 |
| 想做后台 endpoint 来生成或编辑 | Images API | request contract 更直接，排查更简单 |
| 想对一张或多张输入图片做 edit | Images API | edit 的主路线就集中在这里 |
| 正在做会返回图片的 assistant | Responses image_generation | 图片更适合作为大流程里的一个 tool |
| 需要把文本、tools、图片输出统一放进一条交互里 | Responses image_generation | orchestration 放在同一 surface 更自然 |

[tool guide](https://developers.openai.com/api/docs/guides/tools-image-generation) 的关键价值在于，它把当前 `responses.create()` 的正确形状写得很清楚：顶层 `model` 用的是 **`gpt-5`**，再挂上 **`tools: [{ type: "image_generation" }]`**。真正负责出图的是后面的 GPT Image family。也正因为如此，把 `gpt-image-1.5` 塞进 Responses 的顶层 `model` 字段，通常就是对文档结构的误读。

如果你真的需要走 tool 路线，最小可用的写法大致是这样：

```js
import fs from "fs";
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
});

const response = await client.responses.create({
  model: "gpt-5",
  input: "Generate a transparent sticker-style icon of a paper airplane",
  tools: [{ type: "image_generation", background: "transparent" }],
});

const imageBase64 = response.output
  .filter((item) => item.type === "image_generation_call")
  .map((item) => item.result)[0];

fs.writeFileSync("paper-airplane.png", Buffer.from(imageBase64, "base64"));
```

这段代码之所以值得放在这里，不是因为它更“高级”，而是因为它把分叉点讲具体了。直连路线是显式 image model。Responses 路线是顶层主模型加 image tool。两种形状放在一起看，读者对“什么时候该切换 abstraction”会清楚很多。

真正值得留在团队文档里的规则很简单：**除非图片生成从一开始就是更大多模态流程的一部分，否则先走直连。**

## 当前真正重要的模型名

模型名之所以重要，是因为搜索结果仍然夹杂着旧发布时间线和已经不该作为默认起点的讲法。

| 模型或标签 | 现在代表什么 | 适合什么时候用 |
| --- | --- | --- |
| `gpt-image-1.5` | GPT Image family 当前主线 | 大多数直接生成和 edit 场景 |
| `gpt-image-1.5-2025-12-16` | 模型页里公开可见的 dated snapshot | 可复现评测、稳定 rollout |
| `chatgpt-image-latest` | 指向 ChatGPT 当前图片 snapshot 的 alias | 只有当你真的想跟随 ChatGPT 当前表现时 |
| `gpt-image-1` | 旧一代 GPT Image 路线 | 迁移或兼容参考 |
| DALL-E 2 / DALL-E 3 | 已 deprecated | 不该再作为这个关键词的新默认路线 |

[image generation guide](https://developers.openai.com/api/docs/guides/image-generation) 明确把 **`gpt-image-1.5`** 定义为 GPT Image family 里最新、也最推荐的模型，并说明 **DALL-E 2** 和 **DALL-E 3** 已经 deprecated，支持将在 **05/12/2026** 结束。也就是说，今天再用 `gpt-4o` 或 DALL-E 作为这个关键词的默认答案，已经没有合理性了。

[`gpt-image-1.5` 模型页](https://developers.openai.com/api/docs/models/gpt-image-1.5) 还给了两个很关键的运维事实：

- **Free not supported**
- **Tier 1 从 100,000 TPM 和 5 IPM 起步**

此外页面还公开显示了 **`gpt-image-1.5-2025-12-16`** 这个 snapshot。如果你关心 reproducibility 或分阶段 rollout，这比 alias 好用得多。想继续深挖 alias 和显式模型 ID 的区别，可以接着看中文的 [chatgpt-image-latest vs gpt-image-1.5](/zh/topics/gpt-image)。

这个关键词不是 pricing 文章，但当前公开价格梯度也值得知道。`chatgpt-image-latest` 页面列出了 **1024x1024 low 为 $0.009**、**medium 为 $0.034**、**high 为 $0.133**。这再次说明，不应该再把这层能力理解成旧式的 “GPT-4o image generation” 或含混的老价格模型。如果你下一步真正关心的是预算，直接去看 [OpenAI image generation API pricing](/zh/posts/openai-image-generation-api-pricing) 更有效。

## 故障排查：先把访问关卡过掉，再怀疑示例

![按 API key、正确组织、usage tier、verification、request shape 顺序排查的检查流程图。](https://www.aifreeapi.com/posts/zh/chatgpt-api-generate-image/img/access-gates-checklist.png)

很多第一次跑不通，并不是因为 snippet 本身有问题，而是因为账号状态、当前组织，或者更早一步的认知框架就错了。

第一步检查 usage tier。[API Model Availability by Usage Tier and Verification Status](https://help.openai.com/en/articles/10362446-api-model-availability-by-usage-tier-and-verification-status) 说明 **GPT-image-1** 和 **GPT-image-1-mini** 面向 **tiers 1 through 5** 的 API 用户开放，其中部分访问会受到 **organization verification** 影响。`gpt-image-1.5` 的模型页又明确写了 **Free not supported**。把这两条放在一起，你就能得到一个很直接的判断：如果你把这个问题当成“ChatGPT 免费功能的延伸”，那你一开始看的就不是 API 接入的真实门槛。

第二步检查 organization verification。[API Organization Verification](https://help.openai.com/en/articles/10910291-api-organization-verification) 说明 verification 可以为 API 解锁 image generation 能力。它还给了“not verified” 迟迟不消失时的具体建议：

1. 最多等 **30 分钟**
2. 生成一个**新的 API key**
3. 刷新会话或重新登录
4. 确认自己当前看的确实是**正确的组织**

这些步骤之所以必须出现在文章里，是因为很多开发者反着做。他们先重装 SDK、重写 prompt、重抄示例，却没有先确认自己的账号到底能不能走到这条图片能力。

第三步才是 route choice。如果你只是想要一张图，却一上来拿了 Responses 示例，那你会先去调一层其实根本不需要的 tool orchestration。如果你又是从旧教程里拿来的 `gpt-4o` 或 hosted URL 思路，那只会越调越偏。

更干净的排查顺序是：

1. 访问权限和组织
2. 当前模型名
3. endpoint 和 request shape
4. output decode
5. prompt 质量

如果你卡住的核心仍然是 access，而不是实现本身，接下来更适合直接读中文的 [OpenAI image generation API verification](/zh/posts/openai-image-generation-api-verification)，因为那一页专门把 verification 分支讲得更细。

## 该避开的弱教程写法

第一类弱教程是 **proxy-first 路线**。如果一页内容把整个问题定义成“用这个 proxy 才能接 ChatGPT 图片 API”，那它已经把读者从当前官方路线带偏了。哪怕它看起来很完整，也经常在默认模型、参数理解或者路由方式上停留在旧时代。

第二类弱教程是 **还把 `gpt-4o` 当成默认图像答案**。之所以这类页面还能继续吃流量，是因为名字看起来“似乎还算新”。但当前 OpenAI 官方路线已经明确推荐 `gpt-image-1.5`。一个 2026 年的新文章，如果还围着 `gpt-4o` 打转，就已经不是这个关键词的最佳回答。

第三类弱教程是 **会说 Responses 能出图，但不解释它为什么和直连 Images API 不一样**。如果你没讲清楚顶层 `model` 是 mainline model，而真正出图的是 `image_generation` tool，读者就很容易在 field 级别就抄错。

第四类弱教程是 **把 ChatGPT 的订阅行为和 API 的 access 门槛混为一谈**。ChatGPT 产品体验可以解释为什么用户会这样搜，但 usage tier、organization verification、显式 model availability 仍然是另一层问题。

一个简单但很有用的检查习惯是：每次打开教程，都先问四个问题：

1. 它是不是用了当前 GPT Image family 的命名？
2. 它有没有把 Images API 和 Responses tool 分开讲？
3. 它有没有讲 output 处理，而不只是 request？
4. 它有没有在怪 SDK 前先讲 tier 和 verification？

如果大多数答案都是否定的，那这页就算还在排名，也很可能不是你最该照着接的那一页。

## 最后建议

如果你的目标只是通过 API 生成一张图片，当前最安全的答案仍然是：**用 OpenAI Images API 加 `gpt-image-1.5`**。很多人在搜 `chatgpt api generate image` 时，真正想要的其实就是这条路线，只是他们还不知道应该用 OpenAI 的 surface 名字来理解它。

`chatgpt-image-latest` 只有在“我就是要跟当前 ChatGPT 图片表现对齐”时才值得选；Responses `image_generation` 只有在“图片只是更大多模态 workflow 的一个工具”时才值得上。它们都应该是有意识的选择，而不是第一反应。

最不浪费时间的顺序就是：

1. 先跑通一条 Images API 直连示例
2. 确认账号真的有访问权限
3. 正确保存 base64 图片
4. 之后再加 alias、edit、Responses

这条顺序不花哨，但它正是当前 SERP 最缺的东西。
