跳转到内容
返回主站

Images

根据文本提示生成图像,支持指定数量、尺寸等参数。兼容 OpenAI DALL·E 接口格式。

Endpoint

POST /v1/images/generations

Method

POST

Authentication

需要 Bearer Token 认证:

Authorization: Bearer $API_KEY

Request Headers

Header是否必需说明
Authorization是Bearer <API_KEY>
Content-Type是application/json

Request Body

参数类型是否必需说明
modelstring否图像模型标识,如 dall-e-3、dall-e-2
promptstring是图像描述提示词
ninteger否生成图像数量,默认 1。dall-e-3 仅支持 1
sizestring否图像尺寸:256x256、512x512、1024x1024、1792x1024、1024x1792,默认 1024x1024
qualitystring否图像质量:standard(默认)、hd(仅 dall-e-3)
response_formatstring否返回格式:url(默认)或 b64_json
stylestring否图像风格:vivid(默认)、natural(仅 dall-e-3)

请求示例

{
"model": "dall-e-3",
"prompt": "一只在赛博朋克城市中飞行的猫,霓虹灯光,高清",
"n": 1,
"size": "1024x1024"
}

Response

{
"created": 1699999999,
"data": [
{
"url": "https://example.com/images/generated-image.png"
}
]
}

当 response_format 设置为 b64_json 时:

{
"created": 1699999999,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUgAA..."
}
]
}

响应字段说明

字段类型说明
createdinteger响应创建时间(Unix 时间戳)
dataarray生成的图像数据数组

data 数组

字段类型说明
urlstring图像 URL(response_format 为 url 时返回)
b64_jsonstring图像 Base64 编码数据(response_format 为 b64_json 时返回)

错误码

状态码说明
400请求参数错误,如提示词为空或内容不合规
401API Key 无效或缺失
403无权限访问该模型
404模型不存在
429请求频率超限
500服务器内部错误

详见 Errors。

代码示例

import { Tabs, TabItem } from ‘@astrojs/starlight/components’;

Terminal window
curl "$BASE_URL/v1/images/generations" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dall-e-3",
"prompt": "一只在赛博朋克城市中飞行的猫,霓虹灯光,高清",
"n": 1,
"size": "1024x1024"
}'
import os
import requests
base_url = os.environ.get("BASE_URL")
api_key = os.environ.get("API_KEY")
response = requests.post(
f"{base_url}/v1/images/generations",
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
},
json={
"model": "dall-e-3",
"prompt": "一只在赛博朋克城市中飞行的猫,霓虹灯光,高清",
"n": 1,
"size": "1024x1024",
},
)
result = response.json()
print(result["data"][0]["url"])
const baseURL = process.env.BASE_URL;
const apiKey = process.env.API_KEY;
const response = await fetch(`${baseURL}/v1/images/generations`, {
method: "POST",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "dall-e-3",
prompt: "一只在赛博朋克城市中飞行的猫,霓虹灯光,高清",
n: 1,
size: "1024x1024",
}),
});
const result = await response.json();
console.log(result.data[0].url);
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
func main() {
baseURL := os.Getenv("BASE_URL")
apiKey := os.Getenv("API_KEY")
payload, _ := json.Marshal(map[string]interface{}{
"model": "dall-e-3",
"prompt": "一只在赛博朋克城市中飞行的猫,霓虹灯光,高清",
"n": 1,
"size": "1024x1024",
})
req, _ := http.NewRequest("POST", baseURL+"/v1/images/generations", bytes.NewReader(payload))
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result struct {
Data []struct {
URL string `json:"url"`
} `json:"data"`
}
json.Unmarshal(body, &result)
fmt.Println(result.Data[0].URL)
}