在调用图像生成接口执行图生图操作前,您需要先通过本接口将图片上传至 即刻API,获取可供生成接口使用的图片 URL。上传一次后,URL 可在多个生成请求中复用,无需重复传输原始图片数据。
重要变更:图像生成接口不再支持直接传入 base64 图片数据,必须先通过此接口上传获取 URL,再将 URL 传入生成接口的 image_urls 字段。
接口端点
POST https://geekapis.com/v1/uploads/images
请求格式:multipart/form-data
请求参数
待上传的图片文件。支持格式:JPEG、PNG、WebP、GIF;最大文件大小:10MB。
上传用途,可选参数。默认值为 generation,表示用于图像生成任务。
响应示例
{
"success": true,
"data": {
"id": "upload_abc12345",
"url": "https://files.toapis.com/uploads/abc12345.jpg",
"mime_type": "image/jpeg",
"size": 89234
}
}
响应字段
图片的公开访问 URL,可直接传入图像生成接口的 image_urls 字段使用。
图片的 MIME 类型,例如 image/jpeg。
完整工作流示例
以下示例演示完整的图生图工作流:上传图片 → 创建生成任务 → 轮询获取结果。
Python 示例
import requests
import time
api_key = "sk-xxxxxxxx"
base_url = "https://geekapis.com"
headers = {"Authorization": f"Bearer {api_key}"}
# 步骤 1:上传图片
with open("input.jpg", "rb") as f:
upload_resp = requests.post(
f"{base_url}/v1/uploads/images",
headers=headers,
files={"file": ("input.jpg", f, "image/jpeg")}
)
image_url = upload_resp.json()["data"]["url"]
# 步骤 2:创建图像生成任务
gen_resp = requests.post(
f"{base_url}/v1/images/generations",
headers={**headers, "Content-Type": "application/json"},
json={
"model": "gpt-image-2",
"prompt": "将图片转为油画风格",
"image_urls": [image_url]
}
)
task_id = gen_resp.json()["id"]
# 步骤 3:轮询结果
time.sleep(2)
for _ in range(40):
result = requests.get(
f"{base_url}/v1/images/generations/{task_id}",
headers=headers
).json()
if result["status"] == "completed":
print("图片 URL:", result["result"]["data"][0]["url"])
break
elif result["status"] == "failed":
print("生成失败:", result["error"]["message"])
break
time.sleep(3)
cURL 示例
curl --request POST \
--url 'https://geekapis.com/v1/uploads/images' \
--header 'Authorization: Bearer <token>' \
--form 'file=@/path/to/image.jpg'
支持的图片格式
| 格式 | MIME 类型 | 最大文件大小 |
|---|
| JPEG | image/jpeg | 10MB |
| PNG | image/png | 10MB |
| WebP | image/webp | 10MB |
| GIF | image/gif | 10MB |