curl https://sub.vcnovb.cn/v1/images/edits \
-H "Authorization: Bearer $VC_API_KEY" \
-F 'model=gpt-image-2' \
-F 'prompt=保留杯子的造型和颜色,将背景改为浅灰色摄影棚' \
-F 'image=@reference.png' \
-F 'n=1' \
-F 'size=1024x1024' \
-F 'response_format=url'
curl https://sub.vcnovb.cn/v1/images/edits \
-H "Authorization: Bearer $VC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "保留主体,将背景改为海边日落",
"images": [{"image_url": "https://example.com/reference.png"}],
"n": 1, "size": "1024x1024", "response_format": "url"
}'
import os
import requests
with open("reference.png", "rb") as image:
response = requests.post(
"https://sub.vcnovb.cn/v1/images/edits",
headers={"Authorization": f"Bearer {os.environ['VC_API_KEY']}"},
data={"model": "gpt-image-2", "prompt": "保留主体,将背景改为海边日落",
"n": "1", "size": "1024x1024", "response_format": "url"},
files={"image": ("reference.png", image, "image/png")},
timeout=180,
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://sub.vcnovb.cn/v1/images/edits", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.VC_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-image-2", prompt: "保留主体,将背景改为海边日落",
images: [{ image_url: "https://example.com/reference.png" }],
n: 1, size: "1024x1024", response_format: "url",
}),
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{"created":1794614400,"data":[{"url":"https://example.com/edited.png"}]}
{"created":1794614400,"data":[{"b64_json":"BASE64_IMAGE_DATA"}]}
Image 图片
GPT Image 图片编辑
使用本地文件或图片 URL 进行参考图编辑,支持 multipart 与 JSON 请求示例。
POST
https://sub.vcnovb.cn
/
v1
/
images
/
edits
curl https://sub.vcnovb.cn/v1/images/edits \
-H "Authorization: Bearer $VC_API_KEY" \
-F 'model=gpt-image-2' \
-F 'prompt=保留杯子的造型和颜色,将背景改为浅灰色摄影棚' \
-F 'image=@reference.png' \
-F 'n=1' \
-F 'size=1024x1024' \
-F 'response_format=url'
curl https://sub.vcnovb.cn/v1/images/edits \
-H "Authorization: Bearer $VC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "保留主体,将背景改为海边日落",
"images": [{"image_url": "https://example.com/reference.png"}],
"n": 1, "size": "1024x1024", "response_format": "url"
}'
import os
import requests
with open("reference.png", "rb") as image:
response = requests.post(
"https://sub.vcnovb.cn/v1/images/edits",
headers={"Authorization": f"Bearer {os.environ['VC_API_KEY']}"},
data={"model": "gpt-image-2", "prompt": "保留主体,将背景改为海边日落",
"n": "1", "size": "1024x1024", "response_format": "url"},
files={"image": ("reference.png", image, "image/png")},
timeout=180,
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://sub.vcnovb.cn/v1/images/edits", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.VC_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-image-2", prompt: "保留主体,将背景改为海边日落",
images: [{ image_url: "https://example.com/reference.png" }],
n: 1, size: "1024x1024", response_format: "url",
}),
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{"created":1794614400,"data":[{"url":"https://example.com/edited.png"}]}
{"created":1794614400,"data":[{"b64_json":"BASE64_IMAGE_DATA"}]}
使用参考图和提示词编辑图片。上传本地文件时使用 multipart;使用公开图片 URL 时发送 JSON 请求。
curl https://sub.vcnovb.cn/v1/images/edits \
-H "Authorization: Bearer $VC_API_KEY" \
-F 'model=gpt-image-2' \
-F 'prompt=保留杯子的造型和颜色,将背景改为浅灰色摄影棚' \
-F 'image=@reference.png' \
-F 'n=1' \
-F 'size=1024x1024' \
-F 'response_format=url'
curl https://sub.vcnovb.cn/v1/images/edits \
-H "Authorization: Bearer $VC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "保留主体,将背景改为海边日落",
"images": [{"image_url": "https://example.com/reference.png"}],
"n": 1, "size": "1024x1024", "response_format": "url"
}'
import os
import requests
with open("reference.png", "rb") as image:
response = requests.post(
"https://sub.vcnovb.cn/v1/images/edits",
headers={"Authorization": f"Bearer {os.environ['VC_API_KEY']}"},
data={"model": "gpt-image-2", "prompt": "保留主体,将背景改为海边日落",
"n": "1", "size": "1024x1024", "response_format": "url"},
files={"image": ("reference.png", image, "image/png")},
timeout=180,
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://sub.vcnovb.cn/v1/images/edits", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.VC_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-image-2", prompt: "保留主体,将背景改为海边日落",
images: [{ image_url: "https://example.com/reference.png" }],
n: 1, size: "1024x1024", response_format: "url",
}),
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{"created":1794614400,"data":[{"url":"https://example.com/edited.png"}]}
{"created":1794614400,"data":[{"b64_json":"BASE64_IMAGE_DATA"}]}
请求参数
常见错误
- multipart 请求不要手动设置
Content-Type: application/json,交给客户端生成文件边界。 reference.png必须真实存在;URL 示例必须替换,不能把本地磁盘路径作为公网 URL。- 上传失败时检查文件格式、大小和图片 URL 的可访问性。
- 编辑结果从
data[].url或data[].b64_json读取,分别对应下载地址和 Base64 图片数据。