专用生图接口 (DALL-E 格式)
本文档详细说明了如何调用专用的图像生成接口 /v1/images/generations。该接口遵循 OpenAI DALL-E 的标准格式,为您提供稳定、直接的文生图能力。
接口定义
与复用聊天接口的方式不同,这是一个专门为图像生成设计的独立端点。
- 路径:
/v1/images/generations - 方法:
POST - 认证:
Bearer Token
请求说明
认证方式与通用聊天接口完全一致,请在 HTTP Header 中包含 Authorization 字段。
Header 示例:
Authorization: Bearer YOUR_API_KEYBody 参数 (application/json)
| 参数 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
prompt | string | 是 | 对所需图像的详细文本描述。描述越具体,生成效果越好。最大长度为 4000 个字符。 |
model | string | 是 | 指定用于图像生成的模型,例如 dall-e-3, gpt-4o-image 等。 |
n | integer | 否 | 希望一次性生成的图像数量。对于 dall-e-3 模型,此值只能为 1。默认为 1。 |
quality | string | 否 | 生成图像的质量。standard 为标准质量,hd 为高清质量,hd 模式会消耗更多额度。默认为 standard。 |
response_format | string | 否 | 返回生成图像的格式。url 表示返回一个临时的图片链接,b64_json 表示返回 Base64 编码的图像数据。默认为 url。 |
size | string | 否 | 生成图像的尺寸。支持 1024x1024, 1792x1024 或 1024x1792。默认为 1024x1024。 |
style | string | 否 | 图像的风格。vivid(生动)会使图像偏向于超现实和戏剧性,natural(自然)则会产生更逼真、自然的图像。默认为 vivid。 |
user | string | 否 | 代表最终用户的唯一标识符,用于监控和防止滥用。 |
请求 Body 示例
json
{
"model": "dall-e-3",
"prompt": "一只戴着皇冠的狮子,坐在王座上,背景是中世纪城堡,数字艺术风格",
"n": 1,
"size": "1792x1024",
"quality": "hd",
"style": "vivid"
}响应说明
成功响应 (200 OK)
成功的响应会包含一个数据列表,其中每个对象都包含了生成图像的信息。
| 参数 | 类型 | 描述 |
|---|---|---|
created | integer | 任务创建时的 Unix 时间戳。 |
data | array | 包含生成结果的数组。 |
data[].url | string | 生成的图像 URL。如果请求中 response_format 为 url,则此字段会出现。 |
data[].b64_json | string | Base64 编码的图像数据。如果请求中 response_format 为 b64_json,则此字段会出现。 |
data[].revised_prompt | string | 系统为了安全或更好的效果而优化的提示词。 |
响应 Body 示例
json
{
"created": 1725000000,
"data": [
{
"revised_prompt": "A majestic lion wearing a crown is regally seated on a throne. The backdrop is a grand medieval castle, all rendered in a digital art style.",
"url": "https://oaidalleapiprodscus.blob.core.windows.net/private/..."
}
]
}代码示例
cURL
shell
curl --location --request POST 'https://api.rainboxs.com/v1/images/generations' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "dall-e-3",
"prompt": "A majestic lion wearing a crown on a throne",
"n": 1,
"size": "1024x1024"
}'Python
python
import requests
import json
api_key = "YOUR_API_KEY"
base_url = "https://api.rainboxs.com//v1"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
data = {
"model": "dall-e-3",
"prompt": "A majestic lion wearing a crown on a throne",
"n": 1,
"size": "1024x1024",
"response_format": "url"
}
response = requests.post(f"{base_url}/images/generations", headers=headers, data=json.dumps(data))
if response.status_code == 200:
# 打印生成的图片URL
for item in response.json()['data']:
print(item['url'])
else:
print(f"Error: {response.status_code}")
print(response.text)