文生图:根据文本描述 + size 生成指定尺寸图片
curl --request POST \
--url https://api.apiyi.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-image-2-vip",
"prompt": "黄昏时的海边老灯塔,电影画幅,写实风格"
}
'import requests
url = "https://api.apiyi.com/v1/images/generations"
payload = {
"model": "gpt-image-2-vip",
"prompt": "黄昏时的海边老灯塔,电影画幅,写实风格"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({model: 'gpt-image-2-vip', prompt: '黄昏时的海边老灯塔,电影画幅,写实风格'})
};
fetch('https://api.apiyi.com/v1/images/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.apiyi.com/v1/images/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'gpt-image-2-vip',
'prompt' => '黄昏时的海边老灯塔,电影画幅,写实风格'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.apiyi.com/v1/images/generations"
payload := strings.NewReader("{\n \"model\": \"gpt-image-2-vip\",\n \"prompt\": \"黄昏时的海边老灯塔,电影画幅,写实风格\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.apiyi.com/v1/images/generations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"gpt-image-2-vip\",\n \"prompt\": \"黄昏时的海边老灯塔,电影画幅,写实风格\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apiyi.com/v1/images/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"gpt-image-2-vip\",\n \"prompt\": \"黄昏时的海边老灯塔,电影画幅,写实风格\"\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"b64_json": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
}
],
"created": 1778037127,
"usage": {
"input_tokens": 98,
"output_tokens": 1185,
"total_tokens": 1283
}
}GPT-Image-2-VIP 生圖
文生圖 API 參考
gpt-image-2-vip 文生圖 API 參考與線上除錯 — 輸入文本描述 + size 鎖定輸出尺寸生成圖片,$0.03/張統一價
POST
/
v1
/
images
/
generations
文生图:根据文本描述 + size 生成指定尺寸图片
curl --request POST \
--url https://api.apiyi.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-image-2-vip",
"prompt": "黄昏时的海边老灯塔,电影画幅,写实风格"
}
'import requests
url = "https://api.apiyi.com/v1/images/generations"
payload = {
"model": "gpt-image-2-vip",
"prompt": "黄昏时的海边老灯塔,电影画幅,写实风格"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({model: 'gpt-image-2-vip', prompt: '黄昏时的海边老灯塔,电影画幅,写实风格'})
};
fetch('https://api.apiyi.com/v1/images/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.apiyi.com/v1/images/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'gpt-image-2-vip',
'prompt' => '黄昏时的海边老灯塔,电影画幅,写实风格'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.apiyi.com/v1/images/generations"
payload := strings.NewReader("{\n \"model\": \"gpt-image-2-vip\",\n \"prompt\": \"黄昏时的海边老灯塔,电影画幅,写实风格\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.apiyi.com/v1/images/generations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"gpt-image-2-vip\",\n \"prompt\": \"黄昏时的海边老灯塔,电影画幅,写实风格\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apiyi.com/v1/images/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"gpt-image-2-vip\",\n \"prompt\": \"黄昏时的海边老灯塔,电影画幅,写实风格\"\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"b64_json": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
}
],
"created": 1778037127,
"usage": {
"input_tokens": 98,
"output_tokens": 1185,
"total_tokens": 1283
}
}右側的互動式 Playground 支援直接線上除錯。請在 Authorization 中填入你的 API Key(格式:
Bearer sk-xxx),輸入 prompt 與 size 後一鍵傳送即可。場景說明:本頁用於「文本生成圖片」。只需輸入提示詞與
size 即可,無需上傳任何圖片。如需根據現有圖片做編輯或融合,請使用 圖片編輯介面。與 gpt-image-2-all 的區別:呼叫結構完全一致,只多一個 size 欄位;不需要鎖尺寸、追求出圖速度時改用 gpt-image-2-all 即可。🖥️ 瀏覽器 Playground 限制本端點預設返回 base64 字串(
b64_json),體積可達數 MB,瀏覽器 Playground 可能彈出 請求時發生錯誤: unable to complete request ——實際請求已經成功,只是瀏覽器無法顯示這麼長的 base64。推薦做法:複製下方”程式碼示例”到本地執行,程式碼會自動解碼並把圖片儲存為本地檔案。圖片 API 全部為同步呼叫:沒有非同步任務 ID,客戶端斷開連線結果即丟失、但請求仍會計費。請為本模型設定足夠大的 timeout,詳見 圖片 API 呼叫須知與最佳實踐。
⚠️ 關鍵引數說明
size:可傳auto讓模型自動決定尺寸(vip 在同一提示詞下尺寸相對收斂/固定),或從 30 檔常見尺寸裡選(10 比例 × 1K Fast / 2K Recommended / 4K Detail,詳見 概覽頁 size 完整表)嚴格鎖尺寸。寫法用半形小寫x,例如2048x1360、3840x2160,不要用×或大寫X。quality:❌ 不接受,不要傳。n:❌ 不接受,單次僅返回 1 張圖。傳 n=3 會按 0.09 $ 扣費但只返回 1 張,請把n欄位從請求裡去掉。aspect_ratio:❌ 不接受。比例直接由size決定。response_format:不傳預設返回 base64(純 base64 無字首,2026-07 實測);傳"url"可返回圖片 URL。強依賴 URL 輸出的業務建議把令牌分組切到image2_OSS,穩定輸出 URL、不降級為 base64。
程式碼示例
Python
import requests
API_KEY = "sk-your-api-key"
response = requests.post(
"https://api.apiyi.com/v1/images/generations",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": "gpt-image-2-vip",
"prompt": "黃昏時的海邊老燈塔,電影畫幅,寫實風格",
"size": "2048x1152", # 16:9 2K Recommended
"response_format": "url" # 預設返回 base64,讀 url 欄位需顯式傳
},
timeout=300 # 保守值,吸收長尾 + 圖片下載耗時
).json()
image_url = response["data"][0]["url"]
print(image_url)
import requests
response = requests.post(
"https://api.apiyi.com/v1/images/generations",
headers={"Authorization": "Bearer sk-your-api-key"},
json={
"model": "gpt-image-2-vip",
"prompt": "桌面桌布,賽博朋克城市夜景,霓虹招牌,雨後倒影",
"size": "3840x2160" # 16:9 4K Detail
},
timeout=300
).json()
# 實測(2026-07)b64_json 為純 base64(無 data: 字首);歷史版本曾含字首,做個檢測最穩
import base64
b64 = response["data"][0]["b64_json"]
if b64.startswith("data:"):
b64 = b64.split(",", 1)[1]
with open("wallpaper.png", "wb") as f:
f.write(base64.b64decode(b64))
cURL
curl -X POST "https://api.apiyi.com/v1/images/generations" \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2-vip",
"prompt": "白色陶瓷馬克杯放在灰色桌面上的產品圖,柔和自然光",
"size": "2048x1360"
}'
Node.js
const API_KEY = "sk-your-api-key";
const response = await fetch(
"https://api.apiyi.com/v1/images/generations",
{
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "gpt-image-2-vip",
prompt: "1:1 方形 LOGO,極簡貓咪線條",
size: "2048x2048" // 1:1 2K Recommended
})
}
);
const data = await response.json();
// 實測為純 base64(無 data: 字首),渲染前需拼接;歷史版本曾自帶字首,做個檢測最穩
let b64 = data.data[0].b64_json;
if (!b64.startsWith("data:")) b64 = `data:image/png;base64,${b64}`;
document.getElementById("result").src = b64;
OpenAI SDK(Python,推薦)
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.apiyi.com/v1"
)
resp = client.images.generate(
model="gpt-image-2-vip",
prompt="水墨山水,國畫風格,縱向構圖",
size="1536x2048", # 3:4 2K Portrait
)
print(resp.data[0].url)
引數說明速查
| 引數 | 型別 | 必填 | 說明 |
|---|---|---|---|
model | string | 是 | 固定填 gpt-image-2-vip |
prompt | string | 是 | 提示詞,描述畫面內容、風格、光線等 |
size | string | 強烈建議 | 輸出尺寸:auto(模型自動決定,vip 在同一提示詞下尺寸相對固定)或 30 檔之一;寫法 寬x高(半形小寫 x);省略時等同 auto |
size 速查:常用挑這幾個就夠:
- 電商主圖:
2048x1360(3:2 2K) /2048x2048(1:1 2K) - 海報豎圖:
1536x2048(3:4 2K) /2480x3312(3:4 4K) - 影片封面:
2048x1152(16:9 2K) /3840x2160(16:9 4K) - 故事/手機桌布:
1152x2048(9:16 2K) /2160x3840(9:16 4K)
響應格式
預設返回 base64(data[0].b64_json,純 base64 無字首,2026-07 實測)。如需 圖片 URL:顯式傳 response_format: "url" 即可;強依賴 URL 輸出的業務建議把令牌分組切到 image2_OSS,穩定輸出 URL、不降級為 base64。data[0] 中只會出現 url 或 b64_json 之一,不會兩者都返回。
b64_json 模式(預設):
{
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUgAA..."
}
],
"created": 1778037127,
"usage": {
"input_tokens": 98,
"output_tokens": 1185,
"total_tokens": 1283
}
}
url 模式(顯式傳 response_format: "url";強依賴 URL 建議用 image2_OSS 分組,R2 CDN 全球加速):
{
"data": [
{
"url": "https://r2cdn.copilotbase.com/r2cdn2/0e82148a-bec0-4b42-bbca-117c6b42581b.png"
}
],
"created": 1778037331,
"usage": {
"input_tokens": 30,
"output_tokens": 2074,
"total_tokens": 2104
}
}
相容性提示:2026-07 實測
b64_json 欄位為純 base64(不含 data: 字首),需解碼寫檔案或自行拼接字首後渲染;歷史版本曾直接帶字首。請在程式碼裡做 startsWith('data:') 檢測後再處理,相容兩種形態。相關資源
模型概覽(含完整 size 表)
30 檔 size 完整對照表、定價、技術規格
圖片編輯 API
/v1/images/edits 多圖融合與改圖姐妹模型 gpt-image-2-all
不需要鎖尺寸時呼叫方式一致,出圖更快(約 30–60s)
授權
在 API易控制台获取的 API Key
主體
application/json
模型名称,固定为 gpt-image-2-vip
可用選項:
gpt-image-2-vip 提示词,描述画面内容、风格、光线等
範例:
"黄昏时的海边老灯塔,电影画幅,写实风格"
输出尺寸。可传 auto 让模型自动决定(vip 在同一提示词下倾向收敛到一个相对固定的尺寸),或从 30 档常见尺寸里选(10 比例 × 1K Fast / 2K Recommended / 4K Detail)严格锁尺寸。
写法:宽x高(半角小写 x),如 2048x1360、3840x2160。所有档位统一价 $0.03/张。
可用選項:
auto, 1280x1280, 848x1280, 1280x848, 960x1280, 1280x960, 1024x1280, 1280x1024, 720x1280, 1280x720, 1280x544, 2048x2048, 1360x2048, 2048x1360, 1536x2048, 2048x1536, 1632x2048, 2048x1632, 1152x2048, 2048x1152, 2048x864, 2880x2880, 2336x3520, 3520x2336, 2480x3312, 3312x2480, 2560x3216, 3216x2560, 2160x3840, 3840x2160, 3840x1632 範例:
"2048x1152"
回應
成功生成图片。响应默认返回 base64(data[0].b64_json),不会同时返回 url。
這個頁面有幫助嗎?
⌘I