Appearance
flow Gemini 香蕉生图文档
本页说明如何使用 We-AI 自定义的 Gemini 香蕉生图接口。它采用 Gemini API 风格的 generateContent 路径,但模型名、比例和清晰度由平台自定义模型列表控制。
核心结论:
- 生成图片使用同步接口:
POST /v1beta/models/{model}:generateContent - 查看可用模型使用:
GET /v1beta/models - 只推荐同步生成图片,不推荐使用流式接口生成图片
- 文生图、图生图、改图都通过
contents[].parts[]传入文本和图片
官方参考:
- Gemini API Image generation
- Gemini API Reference: models.generateContent
- Gemini API Reference: models.list
接入线路
当前可用入口如下,接入时选择其中一个作为 BASE_URL 即可:
https://us-la.we-token.cc/:国际加速路线。https://asian-acc.we-token.cc/:亚太加速路线。https://sub2api.we-token.cc/:国内加速路线。https://sub2api.aitu.art/:Aitu 独立站点入口;它是早先单独的独立站点,与we-token.cc的用户体系不打通。
us-la.we-token.cc、asian-acc.we-token.cc 和 sub2api.we-token.cc 都是 We-AI 的 we-token.cc 站点,用户体系相同,区别只是加速区域不同。sub2api.aitu.art 是早先单独的独立站点,与 we-token.cc 的用户体系不打通,API Key、余额和账号信息请以对应站点后台为准。
一、接口概览
Gemini 香蕉生图当前使用两个主要接口。
| 用途 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 查看模型列表 | GET | /v1beta/models | 用于确认当前可用模型、模型 ID 和平台返回字段。 |
| 同步生成图片 | POST | /v1beta/models/{model}:generateContent | 用于文生图、图生图、图片编辑、多图融合。 |
示例中的 BASE_URL 请替换成你的平台入口,例如:
txt
https://us-la.we-token.cc
https://asian-acc.we-token.cc
https://sub2api.we-token.cc
https://sub2api.aitu.art鉴权使用 Authorization 请求头,格式如下:
http
Authorization: Bearer sk-xxxx
Content-Type: application/json后续所有请求示例都使用 Authorization: Bearer ${API_KEY}。请不要把真实 API Key 写进前端代码、公开仓库或聊天截图。
二、查看模型列表
建议接入前先请求模型列表,确认当前可用模型:
bash
curl "${BASE_URL%/}/v1beta/models" \
-H "Authorization: Bearer ${API_KEY}" \
-H "Content-Type: application/json"Windows PowerShell 中建议使用 curl.exe:
powershell
curl.exe "$($env:BASE_URL.TrimEnd('/'))/v1beta/models" `
-H "Authorization: Bearer $($env:API_KEY)" `
-H "Content-Type: application/json"如果模型列表返回为空、401 或 404,请优先检查:
BASE_URL是否正确。API_KEY是否有效。- 是否把
/v1beta重复写进了BASE_URL。 - 当前账号是否开通了 Gemini 香蕉生图模型。
三、模型命名规则
平台将香蕉生图模型拆成两组:
| 平台叫法 | 模型前缀 | 适合场景 |
|---|---|---|
| 大香蕉 | gemini-3.0-pro-image | 质量优先、复杂构图、商业海报、需要更稳定细节的任务。 |
| 小香蕉 | gemini-3.1-flash-image | 速度优先、快速预览、批量草稿、日常轻量生图。 |
完整模型名格式:
txt
{模型前缀}_{比例}_{清晰度}例如:
txt
gemini-3.0-pro-image_16-9_2k
gemini-3.1-flash-image_1-1_1k模型名中的比例和清晰度是平台路由的主要依据。请求体里的 generationConfig.imageConfig.aspectRatio 建议和模型名中的比例保持一致,避免参数表达和模型路由不一致。
与 adobe 香蕉生图的区别
两种 gemini 香蕉生图的核心差异就在生图模型名称上:
- flow(本页):模型名采用
{模型前缀}_{比例}_{清晰度}格式,例如gemini-3.0-pro-image_16-9_2k,比例和清晰度直接写进模型名。 - Adobe:模型名只有基础名
gemini-3.1-flash-image/gemini-3-pro-image,不带后缀;比例、清晰度通过请求体的generationConfig.imageConfig控制。
两者不要混用模型名。详见 adobe gemini 香蕉生图。
四、支持的模型列表
大香蕉:gemini-3.0-pro-image
| 比例 | 1K | 2K | 4K |
|---|---|---|---|
| 16:9 | gemini-3.0-pro-image_16-9_1k | gemini-3.0-pro-image_16-9_2k | gemini-3.0-pro-image_16-9_4k |
| 9:16 | gemini-3.0-pro-image_9-16_1k | gemini-3.0-pro-image_9-16_2k | gemini-3.0-pro-image_9-16_4k |
| 1:1 | gemini-3.0-pro-image_1-1_1k | gemini-3.0-pro-image_1-1_2k | gemini-3.0-pro-image_1-1_4k |
| 4:3 | gemini-3.0-pro-image_4-3_1k | gemini-3.0-pro-image_4-3_2k | gemini-3.0-pro-image_4-3_4k |
| 3:4 | gemini-3.0-pro-image_3-4_1k | gemini-3.0-pro-image_3-4_2k | gemini-3.0-pro-image_3-4_4k |
小香蕉:gemini-3.1-flash-image
| 比例 | 1K | 2K | 4K |
|---|---|---|---|
| 16:9 | gemini-3.1-flash-image_16-9_1k | gemini-3.1-flash-image_16-9_2k | gemini-3.1-flash-image_16-9_4k |
| 9:16 | gemini-3.1-flash-image_9-16_1k | gemini-3.1-flash-image_9-16_2k | gemini-3.1-flash-image_9-16_4k |
| 1:1 | gemini-3.1-flash-image_1-1_1k | gemini-3.1-flash-image_1-1_2k | gemini-3.1-flash-image_1-1_4k |
| 4:3 | gemini-3.1-flash-image_4-3_1k | gemini-3.1-flash-image_4-3_2k | gemini-3.1-flash-image_4-3_4k |
| 3:4 | gemini-3.1-flash-image_3-4_1k | gemini-3.1-flash-image_3-4_2k | gemini-3.1-flash-image_3-4_4k |
五、比例和清晰度选择
| 目标 | 推荐模型后缀 | 请求体 aspectRatio |
|---|---|---|
| 方图、头像、商品主图 | _1-1_1k、_1-1_2k、_1-1_4k | 1:1 |
| 横版海报、官网首屏、视频封面 | _16-9_1k、_16-9_2k、_16-9_4k | 16:9 |
| 竖版海报、手机壁纸、短视频封面 | _9-16_1k、_9-16_2k、_9-16_4k | 9:16 |
| 横向商品图、文章配图 | _4-3_1k、_4-3_2k、_4-3_4k | 4:3 |
| 竖向商品图、人物海报 | _3-4_1k、_3-4_2k、_3-4_4k | 3:4 |
选择建议:
- 先用
1k测试提示词和链路。 - 正式交付优先用
2k。 - 需要大屏、印刷、高清封面时再使用
4k。 4k通常等待时间更长,也更容易遇到上游繁忙或超时。
六、文生图请求示例
最小可用请求如下:
json
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "画一只赛博朋克风格的猫,霓虹灯背景"
}
]
}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {
"aspectRatio": "1:1"
}
}
}完整 curl 示例:
bash
curl "${BASE_URL%/}/v1beta/models/gemini-3.1-flash-image_1-1_1k:generateContent" \
-H "Authorization: Bearer ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"role": "user",
"parts": [{ "text": "画一只赛博朋克风格的猫,霓虹灯背景,高细节,电影感灯光" }]
}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {
"aspectRatio": "1:1"
}
}
}'Windows PowerShell 示例:
powershell
curl.exe "$($env:BASE_URL.TrimEnd('/'))/v1beta/models/gemini-3.1-flash-image_1-1_1k:generateContent" `
-H "Authorization: Bearer $($env:API_KEY)" `
-H "Content-Type: application/json" `
-d "{`"contents`":[{`"role`":`"user`",`"parts`":[{`"text`":`"画一只赛博朋克风格的猫,霓虹灯背景,高细节,电影感灯光`"}]}],`"generationConfig`":{`"responseModalities`":[`"TEXT`",`"IMAGE`"],`"imageConfig`":{`"aspectRatio`":`"1:1`"}}}"七、响应结构和图片保存
Gemini 风格响应通常在 candidates[0].content.parts 中返回文本和图片。文本部分在 text 字段里,图片部分在 inlineData.data 或 inline_data.data 中。
拿到图片字段后,把 inlineData.data(或 inline_data.data)按 base64 解码,写入本地文件即可。图片格式可参考 inlineData.mimeType(或 mime_type),常见为 image/png。
八、图生图 / 改图
Gemini 官方支持把图片和文本一起放进 contents[].parts[],让模型基于参考图进行生成或编辑。平台自定义香蕉模型也可以按这个结构尝试。
典型场景:
- 保留主体,替换背景。
- 根据产品图生成电商主图。
- 参考一张人物图生成同风格头像。
- 多图融合,把产品放进指定场景。
- 局部语义编辑,例如“只把沙发改成棕色皮质,其他不变”。
请求结构:
json
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "保留图片里的杯子主体不变,把背景改成浅灰色摄影棚,增加柔和阴影,不要水印"
},
{
"inline_data": {
"mime_type": "image/png",
"data": "<BASE64_IMAGE_DATA>"
}
}
]
}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {
"aspectRatio": "1:1"
}
}
}注意:
data只放纯 base64,不要带data:image/png;base64,前缀。mime_type要和原图格式一致,常见值是image/png、image/jpeg、image/webp。- 如果平台兼容层要求 camelCase,可将
inline_data/mime_type改为inlineData/mimeType。
九、多图融合
官方 Gemini 图片模型支持多参考图输入。平台自定义模型可按同样的 parts 结构传多张图:
json
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "保留第一张图里的产品主体,融合到第二张图的室内场景中,光线自然,边缘真实,不要水印"
},
{
"inline_data": {
"mime_type": "image/png",
"data": "<BASE64_PRODUCT_IMAGE>"
}
},
{
"inline_data": {
"mime_type": "image/png",
"data": "<BASE64_BACKGROUND_IMAGE>"
}
}
]
}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {
"aspectRatio": "16:9"
}
}
}多图建议:
- 先从 2 张图开始测试,确认兼容层能稳定接收。
- 参考图越多,请求体越大,越容易触发网关限制或超时。
- 产品融合类任务建议把主体图放在前面,场景图放在后面。
- 提示词明确说明“保留哪张图的什么元素”和“替换哪张图的什么部分”。
十、同步生成,不推荐流生成
本平台只推荐同步 generateContent 生成图片,不推荐使用流式接口生成图片。
不推荐流生成的原因:
- 图片结果是 base64 或 inline data,流式分片处理更复杂。
- 中间文本、思考信息、图片块可能交错出现,客户端更难稳定解析。
- 高分辨率图片生成本身耗时较长,流式并不能明显降低最终等待时间。
- 平台兼容层优先保障同步接口的稳定性。
请避免使用:
txt
POST /v1beta/models/{model}:streamGenerateContent十一、参数建议
| 参数 | 建议 |
|---|---|
contents | 固定使用数组结构,里面放 role: "user" 和 parts。 |
parts[].text | 写清楚主体、风格、背景、构图、光线、文字要求和禁止项。 |
responseModalities | 推荐使用 ["TEXT", "IMAGE"],便于同时拿到文字说明和图片。只要图片时也可以尝试 ["IMAGE"]。 |
imageConfig.aspectRatio | 和模型名后缀保持一致,例如 _16-9_2k 对应 16:9。 |
| 模型清晰度 | 草稿用 1k,正式图用 2k,高清交付用 4k。 |
官方 Gemini 文档还提供了 responseFormat.image.imageSize 一类写法,但本平台已经把清晰度编码进模型名后缀,优先使用模型名控制 1k、2k、4k。
十二、提示词建议
推荐写法:
txt
生成一张 16:9 横版科技产品海报。
主体是一台银色笔记本电脑,放在深灰色桌面中央。
背景是现代办公室,浅景深,柔和自然光。
右侧保留空白区域,方便后期添加标题。
整体风格高级、干净、真实摄影感。
不要水印,不要品牌 Logo,不要多余文字。图生图或改图时,提示词要写清楚“保留”和“改变”:
txt
保留参考图中的杯子主体、颜色和材质不变。
只把背景改成浅灰色摄影棚,增加柔和阴影。
不要改变杯子的形状,不要添加品牌 Logo,不要水印。如果图里需要文字,尽量减少文字数量,并明确文字内容、语言、位置和样式。图片模型对复杂长文排版仍然可能不稳定。
十三、常见问题
404 或模型不存在
先调用 GET /v1beta/models,确认模型列表里是否包含你请求的完整模型名。注意完整模型名包含比例和清晰度后缀,例如:
txt
gemini-3.1-flash-image_16-9_2k不要只传:
txt
gemini-3.1-flash-image比例不对
检查模型名后缀和 imageConfig.aspectRatio 是否一致:
txt
模型:gemini-3.1-flash-image_16-9_2k
aspectRatio:16:9如果模型名写的是 _1-1_2k,但请求体传了 16:9,可能会导致输出比例不符合预期或触发参数错误。
没有返回图片
请检查:
responseModalities是否包含IMAGE。- 响应是否有
candidates[0].content.parts。 - 图片是否在
inlineData.data或inline_data.data。 - 提示词是否涉及不允许生成的内容。
- 高分辨率或复杂任务是否需要降低到
1k后重试。
图生图失败
请检查:
- base64 是否是纯图片内容,不带 data URL 前缀。
mime_type或mimeType是否和图片格式一致。- 图片体积是否过大。
- 图片是否损坏或无法正常打开。
- 是否同时上传了太多参考图。
十四、完整任务模板
文生图:
txt
请使用 Gemini 香蕉生图同步接口。
调用 POST ${BASE_URL}/v1beta/models/gemini-3.1-flash-image_16-9_2k:generateContent。
不要使用 streamGenerateContent。
请求头使用 Authorization: Bearer ${API_KEY},并设置 Content-Type: application/json。
generationConfig.responseModalities 使用 ["TEXT", "IMAGE"]。
generationConfig.imageConfig.aspectRatio 使用 "16:9"。
prompt:生成一张 16:9 横版科技产品海报,主体是一台银色笔记本电脑,深灰色桌面,现代办公室背景,浅景深,柔和自然光,右侧留白,不要水印,不要品牌 Logo,不要多余文字。
请从 candidates[0].content.parts 中找到 inlineData 或 inline_data 图片并保存为 PNG。图生图:
txt
请使用 Gemini 香蕉生图同步接口做图生图。
调用 POST ${BASE_URL}/v1beta/models/gemini-3.0-pro-image_1-1_2k:generateContent。
不要使用 streamGenerateContent。
读取当前目录 reference.png,转成纯 base64,作为 contents[0].parts 的 inline_data 传入。
同时传入文本提示:保留主体产品不变,把背景改成浅灰色摄影棚,增加柔和阴影,整体真实自然,不要水印。
generationConfig.responseModalities 使用 ["TEXT", "IMAGE"]。
generationConfig.imageConfig.aspectRatio 使用 "1:1"。
请从响应 parts 中找到图片 inlineData 并保存为 gemini-banana-edited.png。