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