编辑图像
POST
/v1/images/edits根据提示词和源图像编辑图像
根据原始图像和提示词创建编辑或扩展的图像。需要 multipart/form-data 内容类型。
这个端点沿用 OpenAI 的 multipart 图像编辑契约,需要使用支持编辑的 OpenAI 图像模型。AnyPath 上的其他图像模型通过
POST /v1/images/generations提供;你的 API Key 当前可用的模型以GET /v1/models为准。
请求体
参数 image
要编辑的图像。格式、大小和尺寸要求取决于所选模型。
参数 prompt
描述所需编辑的文本。
参数 mask
附加的蒙版图像,其完全透明区域指示编辑位置,仅部分模型支持。
参数 model
用于编辑的模型。请使用支持编辑的 OpenAI 图像模型,例如 gpt-image-1.5;当前可用列表以 GET /v1/models 为准。
参数 n
要生成的图像数量。必须在 1 到 10 之间。
参数 size
生成图像的尺寸。可选值取决于所选模型(例如 1024x1024)。
参数 response_format
返回生成图像的格式。必须是 url 或 b64_json。
参数 user
代表终端用户的唯一标识符,用于滥用监控。
响应
响应字段 created
图像创建时间的 Unix 时间戳。
响应字段 data
生成的图像数组。
每个对象包含:
url(string): 编辑后图像的 URL(如果 response_format 是url)b64_json(string): Base64 编码的图像(如果 response_format 是b64_json)
请求示例
curl -X POST "https://api.anypath.dev/v1/images/edits" \
-H "Authorization: Bearer sk-your-api-key" \
-F "model=gpt-image-1.5" \
-F "image=@sunlit_lounge.png" \
-F "mask=@mask.png" \
-F "prompt=阳光明媚的室内休息区,带有游泳池" \
-F "n=1" \
-F "size=1024x1024"
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.anypath.dev/v1"
)
response = client.images.edit(
model="gpt-image-1.5",
image=open("sunlit_lounge.png", "rb"),
mask=open("mask.png", "rb"),
prompt="阳光明媚的室内休息区,带有游泳池",
n=1,
size="1024x1024"
)
print(response.data[0].url)
import OpenAI from 'openai';
import fs from 'fs';
const client = new OpenAI({
apiKey: 'sk-your-api-key',
baseURL: 'https://api.anypath.dev/v1'
});
const response = await client.images.edit({
model: 'gpt-image-1.5',
image: fs.createReadStream('sunlit_lounge.png'),
mask: fs.createReadStream('mask.png'),
prompt: '阳光明媚的室内休息区,带有游泳池',
n: 1,
size: '1024x1024'
});
console.log(response.data[0].url);
package main
import (
"bytes"
"fmt"
"io"
"mime/multipart"
"net/http"
"os"
)
func main() {
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
image, _ := os.Open("sunlit_lounge.png")
defer image.Close()
part, _ := writer.CreateFormFile("image", "sunlit_lounge.png")
io.Copy(part, image)
mask, _ := os.Open("mask.png")
defer mask.Close()
maskPart, _ := writer.CreateFormFile("mask", "mask.png")
io.Copy(maskPart, mask)
writer.WriteField("prompt", "阳光明媚的室内休息区,带有游泳池")
writer.WriteField("n", "1")
writer.WriteField("size", "1024x1024")
writer.Close()
req, _ := http.NewRequest("POST", "https://api.anypath.dev/v1/images/edits", body)
req.Header.Set("Authorization", "Bearer sk-your-api-key")
req.Header.Set("Content-Type", writer.FormDataContentType())
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
result, _ := io.ReadAll(resp.Body)
fmt.Println(string(result))
}
<?php
$ch = curl_init('https://api.anypath.dev/v1/images/edits');
$image = new CURLFile('sunlit_lounge.png', 'image/png', 'sunlit_lounge.png');
$mask = new CURLFile('mask.png', 'image/png', 'mask.png');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer sk-your-api-key'
],
CURLOPT_POSTFIELDS => [
'image' => $image,
'mask' => $mask,
'prompt' => '阳光明媚的室内休息区,带有游泳池',
'n' => 1,
'size' => '1024x1024'
]
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
echo $data['data'][0]['url'];
响应示例
{
"created": 1706000000,
"data": [
{
"url": "https://..."
}
]
}
注意事项
图像编辑需要使用支持编辑的 OpenAI 图像模型,例如
gpt-image-1.5。根据模型不同,可以用源图像的透明区域标记编辑位置,也可以提供单独的蒙版图像。