curl --request POST \
--url https://model-api.skyengine.com.cn/v1/images/edits \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form image=@image.png \
--form 'prompt=在图片中添加一朵红色的玫瑰花' \
--form mask=@example-fileimport requests
url = "https://model-api.skyengine.com.cn/v1/images/edits"
files = { "mask": ("example-file", open("example-file", "rb")) }
payload = {
"image": "@image.png",
"prompt": "在图片中添加一朵红色的玫瑰花"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('image', '@image.png');
form.append('prompt', '在图片中添加一朵红色的玫瑰花');
form.append('mask', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://model-api.skyengine.com.cn/v1/images/edits', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://model-api.skyengine.com.cn/v1/images/edits"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"\r\n\r\n@image.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\n在图片中添加一朵红色的玫瑰花\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mask\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://model-api.skyengine.com.cn/v1/images/edits")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"\r\n\r\n@image.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\n在图片中添加一朵红色的玫瑰花\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mask\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://model-api.skyengine.com.cn/v1/images/edits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"\r\n\r\n@image.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\n在图片中添加一朵红色的玫瑰花\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mask\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"created": 1589478378,
"data": [
{
"url": "https://oaidalleapiprodscus.blob.core.windows.net/private/org-xyz/user-abc/img-edited.png"
}
],
"usage": {
"input_tokens": 18,
"input_tokens_details": {
"image_tokens": 5,
"text_tokens": 13
},
"output_tokens": 205,
"output_tokens_details": {
"image_tokens": 205,
"text_tokens": 0
},
"total_tokens": 223
},
"generate_image": 1
}{
"error": {
"code": 123,
"message": "<string>",
"details": [
{}
]
}
}/v1/images/edits
根据一张或多张输入图片和提示词创建编辑图像。支持 multipart/form-data 上传本地文件,也支持 application/json 传入图片 URL、纯 Base64 或 Data URI。
curl --request POST \
--url https://model-api.skyengine.com.cn/v1/images/edits \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form image=@image.png \
--form 'prompt=在图片中添加一朵红色的玫瑰花' \
--form mask=@example-fileimport requests
url = "https://model-api.skyengine.com.cn/v1/images/edits"
files = { "mask": ("example-file", open("example-file", "rb")) }
payload = {
"image": "@image.png",
"prompt": "在图片中添加一朵红色的玫瑰花"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('image', '@image.png');
form.append('prompt', '在图片中添加一朵红色的玫瑰花');
form.append('mask', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://model-api.skyengine.com.cn/v1/images/edits', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://model-api.skyengine.com.cn/v1/images/edits"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"\r\n\r\n@image.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\n在图片中添加一朵红色的玫瑰花\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mask\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://model-api.skyengine.com.cn/v1/images/edits")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"\r\n\r\n@image.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\n在图片中添加一朵红色的玫瑰花\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mask\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://model-api.skyengine.com.cn/v1/images/edits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"\r\n\r\n@image.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\n在图片中添加一朵红色的玫瑰花\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mask\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"created": 1589478378,
"data": [
{
"url": "https://oaidalleapiprodscus.blob.core.windows.net/private/org-xyz/user-abc/img-edited.png"
}
],
"usage": {
"input_tokens": 18,
"input_tokens_details": {
"image_tokens": 5,
"text_tokens": 13
},
"output_tokens": 205,
"output_tokens_details": {
"image_tokens": 205,
"text_tokens": 0
},
"total_tokens": 223
},
"generate_image": 1
}{
"error": {
"code": 123,
"message": "<string>",
"details": [
{}
]
}
}Authorizations
OpenAI API密钥认证。在 Authorization HTTP Header 中包含您的 API-Key,格式为 Bearer {API_KEY}
Body
要编辑的图像。必须是支持的图像文件或图像数组。对于 gpt-image-1,每个图像应为 png、webp 或 jpg 文件,小于 50MB。最多可提供 16 个图像。对于 dall-e-2,只能提供一个图像,且应为正方形 png 文件,小于 4MB
描述所需图像的文本提示。dall-e-2 最大长度为 1000 个字符,gpt-image-1 最大长度为 32000 个字符
32000"在图片中添加一朵红色的玫瑰花"
用于图片编辑的模型。新接入推荐 gpt-image-2.5-sunburst;低延迟场景可选 gpt-image-2.5-flare
gpt-image-2.5-flare, gpt-image-2.5-sunburst, gpt-image-2-2026-04-21, gpt-image-2, gpt-image-1.5, gpt-image-1-mini, gpt-image-1, dall-e-2 "gpt-image-2.5-sunburst"
设置生成图像背景的透明度。此参数仅支持 gpt-image-1。必须是 transparent、opaque 或 auto(默认值)之一。当使用 auto 时,模型将自动确定图像的最佳背景。如果是 transparent,输出格式需要支持透明度,因此应设置为 png(默认值)或 webp
transparent, opaque, auto 控制模型匹配输入图片风格和特征的努力程度。GPT Image 2.5 当前仅 gpt-image-2.5-sunburst 支持 high;Flare 请省略此字段。其他模型以模型说明为准
high, low 一个额外的图像,其完全透明的区域(例如 alpha 为零的地方)指示应该编辑图像的位置。如果提供了多个图像,mask 将应用于第一个图像。必须是有效的 PNG 文件,小于 4MB,并且与图像具有相同的尺寸
要生成的图像数量。必须在 1 到 10 之间
1 <= x <= 10生成图像的压缩级别(0-100%)。此参数仅支持使用 webp 或 jpeg 输出格式的 gpt-image-1,默认为 100
0 <= x <= 100输出图片格式。GPT Image 2.5 当前平台接入支持 png 或 jpeg,暂不支持 webp
png, jpeg, webp 要生成的部分图像数量。此参数用于返回部分图像的流式响应。值必须在 0 到 3 之间。当设置为 0 时,响应将是在一个流式事件中发送的单个图像。注意,如果完整图像生成得更快,最终图像可能会在生成完整数量的部分图像之前发送
0 <= x <= 3图像质量。GPT Image 2.5 支持 auto、low、medium、high、xhigh 和 max;dall-e-2 仅支持 standard
auto, max, xhigh, high, medium, low, standard 平台响应格式。b64_json 直接返回图片 Base64;url 会由平台转存图片并返回签名 URL
url, b64_json 生成图像的尺寸。gpt-image-1 必须是 1024x1024、1536x1024(横向)、1024x1536(纵向)或 auto(默认值)之一。dall-e-2 必须是 256x256、512x512 或 1024x1024 之一
1024x1024, 1536x1024, 1024x1536, auto, 256x256, 512x512 以流式模式编辑图像。默认为 false。有关更多信息,请参阅图像生成指南
代表您的最终用户的唯一标识符,可以帮助 OpenAI 监控和检测滥用
Response
图像编辑成功
图像创建时的 Unix 时间戳(以秒为单位)
1677649963
生成的图像列表
Show child attributes
Show child attributes
OpenAI 兼容保留字段,上游可能回传实际背景设置。当前 Azure / QNAIGC GPT Image 2.5 适配器不返回
transparent, opaque, auto OpenAI 兼容保留字段,上游可能回传实际图片格式。当前 Azure / QNAIGC GPT Image 2.5 适配器不返回
png, webp, jpeg OpenAI 兼容保留字段,上游可能回传实际质量档位。当前 Azure / QNAIGC GPT Image 2.5 适配器不返回
low, medium, high, xhigh, max, auto OpenAI 兼容保留字段,上游可能回传实际图片尺寸,例如 1024x1024。当前 Azure / QNAIGC GPT Image 2.5 适配器不返回
GPT Image 模型的 token 使用信息。仅在上游提供 usage 时出现
Show child attributes
Show child attributes
平台扩展字段,本次成功生成的图片张数。它不是 token,不应加到 total_tokens
x >= 0平台扩展字段,R1 分辨率计费档位的图片张数;仅部分按张或档位计费的模型返回
x >= 0平台扩展字段,R2 分辨率计费档位的图片张数;仅部分按张或档位计费的模型返回
x >= 0
