GPT-Image-2 生图教程
gpt-image-2 是 RPG8 平台提供的高质量文生图模型,遵循 OpenAI Images API 的请求/响应规范,可直接复用 OpenAI 官方 SDK,业务侧零改造接入。
一句话概览
- 接入路径:
POST https://api.rpg8.cn/v1/images/generations - 鉴权:Bearer Token(
Authorization: Bearer <你的 RPG8 Key>) - 响应:图片以 base64 字符串形式返回(
data[].b64_json) - 特性:默认
auto智能选档;显式传size/quality即严格生效
一、最简调用
下面三段示例做的是同一件事:用一句中文 prompt 出一张图、保存到本地。
curl -X POST 'https://api.rpg8.cn/v1/images/generations' \
-H 'Authorization: Bearer <你的 RPG8 Key>' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-image-2",
"prompt": "黄昏的日式庭院,樱花飘落,水墨风",
"n": 1
}' | jq -r '.data[0].b64_json' | base64 -D > out.pngfrom openai import OpenAI
import base64, pathlib
client = OpenAI(
api_key="<你的 RPG8 Key>",
base_url="https://api.rpg8.cn/v1",
)
resp = client.images.generate(
model="gpt-image-2",
prompt="黄昏的日式庭院,樱花飘落,水墨风",
)
pathlib.Path("out.png").write_bytes(
base64.b64decode(resp.data[0].b64_json)
)import OpenAI from "openai";
import { writeFileSync } from "node:fs";
const client = new OpenAI({
apiKey: "<你的 RPG8 Key>",
baseURL: "https://api.rpg8.cn/v1",
});
const resp = await client.images.generate({
model: "gpt-image-2",
prompt: "黄昏的日式庭院,樱花飘落,水墨风",
});
writeFileSync("out.png", Buffer.from(resp.data[0].b64_json, "base64"));二、响应结构
成功响应是一个 JSON 对象,data 数组的每一项对应一张图:
{
"created": 1735689600,
"data": [
{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..." }
]
}| 字段 | 含义 |
|---|---|
created | 服务端生成时间戳(Unix 秒) |
data[].b64_json | 图片二进制的 base64 编码,前端可直接拼成 data:image/png;base64,... 渲染,后端 base64 解码后即得 PNG 文件 |
关于 url 字段
本平台不会返回 url,所有图片走 base64 通道。如果你的代码原本读 data[0].url,请改读 data[0].b64_json。 该行为与 OpenAI 官方 gpt-image-1 完全一致;若客户端使用 OpenAI 标准 SDK,则无需任何调整。
三、请求体参数
| 字段 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | ✅ | — | 模型 ID,固定为 gpt-image-2 |
prompt | string | ✅ | — | 提示词,中英文皆可,长度建议 ≤ 1000 字 |
n | integer | ⬜ | 1 | 单次请求生成的图片数量 |
size | string | ⬜ | auto | 输出尺寸,详见 § 四 |
quality | string | ⬜ | auto | 渲染质量,详见 § 五 |
关于 auto:
size与quality缺省或显式传auto时,平台会让模型根据 prompt 语义自行决策;如需结果可控,请显式指定具体值。
四、尺寸(size)
4.1 推荐档位
经过实测验证、可直接拿来用的几档常用尺寸:
| 档位 | 尺寸 | 典型场景 |
|---|---|---|
| 标准方图 | 1024x1024 | 头像、应用图标、产品图 |
| 标准横图 | 1536x1024 | Banner、横向插画 |
| 标准竖图 | 1024x1536 | 海报、手机壁纸 |
| 2K 方图 | 2048x2048 | 高清头像、印刷正方形物料 |
| 2K 横图 | 2048x1152 | 16:9 视频封面、宽屏 Banner |
| 4K 横图 | 3840x2160 | UHD 桌面壁纸、视频封面(最大档) |
| 4K 竖图 | 2160x3840 | 竖版超清海报、店铺主视觉 |
| 智能档 | auto | 让模型按 prompt 自适应(默认) |
4.2 自定义尺寸约束
如果你不想用上面的档位,可以传任意自定义尺寸,但必须同时满足以下四条规则:
- 单边像素 ≤ 3840;
- 宽和高都必须是 16 的整数倍(例:1024 ✅,1000 ❌);
- 长边与短边比例 ≤ 3 : 1(例:1536x1024 ✅,3000x800 ❌);
- 总像素数(宽 × 高)必须落在 [ 655 360 , 8 294 400 ] 区间内。
任意一条不满足,请求会被上游拒绝并返回参数错误。
4.3 用法示例
curl -X POST 'https://api.rpg8.cn/v1/images/generations' \
-H 'Authorization: Bearer <你的 RPG8 Key>' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-image-2",
"prompt": "雪山日出,云海翻腾,远处一只孤鹰",
"size": "1536x1024"
}'让 prompt 也参与版式决策
当 size=auto 时,prompt 里出现"横版 / 竖版 / 宽幅 / 手机壁纸"等关键词,模型会据此选择倾向性更强的版式。这是软引导,不能保证精确像素;如果业务需要确定尺寸,请直接传 size。
五、质量(quality)
| 取值 | 适用场景 | 速度 | 单价 |
|---|---|---|---|
low | 草稿、批量、灰度测试 | 最快 | 最低 |
medium | 日常出图,速度与表现兼顾 | 中等 | 中 |
high | 终稿、印刷物料、对外发布 | 较慢 | 较高 |
auto | 模型自行权衡(默认) | 取决于场景 | 取决于场景 |
5.1 用法示例
# 草稿模式:先用 low 快速过几张,挑中再用 high 重出
curl -X POST 'https://api.rpg8.cn/v1/images/generations' \
-H 'Authorization: Bearer <你的 RPG8 Key>' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-image-2",
"prompt": "极简风:一颗成熟的红苹果,纯白背景,柔光",
"size": "1024x1024",
"quality": "low"
}'六、完整请求范例
curl -X POST 'https://api.rpg8.cn/v1/images/generations' \
-H 'Authorization: Bearer <你的 RPG8 Key>' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-image-2",
"prompt": "复古胶片质感的城市街景,霓虹灯倒映在雨后的柏油路上",
"size": "1536x1024",
"quality": "high",
"n": 1
}'七、FAQ
为什么响应里没有 url?
平台统一返回 b64_json,对齐 OpenAI 官方 gpt-image-1 行为。客户端解码 data[0].b64_json 即可拿到 PNG 二进制;如需 URL 可自行上传到对象存储后获得。
自定义尺寸总是 400 怎么办?
90% 的情况是触发了 § 4.2 中的某一条限制,优先排查"宽高是不是 16 的倍数"和"长宽比是否超过 3:1"——这两条最容易踩。
单次请求耗时大概多久?
参考实测数据:
| 质量 | 典型耗时(端到端) |
|---|---|
low | 25 – 35 秒 |
medium / auto | 45 – 60 秒 |
high | 60 – 90 秒 |
建议把 HTTP 客户端超时配置到 ≥ 180 秒,并在前端给用户一个明确的"生成中"提示。
一次能生成几张?
通过 n 参数指定(如 n: 4)。需要注意:每张图独立计费,且耗时累加,单次请求建议不超过 4 张以避免超时。
支持图生图 / 蒙版编辑吗?
/v1/images/generations 仅支持文生图。图生图和局部编辑(inpainting)属于 /v1/images/edits 接口范畴,如有需求请联系平台运营。
为什么 1024x1024 出图实际是 1254x1254?
模型在某些 prompt 下会对小尺寸输入做内部归一化。如需严格 1024x1024,建议改用 1536x1024、2048x2048 等更稳定的档位,或在 prompt 里明确"正方形构图"。
八、计费
gpt-image-2 按张计费,单价随 quality 与 size 浮动。最新单价请直接查阅 模型定价页,平台会在该页面同步上游调价。