Documentation Index
Fetch the complete documentation index at: https://wisdom-docs.juheapi.com/llms.txt
Use this file to discover all available pages before exploring further.
Gemini 图像生成 API 允许您使用 Google 的 Gemini 模型从文本描述生成图像。此端点支持灵活的宽高比、多种分辨率(高达 4K)和多轮图像编辑功能。
最新消息:现已支持 gemini-3.1-flash-image-preview(Nano Banana 2)!此模型是 Gemini 3 Pro Image 的高效版本,针对速度和高用量开发者使用情形进行了优化。支持高达 4K 分辨率。
快速开始
只需在官方 SDK 或请求中替换 Base URL 和 API Key 即可使用:
- Base URL:
https://api.wisgate.ai(替换 generativelanguage.googleapis.com)
- API Key:将
$GEMINI_API_KEY 替换为您的 $WISDOM_GATE_KEY
基础示例:生成图像
curl -s -X POST \
"https://api.wisgate.ai/v1beta/models/gemini-3-pro-image-preview:generateContent" \
-H "x-goog-api-key: $WISDOM_GATE_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"parts": [{
"text": "达芬奇风格的帝王蝶解剖素描。在有纹理的羊皮纸上详细绘制头部、翅膀和腿部,并附有英文注释。"
}]
}],
"tools": [{"google_search": {}}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {
"aspectRatio": "1:1",
"imageSize": "1K"
}
}
}' | jq -r '.candidates[0].content.parts[] | select(.inlineData) | .inlineData.data' | head -1 | base64 --decode > butterfly.png
重要说明
模型差异不同的 Gemini 图像模型可能支持不同的分辨率和功能。gemini-3.1-flash-image-preview(Nano Banana 2)支持 0.5K、1K、2K、4K 分辨率,针对速度优化。gemini-3-pro-image-preview 支持高达 4K 分辨率。gemini-2.5-flash-image 支持 1K 和 2K 分辨率。我们强烈建议查阅 模型目录 了解每个模型的完整参数列表和使用说明。
响应透传原则WisGate 通常不会在逆向格式之外修改模型响应,确保您收到与原始 Gemini API 提供商一致的响应内容。
强制图像输出为确保生成图像而不是纯文本响应,请在请求中设置 "responseModalities": ["IMAGE"](不含 TEXT)。这将强制模型生成图像。
参考文档
有关 Gemini 图像生成的更多详情,我们建议参阅 Gemini 官方文档。
Gemini 图像生成指南:
自动生成的文档请求参数和响应格式从 OpenAPI 规范自动生成。所有参数、其类型、描述、默认值和示例都直接从 openapi.json 提取。向下滚动查看交互式 API 参考。
常见问题
哪些模型支持图像生成?
支持的模型、分辨率和宽高比:
| 模型 | 说明 | 分辨率 | 宽高比 |
|---|
gemini-3.1-flash-image-preview(Nano Banana 2) | Gemini 3 Pro Image 的高效版本,针对速度优化 | 0.5K, 1K, 2K, 4K | 1:1, 1:4, 1:8, 2:3, 3:2, 3:4, 4:1, 4:3, 4:5, 5:4, 8:1, 9:16, 16:9, 21:9 |
gemini-3-pro-image-preview | 全功能图像生成模型 | 1K, 2K, 4K | 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 |
gemini-2.5-flash-image | 快速经济的图像生成 | 1K, 2K | 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 |
如何配置宽高比和分辨率?
在 imageConfig 字段中设置 aspectRatio 和 imageSize:
curl -s -X POST \
"https://api.wisgate.ai/v1beta/models/gemini-2.5-flash-image:generateContent" \
-H "x-goog-api-key: $WISDOM_GATE_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"parts": [{
"text": "山脉上美丽的日落"
}]
}],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {
"aspectRatio": "16:9"
}
}
}'
如何生成 4K 图像?
4K 分辨率适用于 gemini-3-pro-image-preview 模型。在 imageConfig 中设置 "imageSize": "1K":
curl -s -X POST \
"https://api.wisgate.ai/v1beta/models/gemini-3-pro-image-preview:generateContent" \
-H "x-goog-api-key: $WISDOM_GATE_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"parts": [{
"text": "现代摩天大楼的详细建筑渲染图"
}]
}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "1K"
}
}
}'
如何进行多轮图像编辑?
您可以在多轮对话中保持上下文以迭代优化图像:
# 第一轮:生成初始图像
curl -s -X POST \
"https://api.wisgate.ai/v1beta/models/gemini-3-pro-image-preview:generateContent" \
-H "x-goog-api-key: $WISDOM_GATE_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "创建一个生动的信息图,将光合作用解释为植物最喜欢的食物食谱。展示"原料"(阳光、水、二氧化碳)和"成品"(糖/能量)。风格应该像彩色儿童食谱书的一页,适合四年级学生。"
}]
}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"]
}
}' > turn1_response.json
# 从第一个响应中提取图像
jq -r '.candidates[0].content.parts[] | select(.inlineData) | .inlineData.data' turn1_response.json | head -1 | base64 --decode > photosynthesis.png
# 第二轮:基于之前的响应优化
# (在 contents 数组中包含之前的对话)
如何强制仅输出图像?
为防止纯文本响应,设置 "responseModalities": ["IMAGE"](不含 TEXT):
data = {
"contents": [{
"parts": [{
"text": "黎明时分宁静的山景"
}]
}],
"generationConfig": {
"responseModalities": ["IMAGE"], # 只有 IMAGE,没有 TEXT
"imageConfig": {
"aspectRatio": "16:9"
}
}
}
如何从响应中提取图像?
图像以 base64 编码数据的形式在 inlineData 字段中返回:
import base64
response = requests.post(url, headers=headers, json=data)
result = response.json()
for candidate in result.get("candidates", []):
for part in candidate.get("content", {}).get("parts", []):
if "inlineData" in part:
image_data = part["inlineData"]["data"]
mime_type = part["inlineData"]["mimeType"]
# 解码并保存
image_bytes = base64.b64decode(image_data)
extension = mime_type.split("/")[1] # 例如从 "image/png" 得到 "png"
filename = f"generated_image.{extension}"
with open(filename, "wb") as f:
f.write(image_bytes)
print(f"图像已保存为 {filename}")
如何控制成本?
- 选择合适的模型:
gemini-3.1-flash-image-preview(Nano Banana 2)和 gemini-2.5-flash-image 比 gemini-3-pro-image-preview 更经济
- 使用较低分辨率:1K 和 2K 消耗的令牌比 4K 少
- 监控令牌消耗:查看响应中的
usageMetadata 字段
- 所有宽高比默认消耗 1,290 令牌(Gemini 2.5 Flash Image)