# GPT Image 2.5 介绍：Flare 与 Sunburst 怎么选，价格怎么算，API 怎么接

> GPT Image 2.5 已推出 Flare 和 Sunburst 两款型号。了解它们与 GPT Image 2 的区别、官方 API token 价格，以及用 Python 生成、编辑并保存图片的完整步骤。

- Source: https://www.aifreeapi.com/zh/posts/gpt-image-2-5
- Language: zh
- Published: 2026-09-09
- Updated: 2026-09-09
- Publisher: AI Free API (https://www.aifreeapi.com)

GPT Image 2.5 已于 2026 年 9 月 8 日发布，API 接入时需要明确选用 **`gpt-image-2.5-flare`** 或 **`gpt-image-2.5-sunburst`**。OpenAI 将 Flare 定位为适合大多数应用的快速日常出图模型，将 Sunburst 定位为更重视编辑精度的选择。两者都支持生成和编辑图片；不能把它们理解成一款只能文生图、另一款只能修图。[官方更新日志](https://developers.openai.com/api/docs/changelog#september-2026)、[Flare 模型页](https://developers.openai.com/api/docs/models/gpt-image-2.5-flare)、[Sunburst 模型页](https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst)

对于准备接入的团队，先用 Flare 跑通“提交任务、拿到图片、保存文件”，再用同一批真实修改任务比较 Sunburst，通常更容易看出升级价值。本文价格与参数核对于 **2026 年 9 月 9 日**；代码依据官方文档编写，未进行付费 API 实测。

## Flare、Sunburst 与 GPT Image 2 的区别

2.5 的选择重点是工作中最难接受的代价：用户等待过久，还是图片修改不到位。官方发布说明称，Flare 相比 GPT Image 2 的延迟降低 50%；Sunburst 更强调精细编辑，生成时间也更长。这是 OpenAI 的比较结果，不是本站对你的提示词、尺寸和并发量做出的速度承诺。[官方发布说明](https://openai.com/index/introducing-chatgpt-images-2-5/)

| 选择维度 | GPT Image 2 | GPT Image 2.5 Flare | GPT Image 2.5 Sunburst |
| --- | --- | --- | --- |
| API 模型 ID | `gpt-image-2` | `gpt-image-2.5-flare` | `gpt-image-2.5-sunburst` |
| 在选型中的位置 | 已有业务的对照基线 | 日常生成、交互等待时间敏感的应用 | 对指定区域、参考图和连续修改更敏感的任务 |
| 生成与编辑 | 均支持 | 均支持 | 均支持 |
| 可指定的质量档位 | `low`、`medium`、`high`、`auto` | 增加 `xhigh`、`max` | 增加 `xhigh`、`max` |
| 官方标准 token 单价 | 下文所列单价 | 与 GPT Image 2 相同 | 与 GPT Image 2 相同 |
| 迁移时应验证 | 当前效果和成本 | 等待时间、成图接受率 | 修改是否到位、保留内容是否稳定 |

质量档位来自[图片生成指南](https://developers.openai.com/api/docs/guides/image-generation#customize-image-output)，价格来自[官方 API 定价页](https://developers.openai.com/api/docs/pricing)。表中业务任务是基于官方定位的选型建议。

例如，电商团队需要给一个保温杯做十种背景方案，可以先评估 Flare；选中方案后，需要“只把杯身改成深蓝色，同时保留轮廓、把手与光照”，再比较 Sunburst 是否减少返工。精细编辑的定位并不保证未指定区域逐像素不变，商品结构、品牌元素与文字仍要由使用方检查。

已有 GPT Image 2 业务也不必只凭版本号整体替换。保留一组历史上通过验收的任务，以相同输入、尺寸和质量档位对比结果；同时记录耗时、费用和可用图片数。比起只看某一次请求便宜了多少，**完成一张可用素材的总成本**更接近业务价值。需要做跨厂商选择，可另读 [Nano Banana Pro 与 GPT Image 2 对比](/zh/posts/nano-banana-pro-vs-gpt-image-2)。

## 官方价格：按 token 计费，不能直接等同于每张多少钱

![文字提示词、参考图片和输出图片共同形成费用的示意插画](https://www.aifreeapi.com/posts/zh/gpt-image-2-5/img/token-cost.webp)

以下是 OpenAI 标准 API 的美元价格，单位为 **每 100 万 token**。GPT Image 2.5 Flare 与 Sunburst 的单价相同，当前 GPT Image 2 也采用这组价格。[官方定价页](https://developers.openai.com/api/docs/pricing)

| 计费项目 | Flare | Sunburst |
| --- | ---: | ---: |
| 文本输入 | $5.00 | $5.00 |
| 已缓存文本输入 | $1.25 | $1.25 |
| 图片输入 | $8.00 | $8.00 |
| 已缓存图片输入 | $2.00 | $2.00 |
| 图片输出 | $30.00 | $30.00 |

“两款单价相同”只确定了乘数，没有确定每次请求消耗多少 token。提示词、参考图和输出设置不同，实际用量可能不同；编辑任务还要计入输入图片。不能把 GPT Image 2 的旧版每图价格表直接当成 2.5 报价。使用官方计算器时，确认已选中对应的 2.5 型号，再用真实请求的用量与账单核对。

把每种输入分成互不重叠的计费项，计算方式就是：

```text
费用（美元）=
  未缓存文本 token × 5 / 1,000,000
  + 已缓存文本 token × 1.25 / 1,000,000
  + 未缓存图片 token × 8 / 1,000,000
  + 已缓存图片 token × 2 / 1,000,000
  + 图片输出 token × 30 / 1,000,000
```

假设一次编辑用掉 1,000 个文本输入 token、2,000 个图片输入 token 和 1,000 个图片输出 token，且没有缓存，按表计算为 **$0.051**。这是演示公式的假设用量，并不代表某个尺寸或质量档位的固定每图费用。

若这 2,000 个图片输入 token 中有 500 个命中缓存，图片输入部分应按 `1,500 × $8 + 500 × $2` 再除以一百万，整次示例费用变为 **$0.048**。当用量字段的输入总数已经包含缓存部分时，要先扣除缓存子集；不能先给全部输入按普通价格计费，再把缓存费用加一遍。

还要区分购买入口：ChatGPT 订阅、OpenAI API 账户和第三方平台余额属于不同的计费安排。ChatGPT 的图片功能可用，不代表 API 已有余额或模型权限。第三方的人民币按张报价也不能直接用于核对上表；应另查其模型映射、计费单位和失败请求处理方式。通过 Responses API 调用生图工具时，还应计入负责对话的主模型 token 费用。

## 先用 Images API 跑通生成与编辑

![保温杯从生成和改色到 Base64 解码、保存并打开图片的流程示意](https://www.aifreeapi.com/posts/zh/gpt-image-2-5/img/api-to-file.webp)

如果应用的动作很明确，就是“根据表单生成一张图”或“修改上传图片”，Images API 的调用链最短。以下用 Python 做成一个脚本，生成与编辑均将返回的 Base64 解码保存为 PNG。SDK 方法与返回字段依据[官方生成、编辑示例](https://developers.openai.com/api/docs/guides/image-generation)。

先在已具备对应模型权限和 API 余额的环境中安装 SDK，并通过系统环境变量或密钥管理器设置 `OPENAI_API_KEY`。密钥只放在服务端；OpenAI 的账户、组织验证及地区可用性要求仍然适用，并非任意地区的账户都能直接调用。

```bash
python -m pip install --upgrade openai
```

将下面的代码保存为 `image_demo.py`：

```python
import argparse
import base64
from pathlib import Path

from openai import OpenAI


def save_image(result, destination):
    if not result.data or not result.data[0].b64_json:
        raise RuntimeError("响应未包含图片数据")
    image_bytes = base64.b64decode(
        result.data[0].b64_json, validate=True
    )
    if not image_bytes:
        raise RuntimeError("解码后的图片为空")
    Path(destination).write_bytes(image_bytes)
    print(f"图片已保存：{destination}，{len(image_bytes)} bytes")
    if result.usage is not None:
        print("本次用量：", result.usage.model_dump())


parser = argparse.ArgumentParser()
parser.add_argument("mode", choices=["generate", "edit"])
parser.add_argument("--input", default="cup.png")
parser.add_argument("--output", default=None)
args = parser.parse_args()

# 显式关闭自动重试，便于演示时判断每次调用；生产环境另做错误分类。
client = OpenAI(timeout=180.0, max_retries=0)

if args.mode == "generate":
    result = client.images.generate(
        model="gpt-image-2.5-flare",
        prompt=(
            "制作一张电商产品摄影：米白色无品牌保温杯，"
            "带把手，置于浅灰背景，柔和侧光，完整展示杯身。"
            "不要添加文字、商标或其他商品。"
        ),
        size="1536x1024",
        quality="medium",
        output_format="png",
    )
    save_image(result, args.output or "cup.png")
else:
    with open(args.input, "rb") as reference:
        result = client.images.edit(
            model="gpt-image-2.5-sunburst",
            image=reference,
            prompt=(
                "把这张产品图中的杯身颜色改成深蓝色。"
                "保留杯子形状、把手、机位、背景和光照，"
                "不增加文字或装饰。"
            ),
            size="1536x1024",
            quality="high",
            output_format="png",
        )
    save_image(result, args.output or "cup-blue.png")
```

先生成，再把生成结果作为编辑输入：

```bash
python image_demo.py generate
python image_demo.py edit --input cup.png --output cup-blue.png
```

执行后应分别得到 `cup.png` 和 `cup-blue.png`。打开两张文件，核对图片能否正常显示，以及颜色变化和保留要求是否满足。控制台输出的成功状态或非空数据，只能说明调用或数据处理到了对应步骤，不能替代实际打开图片。示例没有指定额外的 `response_format`：这里读取的是 GPT Image 返回的 `data[0].b64_json`，它是图片数据，并非下载链接。

如果第一步失败，先根据响应中的错误码检查模型 ID、项目权限、组织验证、余额和限流信息。复杂任务可能需要较长时间，客户端超时应与后台任务设计一起考虑；超时也不能直接证明服务端没有完成生成。生产环境应保存请求 ID 和任务状态，对可重试错误采用退避策略，对余额不足、内容限制或参数错误先处理原因，避免用户反复点击造成重复请求。

## 尺寸、质量和透明背景应该怎么设

`size` 决定输出尺寸，`quality` 控制质量档位。把 `quality` 从 `high` 改为 `max`，并不等于把图片改成 4K；如需更大尺寸，应另行设置并验证 `size`。[官方输出设置](https://developers.openai.com/api/docs/guides/image-generation#customize-image-output)

首次接入可选推荐尺寸 `1024x1024`、`1536x1024` 或 `1024x1536`。需要 16:9 时，文档给出的自定义尺寸示例包括 `1536x864`。自定义宽高须为 16 的倍数，宽高比介于 1:3 与 3:1，单边不超过 3840 像素，总像素数在 655,360 至 8,294,400 之间；高于 `2560x1440` 的分辨率仍属实验性支持。因此，不能只满足长宽比就认为任意尺寸合法，例如 `1024x576` 的总像素数低于下限。

2.5 支持 `low`、`medium`、`high`、`xhigh`、`max` 和默认的 `auto`。草稿可以先试低档位；用于正式素材时，拿真实任务比较提升的细节是否抵得上耗时和费用。需要透明底的商品素材，可在请求中设置 `background="transparent"`，并选 `output_format="png"` 或 `"webp"`；JPEG 不适合保存透明背景。

## 什么时候改用 Responses API

如果产品需要先对话确认要求、结合上下文判断是否生图，再连续修改结果，Responses API 的图片工具更适合承接这一流程。这里有两层模型参数：顶层 `model` 指定支持该工具的主模型，工具内的 `model` 才指定图片型号。官方示例使用 `gpt-6-astra` 作为主模型。[Responses 图片工具示例](https://developers.openai.com/api/docs/guides/image-generation)

```python
response = client.responses.create(
    model="gpt-6-astra",
    input="为无品牌保温杯生成一张浅灰背景的产品摄影图。",
    tools=[{
        "type": "image_generation",
        "model": "gpt-image-2.5-flare",
    }],
)

images = [
    item.result
    for item in response.output
    if item.type == "image_generation_call"
]
if not images:
    raise RuntimeError("本轮未返回生图工具结果")
Path("cup-response.png").write_bytes(
    base64.b64decode(images[0], validate=True)
)
```

该片段沿用前文的 `client`、`base64` 和 `Path`。Responses 的结果应从类型为 `image_generation_call` 的输出项中提取 `result`，不要照搬 Images API 的 `data[0]` 路径。业务若只需要固定的单次生成，前面的 Images API 已经足够；增加对话主模型，也增加了需要核对的上下文、工具调用行为与费用。

ChatGPT 发布中的模板、草图、评论或提示词分享则属于产品界面功能，不应看到相似名称就假设存在同名 API 参数。接入前以当前端点文档为准。

## 给已有图片应用的升级顺序

先在现有 GPT Image 2 流程旁增加 Flare，复用一组实际提示词与输入图片，保留原模型作比较。对编辑返工较多的任务，再加入 Sunburst，检查它是否让指定修改更容易一次通过。需要固定发布版本时，两款模型页还列出了 `gpt-image-2.5-flare-2026-09-08` 和 `gpt-image-2.5-sunburst-2026-09-08` 快照 ID，可据业务的版本管理方式选择。

最终决定依据应是你自己的素材是否可用、用户能否接受等待、以及获得可用结果的总费用。2.5 带来了更明确的速度与精细编辑选项，图片文字、布局和主体一致性仍有边界；迁移完成的标志，是业务流程拿到了可打开、可验收、可追踪费用的结果。[模型能力与限制](https://developers.openai.com/api/docs/guides/image-generation#limitations)
