OpenAI 在 2026 年 4 月发布的 gpt-image-2 已成为图像生成赛道最受关注的模型——99% 字符级文字渲染准确率、4K 高清输出、原生中文/CJK 支持、O 系列推理能力整合。但很多开发者拿到模型后第一个问题就是:gpt-image-2 接入官方 API 究竟应该怎么做?哪些参数是必需的?base_url 怎么配?响应里的 b64_json 拿到后该怎么用?
本文是一份端到端的 gpt-image-2 接入官方 API 实战指南,覆盖从 SDK 安装、base_url 配置到文生图、图片编辑、inpainting、错误处理的全部技术细节。所有代码都基于 OpenAI 官方 SDK 和 APIYI 官转通道(与官方字段 100% 一致),跑完本文你的项目就能立即在生产环境使用 gpt-image-2。

gpt-image-2 接入官方 API 的准备工作清单
在写第一行代码之前,需要先把环境准备好。下面这份清单覆盖了 gpt-image-2 接入官方 API 必须的 4 个先决条件。
gpt-image-2 接入官方 API 的环境清单
| 准备项 | 要求 | 说明 |
|---|---|---|
| API Key | 有效 Bearer Token | 通过 APIYI 控制台申请,注册即可获取测试额度 |
| Python SDK | openai >= 1.50.0 |
旧版本不支持 images.generate() 的新参数 |
| Node.js SDK | openai >= 4.50.0 |
TypeScript 类型已同步官方 |
| HTTP 超时 | ≥ 360 秒 | high 画质 + 2K/4K 实测耗时 3-5 分钟 |
| 网络要求 | 国内可直连 | api.apiyi.com 国内/家宽/海外节点均可访问 |
gpt-image-2 接入官方 API 的 SDK 安装
无论选择哪种语言,安装 OpenAI 官方 SDK 即可——APIYI 官转通道与官方字段完全一致,不需要额外的客户端库。
# Python
pip install --upgrade openai
# Node.js
npm install openai@latest
# 如果使用 yarn / pnpm
yarn add openai
pnpm add openai
gpt-image-2 接入官方 API 的 API Key 获取流程
获取 API Key 的步骤极简:
- 访问 APIYI 控制台
api.apiyi.com - 注册账户后进入「API 令牌」页面
- 创建新 Token(建议为不同项目使用独立 Token 便于审计)
- 将 Token 保存到环境变量(强烈不建议硬编码到代码)
🚀 快速上手建议:首次接入 gpt-image-2 官方 API 时,推荐先用低画质 + 1024×1024 跑通链路,再切换到 high 画质和大尺寸。我们建议通过 API易 apiyi.com 平台领取测试额度,免费额度足够完成 PoC 全流程验证。
# 在 ~/.zshrc 或 ~/.bashrc 中加入
export APIYI_KEY="sk-your-token-here"
gpt-image-2 接入官方 API 的 base_url 配置
整个 gpt-image-2 接入官方 API 流程中,唯一与原生 OpenAI SDK 不同的就是 base_url。把它从 api.openai.com 替换为 api.apiyi.com,其他代码全部保持一致。

gpt-image-2 接入官方 API 的两个端点
APIYI 提供与 OpenAI 完全一致的两个图像端点:
| 端点 | 用途 | 必需参数 |
|---|---|---|
POST /v1/images/generations |
文生图(纯 prompt 生成) | model、prompt |
POST /v1/images/edits |
图片编辑、多图融合、mask 重绘 | model、prompt、image |
gpt-image-2 接入官方 API 的客户端初始化
下面给出 Python 和 Node.js 的客户端初始化代码,记住一定要把超时设置到 360 秒以上。
# Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("APIYI_KEY"),
base_url="https://api.apiyi.com/v1", # 切到 APIYI 官转通道
timeout=600.0, # 高画质场景必须延长
max_retries=2
)
// Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.APIYI_KEY,
baseURL: "https://api.apiyi.com/v1", // 注意是 baseURL(驼峰)
timeout: 600 * 1000, // 毫秒
maxRetries: 2
});
💡 超时设置提醒:默认的 60 秒超时在 high 画质 + 2K/4K 场景下必然失败。我们建议通过 API易 apiyi.com 接入时,所有生产环境客户端的请求超时都设置在 360-600 秒区间,避免长尾请求被错误中断。
gpt-image-2 接入官方 API 的文生图调用
进入实战环节。下面用三种语言展示如何完成第一次 gpt-image-2 接入官方 API 的文生图调用。
gpt-image-2 接入官方 API 的 Python 文生图
import base64
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("APIYI_KEY"),
base_url="https://api.apiyi.com/v1",
timeout=600.0
)
response = client.images.generate(
model="gpt-image-2",
prompt="A modern minimalist office desk with a vintage typewriter, soft morning light from the window, photorealistic, 8K",
size="1536x1024",
quality="high",
output_format="jpeg",
output_compression=92,
n=1
)
# 关键: APIYI 返回的是纯 base64 字符串,无 data:image/... 前缀
b64 = response.data[0].b64_json
with open("output.jpg", "wb") as f:
f.write(base64.b64decode(b64))
print("✓ 图像已保存到 output.jpg")
gpt-image-2 接入官方 API 的 Node.js 文生图
import fs from "node:fs/promises";
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.APIYI_KEY,
baseURL: "https://api.apiyi.com/v1",
timeout: 600_000
});
const response = await client.images.generate({
model: "gpt-image-2",
prompt: "An e-commerce product photo of a leather backpack on a marble desk, studio lighting",
size: "1024x1024",
quality: "high",
output_format: "png",
n: 1
});
const b64 = response.data[0].b64_json;
await fs.writeFile("output.png", Buffer.from(b64, "base64"));
console.log("✓ 图像已保存");
gpt-image-2 接入官方 API 的 cURL 文生图
cURL 适合快速验证 API Key 可用性、测试新参数组合。
curl https://api.apiyi.com/v1/images/generations \
-H "Authorization: Bearer $APIYI_KEY" \
-H "Content-Type: application/json" \
--max-time 600 \
-d '{
"model": "gpt-image-2",
"prompt": "A futuristic cyberpunk city at night, neon signs in mixed Chinese and English",
"size": "2048x1152",
"quality": "high",
"output_format": "jpeg",
"output_compression": 90,
"n": 1
}' | jq -r '.data[0].b64_json' | base64 -d > output.jpg
注意 --max-time 600 必加——cURL 默认无超时,但很多 shell 包装会加上 60 秒强制中断。
gpt-image-2 接入官方 API 的响应处理要点
很多开发者第一次接入时会卡在 base64 解析。下面是几个容易踩坑的点:
# ✗ 错误:APIYI 不返回 url 字段
url = response.data[0].url # AttributeError
# ✓ 正确:使用 b64_json
b64 = response.data[0].b64_json
# ✗ 错误:浏览器直接渲染纯 b64 字符串
<img src="{b64}"> # 不会显示
# ✓ 正确:浏览器渲染需手动拼接前缀
data_uri = f"data:image/jpeg;base64,{b64}"
# <img src="{{ data_uri }}">
# ✓ 正确:服务端保存到磁盘
with open("output.jpg", "wb") as f:
f.write(base64.b64decode(b64))
gpt-image-2 接入官方 API 的完整参数详解
掌握每个参数的取值范围和适用场景,是 gpt-image-2 接入官方 API 进入生产环境的关键。

gpt-image-2 接入官方 API 的核心参数表
| 参数 | 取值 | 默认值 | 说明 |
|---|---|---|---|
model |
"gpt-image-2" |
必填 | 模型 ID |
prompt |
字符串 | 必填 | 提示词,支持中英文混合 |
size |
8 种预设 + 自定义 | auto |
详见下表 |
quality |
auto / low / medium / high |
auto |
影响成本和耗时 |
output_format |
png / jpeg / webp |
png |
推荐 jpeg + 90 压缩 |
output_compression |
1-100 | 100 | 仅对 jpeg/webp 生效 |
moderation |
auto / low |
auto |
low 降低审核敏感度 |
n |
1-10 | 1 | 单次生成数量 |
gpt-image-2 接入官方 API 的 size 参数完整选项
# 8 种官方预设
size = "1024x1024" # 1:1 标准方图
size = "1536x1024" # 3:2 横版
size = "1024x1536" # 2:3 竖版
size = "2048x2048" # 2K 方图
size = "2048x1152" # 16:9 横版(适合电脑壁纸/海报)
size = "3840x2160" # 4K 横版
size = "2160x3840" # 4K 竖版(适合手机壁纸)
size = "auto" # 由模型自动选择
如果需要自定义尺寸,必须满足以下约束:
✓ 边长是 16 的整数倍
✓ 最大边长 ≤ 3840px
✓ 长短边比例 ≤ 3:1
✓ 总像素在 655,360 ~ 8,294,400 之间
例如 1280x720(720P)合法,3840x1080(超宽屏)会因为比例 > 3:1 被拒绝。
gpt-image-2 接入官方 API 的 quality 与成本对照
quality 是影响成本最大的参数。下面是完整定价对照表(每张图)。
| 画质 | 1024×1024 | 1024×1536 | 1536×1024 | 适用场景 |
|---|---|---|---|---|
low |
$0.006 | $0.005 | $0.005 | 草图、缩略图、快速迭代 |
medium |
$0.053 | $0.041 | $0.041 | 内容站、自媒体配图 |
high |
$0.211 | $0.165 | $0.165 | 商品图、海报、广告物料 |
💰 成本优化:日均生图 100 张的内容团队,使用
medium画质比high节省 75% 成本。我们建议通过 API易 apiyi.com 平台先用low画质快速跑 prompt 调优,定稿后再升级到medium/high出最终图,能把月度图像生成预算降低 30-50%。
gpt-image-2 接入官方 API 的 output_format 选择
输出格式直接影响存储成本和加载速度:
# 透明背景需求?gpt-image-2 不支持,会报 400
# ✗ output_format="png", background="transparent" → 400 Bad Request
# 网页/小程序展示:jpeg + 压缩 90
output_format="jpeg", output_compression=90
# 高保真存档:png(无损)
output_format="png"
# 现代 Web 应用:webp 体积最小
output_format="webp", output_compression=85
gpt-image-2 接入官方 API 的图片编辑与 inpainting
除了文生图,gpt-image-2 还支持图片编辑、多图融合、局部重绘(inpainting/outpainting)三大编辑场景。

gpt-image-2 接入官方 API 的图片编辑(参考图模式)
参考图编辑会自动启用 high-fidelity 模式——所以不要传 input_fidelity 参数(会被拒绝)。
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("APIYI_KEY"),
base_url="https://api.apiyi.com/v1"
)
# 单张参考图编辑
with open("source.jpg", "rb") as img:
response = client.images.edit(
model="gpt-image-2",
image=img,
prompt="把背景换成日落海滩,保留前景人物姿势和服装",
size="1024x1024",
quality="high"
)
gpt-image-2 接入官方 API 的多图融合(最多 16 张)
/images/edits 端点支持最多 16 张参考图同时输入,prompt 中用「图1/图2/图3」指代。
images = [
open("character.jpg", "rb"), # 图1:角色
open("background.jpg", "rb"), # 图2:背景
open("outfit.jpg", "rb"), # 图3:服装参考
]
response = client.images.edit(
model="gpt-image-2",
image=images,
prompt="将图1的角色放置在图2的背景中,让角色穿上图3的服装风格,保持电影质感",
size="2048x1152",
quality="high"
)
这个能力在电商商品换背景、虚拟试穿、漫画分镜生成等场景极为强大。
gpt-image-2 接入官方 API 的 Inpainting 局部重绘
Inpainting 通过 mask 参数指定要重绘的区域。关键规则:
- mask 必须与第一张参考图尺寸一致
- mask 是带 alpha 通道 的 PNG
- 透明区域 = 要重绘的区域
- 不透明区域 = 保持原图
with open("photo.png", "rb") as img, open("mask.png", "rb") as msk:
response = client.images.edit(
model="gpt-image-2",
image=img,
mask=msk,
prompt="把红框区域换成一只橙色的猫",
size="1024x1024",
quality="high"
)
如果你需要在 Python 中程序化生成 mask,可以用 PIL:
from PIL import Image
# 创建一个与原图同尺寸的 mask,默认全黑(不透明 = 保留)
mask = Image.new("RGBA", (1024, 1024), (0, 0, 0, 255))
# 把要重绘的区域改为透明(alpha=0)
for x in range(400, 700):
for y in range(300, 600):
mask.putpixel((x, y), (0, 0, 0, 0))
mask.save("mask.png")
gpt-image-2 接入官方 API 的错误处理与生产实践
把 gpt-image-2 接入官方 API 推到生产,必须处理好错误码、并发、超时三大问题。
gpt-image-2 接入官方 API 的完整错误码表
| HTTP 状态码 | 含义 | 推荐处理 |
|---|---|---|
400 |
参数非法(size 越界、传了不支持字段) | 校验输入;不要传 input_fidelity 或 background:transparent |
401 |
令牌无效 | 检查 Bearer Token、确认未过期 |
403 |
内容审核拦截 | 调整 prompt,或加 moderation: "low" |
429 |
限流 / 余额不足 | 指数退避重试 + 余额检查 |
5xx |
网关或后端错误 | 重试 1-2 次,仍失败上报告警 |
| 超时 | 长尾请求未及时响应 | 客户端超时设到 ≥ 360 秒 |
gpt-image-2 接入官方 API 的指数退避重试
下面是一个生产级的重试封装,处理 429 和 5xx:
import time
import random
from openai import OpenAI, RateLimitError, APIStatusError
client = OpenAI(
api_key=os.getenv("APIYI_KEY"),
base_url="https://api.apiyi.com/v1",
timeout=600.0
)
def generate_with_retry(prompt: str, max_retries: int = 5):
delay = 1.0
for attempt in range(max_retries):
try:
return client.images.generate(
model="gpt-image-2",
prompt=prompt,
size="1024x1024",
quality="high"
)
except RateLimitError:
sleep = delay + random.uniform(0, 0.5)
print(f"429 限流,{sleep:.1f}s 后重试 ({attempt+1}/{max_retries})")
time.sleep(sleep)
delay *= 2
except APIStatusError as e:
if 500 <= e.status_code < 600 and attempt < max_retries - 1:
time.sleep(delay)
delay *= 2
continue
raise
raise RuntimeError("超过最大重试次数")
gpt-image-2 接入官方 API 的并发控制
批量任务用 asyncio.Semaphore 限制并发数,避免短时打爆下游:
import asyncio
from openai import AsyncOpenAI
aclient = AsyncOpenAI(
api_key=os.getenv("APIYI_KEY"),
base_url="https://api.apiyi.com/v1",
timeout=600.0
)
async def gen_one(prompt: str, sem: asyncio.Semaphore):
async with sem:
return await aclient.images.generate(
model="gpt-image-2",
prompt=prompt,
size="1024x1024",
quality="medium"
)
async def batch(prompts: list[str], concurrency: int = 30):
sem = asyncio.Semaphore(concurrency)
return await asyncio.gather(*[gen_one(p, sem) for p in prompts])
# 跑 200 张图,30 路并发
prompts = [f"商品场景图变体 #{i}" for i in range(200)]
results = asyncio.run(batch(prompts))
gpt-image-2 接入官方 API 的成本预估
生产前先做成本预估。下面是几个典型场景的月度费用估算:
| 业务场景 | 日均量 | 画质 | 月成本估算 |
|---|---|---|---|
| 自媒体配图 | 30 张 | medium | ~$48 |
| 电商商品图 | 200 张 | high | ~$1266 |
| SaaS 用户生图 | 1000 次 | medium | ~$1590 |
| 游戏关键帧 | 500 张 | high | ~$3165 |
🎯 生产部署建议:建议为不同业务线申请独立 API Token 便于成本归因和限流隔离。我们建议通过 API易 apiyi.com 控制台开启账单告警,当月度消耗达到预设阈值时自动通知,避免预算超支。
gpt-image-2 接入官方 API 的可观测性
生产环境务必记录每次请求的关键指标:
import time
import logging
logger = logging.getLogger("gpt-image-2")
def call_with_metrics(prompt: str, **params):
start = time.perf_counter()
try:
resp = client.images.generate(model="gpt-image-2", prompt=prompt, **params)
latency = time.perf_counter() - start
logger.info(
"gpt-image-2 ok",
extra={
"latency_ms": int(latency * 1000),
"size": params.get("size"),
"quality": params.get("quality"),
"n": params.get("n", 1)
}
)
return resp
except Exception as e:
logger.error(f"gpt-image-2 failed: {type(e).__name__}: {e}")
raise
关于 gpt-image-2 接入官方 API 的常见问题 FAQ
Q1:gpt-image-2 接入官方 API 时为什么会出现 input_fidelity 报 400?
gpt-image-2 在所有编辑场景自动启用 high-fidelity,因此 input_fidelity 参数被拒绝。直接删掉这个参数即可。如果你的代码是从 gpt-image-1 迁移过来,需要全局搜索移除。我们建议通过 API易 apiyi.com 文档对比新旧模型的参数差异:docs.apiyi.com。
Q2:gpt-image-2 接入官方 API 调用为什么经常超时?
high 画质 + 2K/4K 单张图实测耗时 3-5 分钟。如果客户端默认超时是 60 秒,必然失败。修复方案:把 timeout 设到 360-600 秒。Python SDK 用 OpenAI(timeout=600),Node.js 用 timeout: 600_000,cURL 用 --max-time 600。
Q3:gpt-image-2 接入官方 API 返回的 b64_json 怎么直接显示在网页上?
API 返回的是纯 base64 字符串无前缀,浏览器无法直接渲染。需要拼接:
const dataUri = `data:image/${format};base64,${b64}`;
imgElement.src = dataUri;
如果是后端服务,建议把 base64 解码后保存到 OSS/CDN,前端只接收 URL,避免 base64 字符串塞满 HTML 影响首屏速度。我们建议通过 API易 apiyi.com 平台测试时优先用 cURL + base64 解码到本地文件验证,确认链路通畅后再接入完整的存储分发架构。
Q4:gpt-image-2 接入官方 API 时透明背景能做吗?
目前 gpt-image-2 不支持透明背景,传 background: "transparent" 会被 400 拒绝。变通方案:生成纯白/纯绿背景图后,用客户端工具(如 rembg 库)抠图获得透明背景。
Q5:gpt-image-2 接入官方 API 的 thinking 参数怎么用?
thinking 是 gpt-image-2 引入的推理参数(off / low / medium / high),开启后模型会先做布局规划再生成,质量更高但成本会显著上升(high 模式成本约 4-5 倍基础值)。建议:只在文字密集型海报、复杂构图场景使用 medium,常规场景保持 off。我们建议通过 API易 apiyi.com 的统一接口先做 A/B 测试,再决定是否长期开启。
Q6:gpt-image-2 接入官方 API 时遇到 403 内容审核怎么办?
先尝试在请求里加 moderation: "low" 降低敏感度。如果仍被拦截,说明 prompt 触发了核心安全策略(涉及暴力、未成年人不当内容、知名人物肖像等),需要重写 prompt。注意:moderation: "low" 不是关闭审核,只是放宽,仍会拦截高危内容。
Q7:gpt-image-2 接入官方 API 的 base_url 写错会怎样?
如果写成 https://api.apiyi.com(少了 /v1),SDK 会拼成 api.apiyi.com/images/generations 导致 404。正确写法是 https://api.apiyi.com/v1。Python 用 base_url,Node.js 用 baseURL(驼峰),别搞错大小写。
Q8:gpt-image-2 接入官方 API 多图融合的最佳实践是什么?
最多 16 张参考图,prompt 里用「图1/图2」指代。关键技巧:
- 第一张参考图通常作为「主体」,模型会优先保留其结构
- 复杂指令可分步:先写「以图1为主体」,再写「融合图2 的色调」
- 多图编辑成本是文生图的 1.5-2 倍,预算敏感场景慎用
- 建议先用 2-3 张图跑通逻辑,再扩展到更多参考图
总结:gpt-image-2 接入官方 API 的完整路径回顾
走完本文 9 个章节,你应该已经掌握了 gpt-image-2 接入官方 API 的完整工程方法:
- ✅ 准备工作 —— SDK 升级到最新、超时设到 ≥ 360 秒
- ✅ base_url 配置 —— 替换为
https://api.apiyi.com/v1,其他代码与官方一致 - ✅ 文生图调用 —— Python/Node.js/cURL 三语言模板
- ✅ 参数详解 —— size 8 种预设 + 自定义、quality 三档、output_format 三选
- ✅ 图片编辑 —— 最多 16 张参考图、prompt 用「图1/图2」指代
- ✅ Inpainting 重绘 —— mask alpha 通道,透明区域重绘
- ✅ 错误处理 —— 400/401/403/429/5xx 完整应对方案
- ✅ 生产实践 —— 指数退避、并发控制、成本预估、可观测性
最后给一个落地建议:先用 low 画质 + 1024×1024 跑通一次 hello world,再逐步加复杂度。这样能快速发现 SDK 版本、超时、API Key 等基础问题,避免一上来就在 high + 4K 的长尾请求里浪费调试时间。
如果你的团队正准备评估 gpt-image-2 接入方案、或者已经在写第一版代码遇到参数报错、超时等问题,建议直接通过 API易 apiyi.com 申请测试 Key 跑一遍本文的代码模板。所有示例都基于官方 SDK + APIYI 官转通道(字段 100% 一致),通用性极高,能直接复用到你自己的项目。
参考资料
-
OpenAI gpt-image-2 模型文档:模型能力、参数、定价权威说明
- 链接:
developers.openai.com/api/docs/models/gpt-image-2 - 说明: 包含 4K 渲染、字符级文字、推理整合等核心特性
- 链接:
-
OpenAI Image Generation 指南:文生图、编辑、inpainting 完整工作流
- 链接:
developers.openai.com/api/docs/guides/image-generation - 说明: 涵盖 size/quality/format 全部参数详解
- 链接:
-
OpenAI Create Image API Reference:/v1/images/generations 端点完整字段
- 链接:
developers.openai.com/api/reference/resources/images/methods/generate - 说明: 请求/响应字段权威参考
- 链接:
-
APIYI 官方接入文档:gpt-image-2 中文版完整接入指南
- 链接:
docs.apiyi.com/api-capabilities/gpt-image-2/overview - 说明: 含 cURL/Python/Node.js 示例和错误码处理
- 链接:
-
OpenAI Cookbook · Rate Limits:429 错误的指数退避方案
- 链接:
developers.openai.com/cookbook/examples/how_to_handle_rate_limits - 说明: 官方推荐的限流处理代码模板
- 链接:
作者: APIYI 技术团队
发布日期: 2026 年 4 月 27 日
关键词: gpt-image-2 接入官方 API、base_url、文生图、图片编辑、inpainting、APIYI、OpenAI SDK