图像生成 API
概述
AxonHub 通过 OpenAI 兼容的 /v1/images/generations 端点支持图像生成功能。
注意:图像生成目前不支持流式传输。
API 使用
要生成图像,请向 /v1/images/generations 端点发送请求。
示例
import requests
import json
url = "https://your-axonhub-instance/v1/images/generations"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
payload = {
"model": "gpt-image-1",
"prompt": "Generate a beautiful sunset over mountains",
"size": "1024x1024",
"quality": "high",
"n": 1
}
response = requests.post(url, headers=headers, json=payload)
result = response.json()
# 访问生成的图像
for image in result.get("data", []):
if "b64_json" in image:
print(f"图像 (base64): {image['b64_json'][:50]}...")
if "url" in image:
print(f"图像 URL: {image['url']}")
if "revised_prompt" in image:
print(f"优化后的提示词: {image['revised_prompt']}")
const response = await fetch("https://your-axonhub-instance/v1/images/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-image-1",
prompt: "Generate a beautiful sunset over mountains",
size: "1024x1024",
quality: "high",
n: 1,
}),
});
const result = await response.json();
// 访问生成的图像
if (result.data) {
result.data.forEach((image, index) => {
if (image.b64_json) {
console.log(`图像 ${index + 1} (base64): ${image.b64_json.substring(0, 50)}...`);
}
if (image.url) {
console.log(`图像 ${index + 1} URL: ${image.url}`);
}
if (image.revised_prompt) {
console.log(`优化后的提示词: ${image.revised_prompt}`);
}
});
}
响应格式
{
"created": 1699000000,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUgAA...",
"url": "https://...",
"revised_prompt": "A beautiful sunset over mountains with orange and purple sky"
}
]
}
请求参数
| 参数 | 类型 | 描述 | 默认值 |
|---|---|---|---|
prompt |
string | 必填。 所需图像的文本描述。 | - |
model |
string | 用于图像生成的模型。 | dall-e-2 |
n |
integer | 要生成的图像数量。 | 1 |
quality |
string | 图像质量:"standard"、"hd"、"high"、"medium"、"low" 或 "auto"。 |
"auto" |
response_format |
string | 返回图像的格式:"url" 或 "b64_json"。 |
"b64_json" |
size |
string | 生成图像的尺寸:"256x256"、"512x512" 或 "1024x1024"。 |
"1024x1024" |
style |
string | 生成图像的风格(仅 DALL-E 3):"vivid" 或 "natural"。 |
- |
user |
string | 代表最终用户的唯一标识符。 | - |
background |
string | 背景样式:"opaque" 或 "transparent"。 |
- |
output_format |
string | 图像格式:"png"、"webp" 或 "jpeg"。 |
"png" |
output_compression |
number | 压缩级别 (0-100%)。 | 100 |
moderation |
string | 内容审核级别:"low" 或 "auto"。 |
- |
partial_images |
number | 要生成的部分图像数量。 | 1 |
图像编辑(局部重绘)
要编辑图像,请使用 /v1/images/edits 端点,使用 multipart/form-data 格式:
import requests
url = "https://your-axonhub-instance/v1/images/edits"
headers = {
"Authorization": f"Bearer {API_KEY}"
}
with open("image.png", "rb") as image_file, open("mask.png", "rb") as mask_file:
files = {
"image": image_file,
"mask": mask_file
}
data = {
"model": "gpt-image-1",
"prompt": "将颜色改为白色",
"size": "1024x1024",
"n": 1
}
response = requests.post(url, headers=headers, files=files, data=data)
result = response.json()
图像编辑参数
| 参数 | 类型 | 描述 | 默认值 |
|---|---|---|---|
image |
file | 必填。 要编辑的图像。 | - |
prompt |
string | 必填。 所需编辑的文本描述。 | - |
mask |
file | 可选的蒙版图像。透明区域表示要编辑的位置。 | - |
model |
string | 要使用的模型。 | dall-e-2 |
n |
integer | 要生成的图像数量。 | 1 |
size |
string | 生成图像的尺寸。 | "1024x1024" |
response_format |
string | 格式:"url" 或 "b64_json"。 |
"b64_json" |
user |
string | 最终用户的唯一标识符。 | - |
background |
string | 背景样式:"opaque" 或 "transparent"。 |
- |
output_format |
string | 图像格式:"png"、"webp" 或 "jpeg"。 |
"png" |
output_compression |
number | 压缩级别 (0-100%)。 | 100 |
input_fidelity |
string | 输入保真度级别。 | - |
partial_images |
number | 部分图像数量。 | 1 |
支持的提供商
| 提供商 | 状态 | 支持的模型 | 备注 |
|---|---|---|---|
| OpenAI | ✅ 完成 | gpt-image-1、dall-e-2、dall-e-3 等 | 不支持流式传输 |
| 字节跳动豆包 | ✅ 完成 | doubao-seed-dream-4-0 等 | 不支持流式传输 |
| OpenRouter | ✅ 完成 | gpt-image-1、gemini-2.5-flash-image-preview 等 | 不支持流式传输 |
| Gemini | ✅ 完成 | gemini-2.5-flash-image、gemini-2.0-flash-preview-image-generation 等 | 不支持流式传输 |
| ZAI | ✅ 完成 | - | 仅支持生成,不支持编辑 |