Gemini 图片生成
通过闪电API,你可以用两种方式调用 Gemini-Banana 的图片生成能力:
- Gemini 原生格式
- OpenAI 聊天格式
如果你已经在用 Gemini 生态接口,优先选原生格式;如果你现有项目已经基于 OpenAI SDK 或 chat.completions,优先选 OpenAI 聊天格式。
公共参数
| 参数 | 说明 |
|---|---|
BASE_URL | 中转站域名:https://ai.flashapi.top |
API_KEY | 闪电API中生成的 sk-xxx 密钥 |
model | 模型名称,如 gemini-3.1-flash-image-preview、gemini-3-pro-image-preview |
aspectRatio | 图片比例,如 1:1、9:16、16:9 |
imageSize | 图片分辨率,如 1K、2K、4K |
Gemini 原生格式
接口信息
| 项目 | 内容 |
|---|---|
| 方法 | POST |
| 路径 | /v1beta/models/{model}:generateContent |
| 鉴权 | x-goog-api-key: YOUR_API_KEY |
| Content-Type | application/json |
请求体结构
json
{
"contents": [
{
"parts": [
{ "text": "你的绘图提示词" }
]
}
],
"generationConfig": {
"responseModalities": ["image"],
"imageConfig": {
"aspectRatio": "1:1",
"imageSize": "1K"
}
}
}响应结构
json
{
"candidates": [
{
"content": {
"parts": [
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "<base64字符串>"
}
}
]
}
}
]
}图片会通过 inlineData.data 返回 base64 字符串,需要你自行解码并保存。
Python 示例
python
import base64
import os
import requests
API_KEY = "sk-你的密钥"
BASE_URL = "https://ai.flashapi.top"
MODEL = "gemini-3.1-flash-image-preview"
PROMPT = "生成一个闪电图标"
SAVE_TO = "output_gemini.png"
url = f"{BASE_URL}/v1beta/models/{MODEL}:generateContent"
headers = {
"x-goog-api-key": API_KEY,
"Content-Type": "application/json",
}
payload = {
"contents": [
{"parts": [{"text": PROMPT}]}
],
"generationConfig": {
"responseModalities": ["image"],
"imageConfig": {
"aspectRatio": "1:1",
"imageSize": "1K"
}
}
}
resp = requests.post(url, headers=headers, json=payload, timeout=120)
resp.raise_for_status()
data = resp.json()
parts = data["candidates"][0]["content"]["parts"]
for part in parts:
if "inlineData" in part:
image_data = base64.b64decode(part["inlineData"]["data"])
with open(SAVE_TO, "wb") as f:
f.write(image_data)
print(f"图片已保存:{os.path.abspath(SAVE_TO)}")
breakOpenAI 聊天格式
接口信息
| 项目 | 内容 |
|---|---|
| 方法 | POST |
| 路径 | /v1/chat/completions |
| 鉴权 | Authorization: Bearer YOUR_API_KEY |
| Content-Type | application/json |
请求体结构
json
{
"model": "gemini-3.1-flash-image-preview",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "你的绘图提示词" }
]
}
],
"extra_body": {
"imageConfig": {
"aspectRatio": "1:1",
"imageSize": "1K"
}
},
"max_tokens": 4096,
"temperature": 0.8
}extra_body.imageConfig 用于控制图片比例与分辨率,这个字段是可选的。
响应结构
json
{
"choices": [
{
"message": {
"role": "assistant",
"content": ""
}
}
]
}图片会以 Markdown 图片语法嵌入在 content 字符串中,提取出 base64 部分后再解码保存即可。
Python 示例
python
import base64
import os
import re
import requests
API_KEY = "sk-你的密钥"
BASE_URL = "https://ai.flashapi.top"
MODEL = "gemini-3.1-flash-image-preview"
PROMPT = "生成一个闪电"
SAVE_TO = "output_openai.png"
url = f"{BASE_URL}/v1/chat/completions"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
payload = {
"model": MODEL,
"messages": [
{
"role": "user",
"content": [{"type": "text", "text": PROMPT}]
}
],
"extra_body": {
"imageConfig": {
"aspectRatio": "1:1",
"imageSize": "1K"
}
},
"max_tokens": 4096,
"temperature": 0.8
}
resp = requests.post(url, headers=headers, json=payload, timeout=120)
resp.raise_for_status()
data = resp.json()
content = data["choices"][0]["message"]["content"]
match = re.search(r"data:image/\w+;base64,([A-Za-z0-9+/=\n]+)", content)
if not match:
raise ValueError(f"未找到图片数据,响应内容: {content[:200]}")
b64_str = match.group(1).replace("\n", "").strip()
b64_str += "=" * (-len(b64_str) % 4)
image_data = base64.b64decode(b64_str)
with open(SAVE_TO, "wb") as f:
f.write(image_data)
print(f"图片已保存:{os.path.abspath(SAVE_TO)}")两种格式对比
| 维度 | Gemini 原生格式 | OpenAI 聊天格式 |
|---|---|---|
| 鉴权 Header | x-goog-api-key | Authorization: Bearer |
| 路径 | /v1beta/models/{model}:generateContent | /v1/chat/completions |
| 图片配置位置 | generationConfig.imageConfig | extra_body.imageConfig |
| 图片返回方式 | inlineData.data(纯 base64) | content 中嵌入 Markdown 图片 |
| 适用场景 | 直接对接 Gemini 生态工具 | 兼容 OpenAI SDK 或现有 Chat 流程 |
注意事项
- 图片生成通常比文本慢,建议把
timeout设为120秒以上。 imageSize越大,生成耗时通常越长;测试阶段建议先用1K。- OpenAI 聊天格式返回的 base64 可能缺少末尾
=,解码前记得补齐。 - 两种格式都不支持流式输出,
stream: true对绘图无效。
下一步
- 查看API概览 - 了解整体接口分类
- 查看OpenAI格式API - 继续走兼容 OpenAI 的调用方式
- 获取帮助 - 遇到问题时联系支持