Gemini 图片生成
Gemini 图片模型来自官方 Gemini 渠道,同时支持 Gemini 原生格式和 OpenAI 聊天格式。两种格式使用同一批模型,并按 Token 计费。
调用前准备
选择 Gemini 分组
创建令牌时必须选择 【Gemini】 分组。Gemini 图片模型与 Gemini 文本模型共用该分组,图片生成会同时消耗输入和输出 Token。请不要使用逆向分组调用这些模型。
模型与价格
下表为 Gemini 分组(2x)价格,单位均为每 1M Token。
| 模型 | 输入 | 输出 | 支持格式 |
|---|---|---|---|
gemini-3.1-flash-lite-image | ¥0.50 | ¥60 | Gemini 原生 / OpenAI 聊天 |
gemini-2.5-flash-image | ¥0.60 | ¥60 | Gemini 原生 / OpenAI 聊天 |
gemini-3.1-flash-image | ¥1.00 | ¥120 | Gemini 原生 / OpenAI 聊天 |
gemini-3.1-flash-image-preview | ¥1.00 | ¥120 | Gemini 原生 / OpenAI 聊天 |
gemini-3-pro-image | ¥4.00 | ¥240 | Gemini 原生 / OpenAI 聊天 |
gemini-3-pro-image-preview | ¥4.00 | ¥240 | Gemini 原生 / OpenAI 聊天 |
模型和价格可能调整,请以
GET /v1/models、控制台及实时定价为准。
Gemini 原生格式
适合已经使用 Gemini SDK 或 Google 接口结构的项目。
| 项目 | 内容 |
|---|---|
| 方法 | POST |
| 路径 | /v1beta/models/{model}:generateContent |
| 鉴权 | x-goog-api-key: YOUR_API_KEY |
| Content-Type | application/json |
请求示例
bash
curl "https://api.aizhan.space/v1beta/models/gemini-3.1-flash-image:generateContent" \
-H "x-goog-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{"parts": [{"text": "一只可爱的橘猫,纯白背景"}]}
],
"generationConfig": {
"responseModalities": ["image"],
"imageConfig": {
"aspectRatio": "1:1",
"imageSize": "1K"
}
}
}'| 参数 | 说明 |
|---|---|
model | URL 中的完整模型名,例如 gemini-3.1-flash-image |
contents[].parts[].text | 图片提示词 |
aspectRatio | 图片比例,例如 1:1、9:16、16:9 |
imageSize | 图片分辨率,例如 1K、2K、4K |
响应格式
图片通过 inlineData.data 返回 base64 字符串。
json
{
"candidates": [
{
"content": {
"parts": [
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "<base64字符串>"
}
}
]
}
}
]
}Python 示例
python
import base64
import os
import requests
api_key = os.environ["AIZHAN_API_KEY"]
model = "gemini-3.1-flash-image"
response = requests.post(
f"https://api.aizhan.space/v1beta/models/{model}:generateContent",
headers={"x-goog-api-key": api_key},
json={
"contents": [{"parts": [{"text": "一只可爱的橘猫,纯白背景"}]}],
"generationConfig": {
"responseModalities": ["image"],
"imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"},
},
},
timeout=180,
)
response.raise_for_status()
parts = response.json()["candidates"][0]["content"]["parts"]
image = next(part["inlineData"] for part in parts if "inlineData" in part)
suffix = {"image/png": ".png", "image/jpeg": ".jpg"}.get(image["mimeType"], ".img")
with open(f"gemini-native{suffix}", "wb") as file:
file.write(base64.b64decode(image["data"]))OpenAI 聊天格式
适合已经使用 OpenAI SDK、chat.completions 或兼容客户端的项目。
| 项目 | 内容 |
|---|---|
| 方法 | POST |
| 路径 | /v1/chat/completions |
| 鉴权 | Authorization: Bearer YOUR_API_KEY |
| Content-Type | application/json |
请求示例
bash
curl https://api.aizhan.space/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image",
"messages": [
{
"role": "user",
"content": [{"type": "text", "text": "一只可爱的橘猫,纯白背景"}]
}
],
"extra_body": {
"imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}
},
"max_tokens": 4096,
"temperature": 0.8
}'图片以 Markdown 图片语法嵌入 choices[0].message.content:
json
{
"choices": [
{
"message": {
"role": "assistant",
"content": ""
}
}
]
}Python 示例
python
import base64
import os
import re
import requests
api_key = os.environ["AIZHAN_API_KEY"]
response = requests.post(
"https://api.aizhan.space/v1/chat/completions",
headers={"Authorization": f"Bearer {api_key}"},
json={
"model": "gemini-3.1-flash-image",
"messages": [
{"role": "user", "content": [{"type": "text", "text": "一只可爱的橘猫"}]}
],
"extra_body": {"imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}},
"max_tokens": 4096,
},
timeout=180,
)
response.raise_for_status()
content = response.json()["choices"][0]["message"]["content"]
match = re.search(r"data:(image/\w+);base64,([A-Za-z0-9+/=\n]+)", content)
if not match:
raise ValueError("响应中没有图片数据")
mime_type, encoded = match.groups()
encoded = encoded.replace("\n", "").strip()
encoded += "=" * (-len(encoded) % 4)
suffix = {"image/png": ".png", "image/jpeg": ".jpg"}.get(mime_type, ".img")
with open(f"gemini-openai{suffix}", "wb") as file:
file.write(base64.b64decode(encoded))两种格式怎么选
| 维度 | Gemini 原生格式 | OpenAI 聊天格式 |
|---|---|---|
| 鉴权 | x-goog-api-key | Authorization: Bearer |
| 路径 | /v1beta/models/{model}:generateContent | /v1/chat/completions |
| 图片配置 | generationConfig.imageConfig | extra_body.imageConfig |
| 图片返回 | inlineData.data | Markdown data URL |
| 适合场景 | Gemini 生态项目 | OpenAI 兼容项目 |
常见问题
| 现象 | 处理方式 |
|---|---|
model_not_found 或“无可用渠道” | 使用完整模型名,并确认令牌属于【Gemini】分组 |
| base64 解码报 padding 错误 | 在字符串末尾补 =,直到长度能被 4 整除 |
| 请求超时 | 使用 1K 测试,并把客户端超时设置为 180 秒以上 |
| 没有收到流式图片 | 图片接口不使用流式输出,请等待完整响应 |