gpt-image-2 API
本文介绍 gpt-image-2 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
请求参数
请求体
响应参数
示例
OPENAI 兼容接口
POST https://api.modelverse.cn/v1/images/generations
同步请求
curl
curl --location 'https://api.modelverse.cn/v1/images/generations' \
--header "Authorization: Bearer $MODELVAULTS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2",
"prompt": "a beautiful flower",
"size": "1024x1024",
"quality": "high",
"output_format": "png",
"output_compression": 100
}'python
import os, base64
from openai import OpenAI
client = OpenAI(
base_url="https://api.modelverse.cn/v1",
api_key=os.getenv("MODELVAULTS_API_KEY", "YOUR_API_KEY")
)
res = client.images.generate(
model="gpt-image-2",
prompt="a beautiful flower",
size="1024x1024",
quality="high",
)
# gpt-image-2 返回 base64 数据
image_b64 = res.data[0].b64_json
raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64
with open("image.png", "wb") as f:
f.write(base64.b64decode(raw))
print("Saved to image.png")图片编辑
POST https://api.modelverse.cn/v1/images/edits
gpt-image-2 支持局部编辑功能,能够针对特定区域进行修改,同时保持其他区域的构图、色调和人物外观一致,避免整体重绘。
使用 multipart/form-data 传参,至少包含待编辑图片 image(可选 mask)、以及 model、prompt 等字段;其余参数如 size、quality、output_format、output_compression 与生成接口一致。
curl
curl --location 'https://api.modelverse.cn/v1/images/edits' \
--header "Authorization: Bearer $MODELVAULTS_API_KEY" \
-F "image=@/path/to/your/image.png" \
-F "mask=@/path/to/your/mask.png" \
-F "model=gpt-image-2" \
-F "prompt=Add a beach ball in the center" \
-F "size=1024x1024" \
-F "n=1" \
-F "quality=low" \
-F "output_format=png" \
-F "output_compression=100"python
import os, base64, requests
url = "https://api.modelverse.cn/v1/images/edits"
headers = {"Authorization": f"Bearer {os.getenv('MODELVAULTS_API_KEY', '$MODELVAULTS_API_KEY')}"}
files = {
"image": ("beach.png", open("beach.png", "rb"), "image/png"),
# 可选:提供 mask 来限定编辑区域
# "mask": ("mask.png", open("mask.png", "rb"), "image/png"),
}
data = {
"model": "gpt-image-2",
"prompt": "Add a beach ball in the center",
"size": "1024x1024",
"n": "1",
"quality": "high",
"output_format": "png",
"output_compression": "100",
}
r = requests.post(url, headers=headers, files=files, data=data)
r.raise_for_status()
resp = r.json()
image_b64 = resp["data"][0]["b64_json"]
raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64
with open("edit.png", "wb") as f:
f.write(base64.b64decode(raw))
print("Saved to edit.png")响应
{
"created": 1750667997,
"data":
[
{
"b64_json": "{image_base64_string}"
}
],
"usage":
{
"total_tokens": 4169,
"input_tokens": 9,
"output_tokens": 4160,
"input_tokens_details":
{
"text_tokens": 9
}
}
}{
"error": {
"message": "error_message",
"type": "error_type",
"param": "request_id",
"code": "error_code"
}
}








