Images
根据文本提示生成图像,支持指定数量、尺寸等参数。兼容 OpenAI DALL·E 接口格式。
Endpoint
POST /v1/images/generationsMethod
POST
Authentication
需要 Bearer Token 认证:
Authorization: Bearer $API_KEYRequest Headers
| Header | 是否必需 | 说明 |
|---|---|---|
Authorization | 是 | Bearer <API_KEY> |
Content-Type | 是 | application/json |
Request Body
| 参数 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
model | string | 否 | 图像模型标识,如 dall-e-3、dall-e-2 |
prompt | string | 是 | 图像描述提示词 |
n | integer | 否 | 生成图像数量,默认 1。dall-e-3 仅支持 1 |
size | string | 否 | 图像尺寸:256x256、512x512、1024x1024、1792x1024、1024x1792,默认 1024x1024 |
quality | string | 否 | 图像质量:standard(默认)、hd(仅 dall-e-3) |
response_format | string | 否 | 返回格式:url(默认)或 b64_json |
style | string | 否 | 图像风格: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..." } ]}响应字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
created | integer | 响应创建时间(Unix 时间戳) |
data | array | 生成的图像数据数组 |
data 数组
| 字段 | 类型 | 说明 |
|---|---|---|
url | string | 图像 URL(response_format 为 url 时返回) |
b64_json | string | 图像 Base64 编码数据(response_format 为 b64_json 时返回) |
错误码
| 状态码 | 说明 |
|---|---|
| 400 | 请求参数错误,如提示词为空或内容不合规 |
| 401 | API Key 无效或缺失 |
| 403 | 无权限访问该模型 |
| 404 | 模型不存在 |
| 429 | 请求频率超限 |
| 500 | 服务器内部错误 |
详见 Errors。
代码示例
import { Tabs, TabItem } from ‘@astrojs/starlight/components’;
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 osimport 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)}