文生图 (image generate)
七牛云 AI 大模型推理 API 支持文生图(Text-to-Image)功能,兼容 OpenAI Images API 接口格式,支持多种主流图像生成模型,方便您集成到各种业务和应用场景中。
Token API 接入点
🚀
七牛云 AI 大模型推理 API 提供两个接入域名:
- 主接入点:
https://openai.qiniu.com/v1 - 备接入点:
https://api.qnaigc.com/v1 - 使用前提:获取 API KEY(API 密钥)
支持接口列表
| 接口名 | 说明 |
|---|---|
| /images/generations | 文生图接口,根据文本描述生成图像,支持多种图像生成模型 支持模型:Gemini 2.5 Flash Image(又称 Nano Banana)等 输出格式:Base64 编码的图像数据(PNG 格式) |
支持的模型列表
| 模型 ID | 模型名称 | 说明 | 状态 |
|---|---|---|---|
| gemini-2.5-flash-image | Gemini 2.5 Flash Image (Nano Banana) | 又称 Nano Banana,谷歌最新的快速文生图模型,支持高质量图像生成 | ✅已推出 |
| kling-* | 可灵系列 | 快手可灵文生图模型系列,支持高质量的中文提示词图像生成 | 🚀即将推出 |
HTTP 调用示例
基础图像生成
使用上一步获取的七牛云 API KEY 调用文生图接口:
# 调用文生图 API
export OPENAI_BASE_URL="https://openai.qiniu.com/v1"
export OPENAI_API_KEY="<七牛云 AI API KEY>"
curl "$OPENAI_BASE_URL/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gemini-2.5-flash-image",
"prompt": "一只可爱的橘猫坐在窗台上看着夕阳,照片风格,高清画质"
}'
生成多张高质量图像
# 生成多张图像
export OPENAI_BASE_URL="https://openai.qiniu.com/v1"
export OPENAI_API_KEY="<七牛云 AI API KEY>"
curl "$OPENAI_BASE_URL/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gemini-2.5-flash-image",
"prompt": "主题是未来城市的天际线,霓虹灯光,赛博朋克风格",
"n": 6,
"size": "1536x672"
}'
使用采样参数控制生成
# 使用高级参数控制图像生成
export OPENAI_BASE_URL="https://openai.qiniu.com/v1"
export OPENAI_API_KEY="<七牛云 AI API KEY>"
curl "$OPENAI_BASE_URL/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gemini-2.5-flash-image",
"prompt": "梦幻森林中的精灵小屋,魔法光芒环绕",
"temperature": 0.8,
"top_p": 0.95
}'
请求参数说明
Header 参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Authorization | string | 是 | API Key,格式:Bearer YOUR_API_KEY |
| Content-Type | string | 是 | 请求内容类型,固定值:application/json |
Body 参数(JSON)
| 参数名 | 类型 | 必填 | 默认值 | 说明 | 模型支持 |
|---|---|---|---|---|---|
| model | string | 是 | - | 图像生成模型名称,如 gemini-2.5-flash-image |
- |
| prompt | string | 是 | - | 图像生成的文本描述提示词 | - |
| n | integer | 否 | 1 | 生成图像数量,取值范围:1-10 | - |
| size | string | 否 | - | 图像尺寸,格式:宽x高,支持以下尺寸:1024x1024、1536x1024、1792x1024、1024x1536、1024x1792、1344x768、768x1344、1248x832、832x1248、1184x864、864x1184、1152x896、896x1152、1536x672 |
- |
| quality | string | 否 | - | 图像质量,可选值:standard(标准质量)、hd(高清质量) |
暂不支持 |
| style | string | 否 | - | 图像风格,可选值:vivid(鲜艳生动)、natural(自然真实) |
暂不支持 |
| temperature | float | 否 | - | 生成温度,取值范围:0.0-2.0,控制生成的随机性 | - |
| top_p | float | 否 | - | 核采样参数,取值范围:0.0-1.0 | - |
| top_k | integer | 否 | - | Top-K 采样参数,最小值:1 | - |
参数详细说明
model
- 必填参数
- 指定使用的图像生成模型
- 不同模型支持的参数和功能可能有所不同
- 示例:
gemini-2.5-flash-image
prompt
- 必填参数
- 图像生成的文本描述提示词
- 建议:提示词越详细、具体,生成的图像质量越好
- 建议包含风格、光线、构图、色彩等细节
- 使用逗号分隔不同的描述要素
- 示例:
"一只橘色的猫,坐在窗台上,温暖的阳光,柔和的阴影,专业摄影,高清画质,4K 分辨率"
n
- 可选参数,默认值为 1
- 控制一次请求生成的图像数量
- 取值范围:1-10
- 注意:生成多张图片会消耗更多 tokens
size
- 可选参数
- 指定生成图像的尺寸,格式为
宽x高 - 支持以下尺寸规格:
- 正方形:
1024x1024 - 横向:
1536x1024、1792x1024、1344x768、1248x832、1184x864、1152x896、1536x672 - 纵向:
1024x1536、1024x1792、768x1344、832x1248、864x1184、896x1152
- 正方形:
- 具体支持的尺寸取决于所选模型
quality
- 可选参数
- 控制图像生成质量
- 可选值:
standard:标准质量hd:高清质量
style
- 可选参数
- 控制图像风格
- 可选值:
vivid:鲜艳、生动的风格natural:自然、真实的风格
temperature
- 可选参数
- 控制生成的随机性和创意性
- 取值范围:0.0-2.0
- 较低的值(如 0.2)使输出更确定和一致
- 较高的值(如 1.0)使输出更随机和创意
top_p
- 可选参数
- 核采样参数,用于控制生成的多样性
- 取值范围:0.0-1.0
- 较低的值会使生成更集中于高概率选项
- 注意:不建议同时修改 temperature 和 top_p
top_k
- 可选参数
- Top-K 采样参数
- 限制每步采样时考虑的候选项数量
响应格式
成功响应
{
"created": 1234567890,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUgA..."
},
{
"b64_json": "iVBORw0KGgoAAAANSUhEUgB..."
}
],
"size": "1024x1024",
"quality": "hd",
"output_format": "png",
"usage": {
"total_tokens": 5234,
"input_tokens": 234,
"output_tokens": 5000,
"input_tokens_details": {
"text_tokens": 234,
"image_tokens": 0
}
}
}
响应参数说明
| 字段名 | 类型 | 说明 |
|---|---|---|
| created | integer | 响应创建时间戳(Unix 时间戳,秒) |
| data | array | 生成的图像数据数组 |
| data[].b64_json | string | Base64 编码的图像数据 |
| size | string | 图像尺寸(若请求中指定则返回) |
| quality | string | 图像质量(若请求中指定则返回) |
| output_format | string | 输出格式,默认为 png |
| usage | object | Token 使用统计信息 |
| usage.total_tokens | integer | 总 token 数 |
| usage.input_tokens | integer | 输入 token 数 |
| usage.output_tokens | integer | 输出 token 数(图像生成消耗) |
| usage.input_tokens_details | object | 输入 token 详情(若有) |
| usage.input_tokens_details.text_tokens | integer | 文本 token 数 |
| usage.input_tokens_details.image_tokens | integer | 图像 token 数 |
如何使用返回的图像数据?
响应中的 b64_json 字段包含 Base64 编码的图像数据,可通过以下方式使用:
1. 在 HTML 中直接显示
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA..." />
2. 使用命令行工具保存图像
# 使用 jq 和 base64 命令提取并保存图像
curl "$OPENAI_BASE_URL/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gemini-2.5-flash-image",
"prompt": "一只可爱的橘猫"
}' | jq -r '.data[0].b64_json' | base64 -d > generated_image.png
常见问题
Q: 如何将生成的图像保存到七牛云对象存储?
A: 推荐使用七牛对象存储来存储生成的图像。我们提供了多种语言的上传 SDK,简单易用,欢迎查看我们的【SDK 中心】来了解。更多对象存储信息欢迎参考对象存储的【产品使用文档】。
参考文档
文档反馈
(如有产品使用问题,请 提交工单)