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 image.0='@example-file' \
--form image.1.items='@example-file' \
--form mask='@example-file'import requests
url = "https://model-api.skyengine.com.cn/v1/images/edits"
files = {
"image.0": ("example-file", open("example-file", "rb")),
"image.1.items": ("example-file", open("example-file", "rb")),
"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('image.0', '{
"fileName": "example-file"
}');
form.append('image.1.items', '{
"fileName": "example-file"
}');
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=\"image.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image.1.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\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=\"image.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image.1.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\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=\"image.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image.1.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\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,
"background": "auto",
"output_format": "png",
"quality": "high",
"size": "1024x1024",
"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": 1,
"total_tokens": 19
}
}{
"error": {
"code": 123,
"message": "<string>",
"details": [
{}
]
}
}/v1/images/edits
通过上传图像和描述所需更改的提示来创建编辑图像或扩展图像。要求图像必须是有效的PNG文件,小于4MB,并且是正方形。如果mask未提供,图像必须具有透明度,将被用作mask。
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 image.0='@example-file' \
--form image.1.items='@example-file' \
--form mask='@example-file'import requests
url = "https://model-api.skyengine.com.cn/v1/images/edits"
files = {
"image.0": ("example-file", open("example-file", "rb")),
"image.1.items": ("example-file", open("example-file", "rb")),
"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('image.0', '{
"fileName": "example-file"
}');
form.append('image.1.items', '{
"fileName": "example-file"
}');
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=\"image.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image.1.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\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=\"image.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image.1.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\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=\"image.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image.1.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\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,
"background": "auto",
"output_format": "png",
"quality": "high",
"size": "1024x1024",
"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": 1,
"total_tokens": 19
}
}{
"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-1。必须是 transparent、opaque 或 auto(默认值)之一。当使用 auto 时,模型将自动确定图像的最佳背景。如果是 transparent,输出格式需要支持透明度,因此应设置为 png(默认值)或 webp
transparent, opaque, auto 控制模型匹配输入图像的风格和特征(特别是面部特征)的努力程度。此参数仅支持 gpt-image-1。gpt-image-1-mini 不支持。支持 high 和 low,默认为 low
high, low 一个额外的图像,其完全透明的区域(例如 alpha 为零的地方)指示应该编辑图像的位置。如果提供了多个图像,mask 将应用于第一个图像。必须是有效的 PNG 文件,小于 4MB,并且与图像具有相同的尺寸
用于图像生成的模型。仅支持 dall-e-2 和 gpt-image-1。默认为 dall-e-2,除非使用特定于 gpt-image-1 的参数
dall-e-2, gpt-image-1 要生成的图像数量。必须在 1 到 10 之间
1 <= x <= 10生成图像的压缩级别(0-100%)。此参数仅支持使用 webp 或 jpeg 输出格式的 gpt-image-1,默认为 100
0 <= x <= 100生成图像返回的格式。此参数仅支持 gpt-image-1。必须是 png、jpeg 或 webp 之一。默认值为 png
png, jpeg, webp 要生成的部分图像数量。此参数用于返回部分图像的流式响应。值必须在 0 到 3 之间。当设置为 0 时,响应将是在一个流式事件中发送的单个图像。注意,如果完整图像生成得更快,最终图像可能会在生成完整数量的部分图像之前发送
0 <= x <= 3将要生成的图像质量。gpt-image-1 仅支持 high、medium 和 low。dall-e-2 仅支持 standard 质量。默认为 auto
auto, high, medium, low, standard 生成图像的返回格式。必须是 url 或 b64_json 之一。URL 仅在生成图像后的 60 分钟内有效。此参数仅支持 dall-e-2,因为 gpt-image-1 始终返回 base64 编码的图像
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
用于图像生成的背景参数。transparent 或 opaque
transparent, opaque 图像生成的输出格式。png、webp 或 jpeg
png, webp, jpeg 生成图像的质量。low、medium 或 high
low, medium, high 生成图像的尺寸。1024x1024、1024x1536 或 1536x1024
1024x1024, 1024x1536, 1536x1024 仅适用于 gpt-image-1,图像生成的 token 使用信息
Show child attributes
Show child attributes

