OpenAI 的图片编辑服务使用户能够输入任意数量的图片和指令,并返回修改后的图片。这一功能极大地丰富了图像处理和创意设计的可能性,适用于电商、市场营销、社交媒体内容创作等多个场景。
本文将详细介绍 OpenAI 图片编辑 API 的使用流程,帮助开发者轻松实现图像编辑功能。
应用流程
要使用 OpenAI 图片编辑 API,首先需要访问 OpenAI 图片编辑 API 页面,并点击“获取”按钮以获取请求所需的凭证:

如果您尚未登录或注册,将被自动重定向到登录页面,注册并登录后,会返回到当前页面。在首次申请时,系统会提供免费配额,允许用户免费使用 API。
基本用法
接下来,您可以使用代码进行 API 调用,下面是一个使用 CURL 的示例:
curl -s -D >(grep -i x-request-id >&2) \
-o >(jq -r '.data[0].b64_json' | base64 --decode > gift-basket.png) \
-X POST "https://api.acedata.cloud/v1/images/edits" \
-H "Authorization: Bearer {token}" \
-F "model=gpt-image-1" \
-F "image[]=@test.png" \
-F 'prompt=Create a lovely gift basket with these items in it'
在首次使用此接口时,您需要填写至少四个参数:authorization(直接从下拉列表中选择)、model(选择使用的模型,当前主要有 gpt-image-1)、prompt(生成图像的输入提示),以及 image(需要编辑的图片路径),如下面的图片所示:

以下是一个 Python 的调用示例:
import base64
from openai import OpenAI
client = OpenAI()
prompt = """
Generate a photorealistic image of a gift basket on a white background
labeled 'Relax & Unwind' with a ribbon and handwriting-like font,
containing all the items in the reference pictures.
"""
result = client.images.edit(
model="gpt-image-1",
image=[
open("test.png", "rb")
],
prompt=prompt
)
image_base64 = result.data[0].b64_json
image_bytes = base64.b64decode(image_base64)
# 保存图片到文件
with open("gift-basket.png", "wb") as f:
f.write(image_bytes)
在使用 Python 时,需要设置两个环境变量:OPENAI_BASE_URL,可设置为 https://api.acedata.cloud/openai,以及凭证的 OPENAI_API_KEY,该值从 authorization 获取。在 macOS 上,您可以使用以下命令设置环境变量:
export OPENAI_BASE_URL=https://api.acedata.cloud/openai
export OPENAI_API_KEY={token}
调用后,您会在当前目录下生成名为 gift-basket.png 的图片,具体结果如下:

至此,我们完成了图像编辑操作。目前,官方的编辑任务仅支持两种模型:dall-e-2 和 gpt-image-1。
异步回调
由于 OpenAI 图片编辑 API 的处理时间可能较长,若 API 长时间未响应,HTTP 请求将保持连接,消耗额外的系统资源。因此,该 API 也支持异步回调。
整体流程为:当客户端发起请求时,需要额外指定一个 callback_url 字段。在客户端发起 API 请求后,API 会立即返回一个包含 task_id 字段的结果,表示当前任务 ID。当任务完成后,编辑后的图片结果将以 POST JSON 格式发送到客户端指定的 callback_url,其中也包含 task_id 字段,以便通过 ID 进行结果关联。
具体操作示例如下:
首先,Webhook 回调是一个可以接收 HTTP 请求的服务,开发者应将其替换为自己的 HTTP 服务器 URL。为了方便起见,我们使用公共 Webhook 示例网站 webhook.site/;打开该网站会给您一个 Webhook URL,如下图所示:

复制该网址,可以用作 Webhook。示例网址为 https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab。
接下来,我们可以将 callback_url 字段设置为上述 Webhook URL,并填入相应参数,代码如下:
curl -X POST "https://api.acedata.cloud/v1/images/edits" \
-H "Authorization: Bearer {token}" \
-F "model=gpt-image-1" \
-F "image[]=@test.png" \
-F "prompt=Create a lovely gift basket with these items in it" \
-F "callback_url=https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab"
调用后,您会立即收到以下结果:
{
"task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c"
}
稍等片刻,您可以在 Webhook URL 处查看编辑后的图片结果,内容如下:
{
"success": true,
"task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c",
"trace_id": "9b4b1ff3-90f2-470f-b082-1061ec2948cc",
"data": {
"created": 1721626477,
"data": [
{
"b64_json": "iVBORw0KGgo..."
}
]
}
}
可以看到,结果包含 task_id 字段,data 字段包含与同步调用相同的图像编辑结果,允许通过 task_id 字段进行任务关联。
错误处理
在调用 API 时,如果发生错误,API 会返回相应的错误代码和信息。例如:
400 token_mismatched: 错误请求,可能由于缺少或无效参数。400 api_not_implemented: 错误请求,可能由于缺少或无效参数。401 invalid_token: 未授权,令牌无效或缺失。429 too_many_requests: 请求过多,超出了速率限制。500 api_error: 内部服务器错误,服务器出现问题。
错误响应示例
{
"success": false,
"error": {
"code": "api_error",
"message": "fetch failed"
},
"trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
总结
通过本文,您已经了解如何轻松使用 OpenAI 图片编辑 API 的官方图像编辑功能。希望本文能帮助您更好地集成和使用该 API。如果您有任何疑问,请随时与我们的技术支持团队联系。
OpenAI API 文档 | Ace Data Cloud | 开发者平台
技术标签:#OpenAI #API #图像处理 #Python #异步编程