Skip to content

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 出一张图、保存到本地。

bash
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.png
python
from 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)
)
javascript
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 数组的每一项对应一张图:

json
{
  "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,则无需任何调整。


三、请求体参数

字段类型必填默认说明
modelstring模型 ID,固定为 gpt-image-2
promptstring提示词,中英文皆可,长度建议 ≤ 1000 字
ninteger1单次请求生成的图片数量
sizestringauto输出尺寸,详见 § 四
qualitystringauto渲染质量,详见 § 五

关于 auto:sizequality 缺省或显式传 auto 时,平台会让模型根据 prompt 语义自行决策;如需结果可控,请显式指定具体值。


四、尺寸(size)

4.1 推荐档位

经过实测验证、可直接拿来用的几档常用尺寸:

档位尺寸典型场景
标准方图1024x1024头像、应用图标、产品图
标准横图1536x1024Banner、横向插画
标准竖图1024x1536海报、手机壁纸
2K 方图2048x2048高清头像、印刷正方形物料
2K 横图2048x115216:9 视频封面、宽屏 Banner
4K 横图3840x2160UHD 桌面壁纸、视频封面(最大档)
4K 竖图2160x3840竖版超清海报、店铺主视觉
智能档auto让模型按 prompt 自适应(默认)

4.2 自定义尺寸约束

如果你不想用上面的档位,可以传任意自定义尺寸,但必须同时满足以下四条规则:

  1. 单边像素 ≤ 3840
  2. 宽和高都必须是 16 的整数倍(例:1024 ✅,1000 ❌);
  3. 长边与短边比例 ≤ 3 : 1(例:1536x1024 ✅,3000x800 ❌);
  4. 总像素数(宽 × 高)必须落在 [ 655 360 , 8 294 400 ] 区间内。

任意一条不满足,请求会被上游拒绝并返回参数错误。

4.3 用法示例

bash
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 用法示例

bash
# 草稿模式:先用 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"
  }'

六、完整请求范例

bash
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"——这两条最容易踩。

单次请求耗时大概多久?

参考实测数据:

质量典型耗时(端到端)
low25 – 35 秒
medium / auto45 – 60 秒
high60 – 90 秒

建议把 HTTP 客户端超时配置到 ≥ 180 秒,并在前端给用户一个明确的"生成中"提示。

一次能生成几张?

通过 n 参数指定(如 n: 4)。需要注意:每张图独立计费,且耗时累加,单次请求建议不超过 4 张以避免超时。

支持图生图 / 蒙版编辑吗?

/v1/images/generations 仅支持文生图。图生图和局部编辑(inpainting)属于 /v1/images/edits 接口范畴,如有需求请联系平台运营。

为什么 1024x1024 出图实际是 1254x1254?

模型在某些 prompt 下会对小尺寸输入做内部归一化。如需严格 1024x1024,建议改用 1536x10242048x2048 等更稳定的档位,或在 prompt 里明确"正方形构图"。


八、计费

gpt-image-2计费,单价随 qualitysize 浮动。最新单价请直接查阅 模型定价页,平台会在该页面同步上游调价。