生成图像
POST
/v1/images/generations/
根据提示词生成图像。请求格式与网关文档中的原生 OpenAI 图像接口一致,参数是否可用及默认值取决于所选模型和上游渠道。
请求参数
请求头
Authorization
使用 Bearer Token 认证。
格式: Authorization: Bearer sk-xxxxxx
请求体
请求体参数(10 个)
| 参数 | 类型 | 默认值 | 说明 | 是否必填 |
|---|---|---|---|---|
model | string | 未声明 | 用于图像生成的模型。常见值为 dall-e-2、dall-e-3 或 gpt-image-1;使用模型专属参数时请显式传入。 | 否 |
prompt | string | — | 所需图像的文本描述。不同模型的最大长度不同,具体限制以模型为准。 | 是 |
n | integer | 未声明 | 要生成的图像数量,必须介于 1 到 10;dall-e-3 只支持 n=1。 | 否 |
size | string | 未声明 | 生成图像的尺寸;可用取值取决于模型。 | 否 |
background | string | 未声明 | 仅 gpt-image-1 支持;可选 transparent、opaque 或 auto。 | 否 |
moderation | string | 未声明 | 控制 gpt-image-1 的内容审核级别,可选 low 或 auto。 | 否 |
quality | string | 未声明 | 生成图像的质量,具体取值由模型决定。 | 否 |
stream | string | 未声明 | 流式输出选项,只有支持图像流式输出的模型或渠道才可使用。 | 否 |
style | string | 未声明 | 图像风格,具体取值由模型决定。 | 否 |
user | string | 未声明 | 最终用户的唯一标识符。 | 否 |
JSON 请求体示例
查看 JSON 请求体示例
{
"model": "gpt-image-1",
"prompt": "一只戴眼镜的猫坐在窗边,柔和的晨光,写实风格",
"n": 1,
"size": "1024x1024",
"background": "opaque",
"moderation": "auto",
"quality": "high",
"stream": false,
"user": "user_123"
}
请求示例代码
curl -X POST "https://10000router.com/v1/images/generations/" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "gpt-image-1",
"prompt": "一只戴眼镜的猫坐在窗边,柔和的晨光,写实风格",
"size": "1024x1024",
"quality": "high",
"background": "opaque"
}'
const response = await fetch("https://10000router.com/v1/images/generations/", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.API_KEY,
},
body: JSON.stringify({
model: "gpt-image-1",
prompt: "一只戴眼镜的猫坐在窗边,柔和的晨光,写实风格",
size: "1024x1024",
quality: "high",
background: "opaque"
})
});
const imageResponse = await response.json();
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["API_KEY"], base_url="https://10000router.com/v1")
response = client.post(
"https://10000router.com/v1/images/generations/",
headers={
"Authorization": "Bearer " + os.environ["API_KEY"],
},
json={
"model": "gpt-image-1",
"prompt": "一只戴眼镜的猫坐在窗边,柔和的晨光,写实风格",
"size": "1024x1024",
"quality": "high",
"background": "opaque",
},
)
response.raise_for_status()
print(response)
payload := `{"model":"gpt-image-1","prompt":"一只戴眼镜的猫坐在窗边,柔和的晨光,写实风格","size":"1024x1024","quality":"high","background":"opaque"}`
req, _ := http.NewRequest("POST", "https://10000router.com/v1/images/generations/", strings.NewReader(payload))
req.Header.Set("Authorization", "Bearer "+os.Getenv("API_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil { log.Fatal(err) }
defer res.Body.Close()
var payload = "{\"model\":\"gpt-image-1\",\"prompt\":\"一只戴眼镜的猫坐在窗边,柔和的晨光,写实风格\",\"size\":\"1024x1024\",\"quality\":\"high\",\"background\":\"opaque\"}";
var request = java.net.http.HttpRequest.newBuilder(java.net.URI.create("https://10000router.com/v1/images/generations/"))
.header("Authorization", "Bearer " + System.getenv("API_KEY"))
.POST(java.net.http.HttpRequest.BodyPublishers.ofString(payload)).build();
var response = java.net.http.HttpClient.newHttpClient().send(request, java.net.http.HttpResponse.BodyHandlers.ofString());
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new("Bearer", Environment.GetEnvironmentVariable("API_KEY"));
var payload = new { model = "gpt-image-1", prompt = "一只戴眼镜的猫坐在窗边,柔和的晨光,写实风格", size = "1024x1024", quality = "high", background = "opaque" };
var response = await client.PostAsJsonAsync("https://10000router.com/v1/images/generations/", payload);
Console.WriteLine(await response.Content.ReadAsStringAsync());
返回响应
响应示例
{
"created": 1710000000,
"data": [
{
"url": "https://example.com/generated-image.png",
"revised_prompt": "一只戴眼镜的猫坐在窗边,柔和的晨光,写实风格"
}
],
"usage": {
"total_tokens": 1024,
"input_tokens": 128,
"output_tokens": 896,
"input_tokens_details": {
"text_tokens": 128,
"image_tokens": 0
}
}
}
{
"error": {
"message": "Invalid value for parameter: quality",
"type": "invalid_request_error",
"param": "quality",
"code": null
}
}
{
"error": {
"message": "Rate limit reached",
"type": "rate_limit_exceeded",
"param": null,
"code": null
}
}
{
"error": {
"message": "Invalid authentication credentials",
"type": "invalid_request_error",
"param": null,
"code": null
}
}
返回字段参数
顶层字段(3 个)
| 字段 | 类型 | 说明 |
|---|---|---|
created | integer | 响应创建时间,Unix 时间戳(秒)。 |
data | array<object> | 生成的图像数组,数量由请求参数 n 决定。 |
usage | object | gpt-image-1 等模型可能返回的 token 用量;部分模型或渠道不返回。 |
data[] 字段(3 个)
| 字段 | 类型 | 说明 |
|---|---|---|
url | string | 生成图像的临时 URL。URL 的有效期由上游决定。 |
b64_json | string | Base64 编码的图像数据;仅在模型/渠道返回该格式时出现。 |
revised_prompt | string | 上游改写后的提示词;部分模型不返回。 |
流式响应
请求设置 stream: true 且模型/渠道支持时,响应为 Server-Sent Events。网关会转发图像事件,常见事件类型为 image_generation.completed,最后以 data: [DONE] 结束;不支持流式输出时请使用 stream: false。