Gemini 图片生成
Gemini 图片模型同时支持 Gemini 原生格式和 OpenAI 聊天格式。两种格式使用同一批 -count 模型,并按生成次数计费。
调用前准备
选择专用分组
创建令牌时必须选择 【图片视频专用分组】。图片模型名都要带 -count 后缀,不要省略。
模型与价格
| 模型 | 参考价格 | 支持格式 |
|---|---|---|
gemini-2.5-flash-image-count | ¥0.04/次 | Gemini 原生 / OpenAI 聊天 |
gemini-3.1-flash-image-count | ¥0.14/次 | Gemini 原生 / OpenAI 聊天 |
gemini-3.1-flash-image-preview-count | ¥0.14/次 | Gemini 原生 / OpenAI 聊天 |
gemini-3-pro-image-preview-count | ¥0.20/次 | 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://ai.flashapi.top/v1beta/models/gemini-3.1-flash-image-preview-count: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 中的完整 -count 模型名 |
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["FLASH_API_KEY"]
model = "gemini-3.1-flash-image-preview-count"
response = requests.post(
f"https://ai.flashapi.top/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://ai.flashapi.top/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image-preview-count",
"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["FLASH_API_KEY"]
response = requests.post(
"https://ai.flashapi.top/v1/chat/completions",
headers={"Authorization": f"Bearer {api_key}"},
json={
"model": "gemini-3.1-flash-image-preview-count",
"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 或“无可用渠道” | 使用完整 -count 模型名,并确认令牌属于【图片视频专用分组】 |
| base64 解码报 padding 错误 | 在字符串末尾补 =,直到长度能被 4 整除 |
| 请求超时 | 使用 1K 测试,并把客户端超时设置为 180 秒以上 |
| 没有收到流式图片 | 图片接口不使用流式输出,请等待完整响应 |