# GPT Image 2.5来了,Flare光影还是Sunburst色彩?
最近不少录友问我:GPT Image 2.5 的 Flare 和 Sunburst 到底选哪个?国内怎么调用?
我之前写过 GPT Image 2 的调用教程,当时模型只有一个 gpt-image-2。
现在 OpenAI 升级到了 GPT Image 2.5,直接给了两个版本:
gpt-image-2.5-flare:光影更强,对比更戏剧化gpt-image-2.5-sunburst:色彩更鲜艳,画面更温暖明亮
不是一个模型的两种清晰度设置,而是两套不同的视觉风格。
我实际跑了一遍,同样的提示词,Flare 生成的图光影对比明显,Sunburst 生成的图色彩饱和度更高。

上面这张是用 gpt-image-2.5-flare 生成的,可以看到光影层次和高光细节。
下面我把两个模型的区别、选择逻辑和完整调用代码都写清楚,代码可以直接复制跑。
# 为什么GPT Image 2.5要分Flare和Sunburst?
先说结论:不是技术缺陷,是主动设计的风格分支。
OpenAI 发现不同使用场景对视觉风格的需求差异很大:
| 场景 | 核心需求 | 适合的模型 |
|---|---|---|
| 产品海报、封面设计、品牌视觉 | 视觉冲击力、光影层次、高级感 | Flare |
| 社交媒体配图、儿童插画、节日主题 | 色彩鲜艳、明亮愉悦、亲和力 | Sunburst |
| 技术文档插图、流程图配图 | 清晰表达、信息传递 | 两者都可以,看整体设计风格 |
Flare 的视觉特征:
- 光影对比强,有明显的高光和阴影
- 适合表现质感、空间感和戏剧化效果
- 整体色调偏冷静、专业
- 更接近商业摄影和电影级渲染
Sunburst 的视觉特征:
- 色彩饱和度高,整体明亮温暖
- 适合表现活力、欢快和亲和力
- 整体色调偏暖、友好
- 更接近插画、动画和社交媒体风格
你不需要两个都用。根据你的实际内容风格,选一个主力模型就行。
如果你做的是:
- 产品官网、品牌设计、专业内容 → 优先 Flare
- 社交账号、知识科普、轻松内容 → 优先 Sunburst
不确定的话,可以同一提示词分别生成一张,对比后再决定。
# GPT Image 2.5和GPT Image 2有什么关系?
GPT Image 2.5 是 GPT Image 2 的升级版,主要改进:
- 视觉风格更可控:拆分成 Flare 和 Sunburst 两条线
- 中文文字生成更准确:尤其是标题、标签、短句
- 细节表现更稳定:人物表情、物体质感、光影过渡
- 尺寸支持更灵活:自定义尺寸的实验范围扩大
模型名从:
gpt-image-2
变成:
gpt-image-2.5-flare
gpt-image-2.5-sunburst
2
接口地址、参数结构、返回格式和 GPT Image 2 完全一样,只需要把模型名换掉就能用。
如果你之前已经接入了 GPT Image 2,升级到 2.5 只需要改一行配置。
# 为什么我用API中转站调用GPT Image 2.5?
如果你已经有 OpenAI 官方 API Key、付款和网络都正常,当然可以直接调用官方接口。
但很多国内录友真正卡住的不是代码,而是这些事:
- 没有合适的海外付款方式
- 官方 API 网络不稳定
- 不想继续折腾 OpenAI 账号
- 只是偶尔给文章和项目生成几张图
- 希望后台能直接看到调用记录和余额变化
我现在用的是 API 中转站 (opens new window)。注册后创建一个独立 Token,把官方地址换成中转站的地址,模型名仍然填写 gpt-image-2.5-flare 或 gpt-image-2.5-sunburst。
整个调用只需要三项配置:
API Base URL:https://你的中转站地址/v1
API Token:在中转站后台创建
模型名:gpt-image-2.5-flare 或 gpt-image-2.5-sunburst
2
3
这里不需要 ChatGPT Plus,也不需要把 ChatGPT 密码、邮箱验证码或 Cookie 交给平台。
Token 就是余额钥匙。不要截图发群,不要写进公开仓库。
# 第一步:注册账号并创建Token
先打开 API 中转站 (opens new window) 注册账号。
注册后进入后台,找到"创建 Token"或"API Key 管理"入口。
建议单独建一个生图 Token,不要和 Claude Code、Codex 或其他项目共用。这样有三个好处:
- 调用记录更容易核对
- 可以单独控制额度
- 不小心泄露时,只需要删除这一枚 Token
拿到 Token 后,在终端设置两个环境变量:
export OPENAI_API_KEY="替换成你的Token"
export OPENAI_BASE_URL="https://apidock.ai/v1"
2
不要把真实 Token 直接写进准备提交 Git 的代码文件。
# 第二步:确认账号能看到这两个模型
可以先请求模型列表:
curl -sS "${OPENAI_BASE_URL}/models" \
-H "Authorization: Bearer ${OPENAI_API_KEY}" \
| jq -r '.data[] | select(.id | test("gpt-image-2.5")) | .id'
2
3
正常会输出:
gpt-image-2.5-flare
gpt-image-2.5-sunburst
2
如果没有任何输出,先别急着生成。检查 Token、Base URL,以及平台后台是否给你的账号开放了这两个模型。
# 第三步:用curl生成第一张Flare图
最小请求如下:
curl -sS "${OPENAI_BASE_URL}/images/generations" \
-H "Authorization: Bearer ${OPENAI_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-flare",
"prompt": "画一张手绘卡通插画:年轻程序员站在电脑前,屏幕上显示代码和图片缩略图,光线从屏幕照亮程序员的脸,背景是柔和的暖色调办公室。画面上方写中文标题:Flare光影已跑通",
"size": "1536x1024",
"quality": "low",
"output_format": "png"
}' \
| jq -r '.data[0].b64_json' \
| base64 --decode > gpt-image-2-5-flare-demo.png
2
3
4
5
6
7
8
9
10
11
12
macOS 自带的 base64 如果不支持 --decode,把最后一行改成:
| base64 -D > gpt-image-2-5-flare-demo.png
执行后,当前目录会生成 gpt-image-2-5-flare-demo.png。
这里最关键的是四个参数:
{
"model": "gpt-image-2.5-flare",
"size": "1536x1024",
"quality": "low",
"output_format": "png"
}
2
3
4
5
6
尤其是 quality。当前平台只支持 low,不要照搬官方示例改成 medium 或 high。
# 第四步:同样的提示词,换成Sunburst对比
把上面的命令里,模型名改成:
"model": "gpt-image-2.5-sunburst"
提示词保持不变,输出文件名改成:
> gpt-image-2-5-sunburst-demo.png
这样你手里就有两张图,可以直接对比 Flare 和 Sunburst 的实际效果。
# Node.js完整代码:同时生成两张图对比
curl 适合快速验证。如果要接进项目或批量生成,用下面这段 Node.js:
import fs from "node:fs";
const apiKey = process.env.OPENAI_API_KEY;
const baseUrl = process.env.OPENAI_BASE_URL;
if (!apiKey || !baseUrl) {
throw new Error("缺少 OPENAI_API_KEY 或 OPENAI_BASE_URL");
}
const prompt = `
画一张手绘卡通风格插画:柔和暖色调、扁平手绘、线条圆润可爱。
场景:年轻程序员站在工作台前,左手拿着调色板,右手指向两幅挂在墙上的画。左边的画光影对比强烈,右边的画色彩鲜艳明亮。
构图:横版,上方留出标题区,人物和画作位于中央安全区域。
必须出现的文字:标题"Flare光影 vs Sunburst色彩",右下角水印"卡码大模型"。
要求:中文逐字呈现,不增字、不漏字、不生成乱码。
禁止:不要3D,不要写实,不要其他品牌或水印。
`.trim();
async function generateImage(model, outputFile) {
console.log(`正在生成 ${model} 图片...`);
const response = await fetch(`${baseUrl}/images/generations`, {
method: "POST",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model,
prompt,
size: "1536x1024",
quality: "low",
output_format: "png",
}),
signal: AbortSignal.timeout(300_000),
});
const result = await response.json();
if (!response.ok) {
throw new Error(`生图失败(${response.status}):${JSON.stringify(result.error)}`);
}
const imageBase64 = result.data?.[0]?.b64_json;
if (!imageBase64) {
throw new Error("响应中没有 data[0].b64_json");
}
fs.writeFileSync(outputFile, Buffer.from(imageBase64, "base64"));
console.log(`图片已保存:${outputFile}`);
}
// 生成 Flare 版本
await generateImage("gpt-image-2.5-flare", "demo-flare.png");
// 生成 Sunburst 版本
await generateImage("gpt-image-2.5-sunburst", "demo-sunburst.png");
console.log("两张图都已生成,可以对比效果");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
保存为 generate-image-2-5.mjs,然后执行:
node generate-image-2-5.mjs
这段代码会依次生成两张图,提示词完全一样,只有模型名不同。
生成后直接打开对比,就能看出 Flare 和 Sunburst 的实际差异。
# 关键参数说明
# model:必须精确到版本号
"model": "gpt-image-2.5-flare"
或者:
"model": "gpt-image-2.5-sunburst"
不要写成:
gpt-image-2.5(缺少风格后缀)gpt-image-25-flare(版本号格式错误)gpt-image-2-flare(版本号是2,不是2.5)
# size:支持自定义尺寸
和 GPT Image 2 一样,GPT Image 2.5 支持自定义 WIDTHxHEIGHT:
- 宽和高都必须是 16 的倍数
- 宽高比必须在 1:3 到 3:1 之间
- 高于 2560×1440 属于实验范围
- 当前最高支持 3840×2160
常用尺寸:
| 用途 | 建议尺寸 | 比例 |
|---|---|---|
| 头像、图标、方形配图 | 1024x1024 | 1:1 |
| 文章横图、博客配图 | 1536x1024 | 3:2 |
| 竖版海报、人物全身图 | 1024x1536 | 2:3 |
| 视频封面、宽屏头图 | 1536x864 | 16:9 |
| 2K宽屏图 | 2560x1440 | 16:9 |
| 4K宽屏图 | 3840x2160 | 16:9 |
第一次调用建议先用 1536x1024 跑通,再测试自定义尺寸。
# quality:当前只支持low
通过 API 中转站调用时,quality 参数固定:
"quality": "low"
不要改成 medium 或 high,当前平台只支持 low。
low 不是"只能生成糊图"。图片尺寸和渲染质量是两个不同参数:
size决定输出图片有多少像素quality更影响细节密度、纹理、文字和复杂场景的表现
对公众号配图、博客插图、社交媒体和产品原型,1536x1024 + low 已经够用。
# output_format:建议用PNG
"output_format": "png"
PNG 兼容性最好,文字边缘也更稳,排查 base64 解码时最省事。
也支持 jpeg 和 webp,但第一次跑通前建议先用 PNG。
# 怎么让GPT Image 2.5把中文写对?
GPT Image 2.5 的中文文字生成比 2.0 更准,但提示词仍然不能只写一句"帮我加个标题"。
我的做法是把文字单独列出来:
【必须出现的文字】
标题:"Flare光影 vs Sunburst色彩"
水印:"卡码大模型"
要求:以上中文逐字呈现,不增字、不漏字、不改字,不生成其他乱码文字。
2
3
4
再补三条约束:
- 明确每段文字放在哪里
- 一张图不要塞十几段文字
- 标题、对白和水印都用引号标出原文
OpenAI 的 GPT Image 提示词指南 (opens new window) 也建议把需要逐字出现的文字明确引用。
不要把一页 PPT 硬塞进生图模型。 图里放一句标题、两三个短标签就够了,详细解释放回文章正文。
# Flare和Sunburst怎么选?实测对比
我用同一段提示词分别生成了 Flare 和 Sunburst 两张图,直观对比一下:
| 维度 | Flare | Sunburst |
|---|---|---|
| 光影对比 | 高光和阴影明显,层次感强 | 整体偏亮,阴影较浅 |
| 色彩饱和度 | 中等,偏冷静专业 | 高,色彩鲜艳温暖 |
| 视觉冲击力 | 强,适合吸引注意力 | 中等,适合亲和友好 |
| 适合场景 | 产品海报、品牌视觉、封面设计 | 社交媒体、儿童内容、节日主题 |
| 整体氛围 | 专业、高级、戏剧化 | 活泼、愉悦、温暖 |
我的选择建议:
- 做产品官网、品牌设计、技术文档:优先 Flare,视觉更专业
- 做公众号、知识科普、社交账号:优先 Sunburst,更容易亲近
- 做儿童内容、节日活动、游戏素材:优先 Sunburst,色彩更讨喜
- 做电商海报、产品展示、高端品牌:优先 Flare,质感更强
不确定怎么选? 就用同一提示词分别生成一张,对比后再决定。
两个模型的调用成本一样,不存在"先试试便宜的"这种考虑。
# 常见报错怎么处理?
# 401:Token不对
检查:
OPENAI_API_KEY是否真的加载- Token 前后有没有空格
- 平台后台的 Token 是否已被删除或过期
# 404:接口地址或模型名写错
正确地址:
/v1/images/generations
正确模型名:
gpt-image-2.5-flare
gpt-image-2.5-sunburst
2
不要写成 gpt-image-2.5、gpt-image-25-flare 或 gpt-image-2-flare。
# 400:quality参数不支持
如果报错信息提到 quality,改回:
"quality": "low"
当前平台只支持 low,不要写 medium 或 high。
# 成功了,却找不到图片URL
去读:
result.data[0].b64_json
然后 base64 解码落盘。不要读取 data[0].url。
GPT Image 模型返回的就是 base64 图片数据,不是永久图片 URL。
# 图片文字偶尔写错
别把完整提示词推翻重写,只针对文字重试:
保持人物、画风、构图和配色不变。
只修正标题为:"Flare光影 vs Sunburst色彩"。
要求逐字正确,不添加其他文字。
2
3
如果连续两次仍然写错,就让模型预留干净标题区,后期用可靠中文字体贴字。
生图模型进步很快,但生产流程不能全靠运气。
# 建议先小额跑通
任何 API 中转站都不要一上来放大量余额。
我的建议很简单:
- 注册账号,创建一枚只用于生图的 Token
- 先请求
/models,确认能看到gpt-image-2.5-flare和gpt-image-2.5-sunburst - 用
1536x1024、quality: "low"生成一张 Flare 和一张 Sunburst - 回后台核对调用记录和实际扣费
- 确认没问题,再接进自己的脚本或内容工作流
具体价格、赠送额度和实验尺寸支持都可能调整,以平台后台当前显示为准。
别只看"模型列表里有"就开始批量跑。能生成、能落盘、账能对上,这才叫真正跑通。
# 最后
GPT Image 2.5 的 Flare 和 Sunburst 不是一个模型的两种清晰度,而是两套视觉风格。
记住四个东西就行:
接口:/v1/images/generations
模型:gpt-image-2.5-flare 或 gpt-image-2.5-sunburst
清晰度:low
结果:data[0].b64_json
2
3
4
选 Flare 还是 Sunburst,取决于你的内容风格和视觉需求:
- Flare:光影对比强、戏剧化、专业感
- Sunburst:色彩鲜艳、明亮温暖、亲和力
不确定就同一提示词各生成一张,对比后再决定。
一句提示词,光影和色彩都能跑通。
评论
验证登录状态...