大香蕉 AI 是一款专为创意工作者打造的高性能图片生成平台。它融合 Gemini 与 OpenAI 标准接口能力,支持高分辨率(最高 4K)的文生图与图生图,并提供桌面端与 Web 端两种形态。
💡 近期更新亮点:
- ✨ OpenAI 标准接口对接:提示词优化 + 生图两条链路可切换 Gemini / OpenAI 兼容接口。
- 🤖 提示词优化增强:新增 JSON 模式 按钮,支持强制输出结构化 JSON 并自动格式化回填,提升 Prompt 质量。
- 🧵 模板市场:下拉打开整版模板市场,支持筛选、预览、来源与技巧提示,一键复用。
- 🚀 大规模列表性能优化:历史记录与模板市场改为虚拟列表/虚拟网格,图片加载更顺滑。
- 🖼️ 无图模板支持:模板缺少图片时自动显示默认图,仍可复用 Prompt。
💡 推荐使用:为了获得最佳的生成体验与极高的性价比,推荐搭配 云雾API 使用。
生成分辨率 云雾API 价格 Google 官方价格 (参考) 1K (1024x1024) 0.08 元/张 ≈ 0.94 元/张 2K (2048x2048) 0.08 元/张 ≈ 0.94 元/张 4K (4096x4096) 0.14 元/张 ≈ 1.68 元/张
- 🚀 极致性能:采用 Tauri 2.0 架构,配合 Go 语言 编写的高并发 Sidecar 后端,资源占用极低。
- 🖼️ 4K 超清创作:深度优化 Gemini 3.0 模型,支持多种画幅的 4K 超清图像生成。
- 🔌 标准接口兼容:支持 Gemini(/v1beta) 与 OpenAI(/v1) 标准格式对接,Base URL 与模型可配置。
- ⚡ 自定义协议 (asset://):在桌面端注册原生资源协议,绕过 HTTP 协议栈,本地图片加载速度提升 300%。
- 💾 智能历史管理:内置本地数据库与持久化缓存,支持任务状态自动恢复与大批量历史记录秒开。
- 📸 精准图生图:支持多参考图输入,提供细腻的风格与构图控制。
- 📦 自动化交付:集成 GitHub Actions,实现 macOS (Intel/M1) 与 Windows 平台的自动化打包发布。
- 🧩 模板市场:启动时优先拉取远程模板 JSON,失败自动回退内置模板,并支持模板来源与技巧提示。
- 精准语义理解:深度集成 Google Gemini 3.0 模型,能够精准捕捉提示词中的细节、风格与氛围。
- 提示词智能优化:内置 AI 优化引擎,可通过 Gemini / OpenAI 标准接口模型优化提示词。
- 提示词编辑历史:支持无限次的撤销与重做,方便在不同创意想法间快速切换。
- 批量并发生成:支持一次性设置生成多达 100 张图片,后台自动排队处理。
- 实时进度追踪:提供清晰的进度条与状态显示,生成过程中的每一张图片都有对应的占位卡片,完成后自动刷新。
- 多图参考支持:最多可同时添加 10 张参考图,帮助 AI 更好地理解您想要的构图或风格。
- 灵活的添加方式:
- 点击/拖拽:直接从本地文件夹选取或拖入图片。
- 粘贴支持:支持直接从网页或聊天工具复制图片并粘贴到软件中。
- 智能预处理:自动对超大图片进行压缩优化,并基于 MD5 校验自动过滤重复图片。
- 多样化画幅选择:预设 1:1, 16:9, 9:16, 4:3, 2:3 等多种主流比例。
- 画质自定义:支持从 1K 到 4K 的超清分辨率配置。
- 智能尺寸适配:系统会自动根据模型特性,将图片尺寸对齐到最佳像素点(8的倍数),确保生成效果最优化。
- 对接方式切换:设置中可选
Gemini(/v1beta)或OpenAI(/v1),并分别配置 Base URL / API Key / 模型 ID。
- 大图沉浸式预览:支持全屏查看图片,提供自由缩放与拖拽功能。
- 高密度 UI 设计:针对生产力场景优化,设置面板高度自适应,信息展示更紧凑。
- 一键快捷操作:
- 快速复制:预览界面提供“复制图片”按钮,点击即可直接粘贴到其他软件中。
- 批量管理:支持多选图片进行批量保存或删除。
- 状态智能持久化:软件会自动记住您的侧边栏状态、窗口位置及最后使用的模型配置。
- 全自动持久化:所有生成记录实时保存至本地数据库,重启软件也不丢失。
- 智能搜索:支持通过关键字快速找回历史任务。
- 稳定连接保障:自动切换 WebSocket 与 HTTP 轮询模式,确保在复杂网络环境下生成任务不中断。
- 海量资源:目前已收录 900+ 优质模板,涵盖多种风格与行业。
- 下拉打开:顶部“拉绳”交互,向下拉出整版模板市场。
- 多维筛选:支持搜索、渠道/物料/行业/画幅比例筛选。
- PPT 类目:标记为
PPT的 16:9 模板会集中展示,便于制作演示稿素材。 - 一键复用:模板预览后可直接应用(会替换当前 Prompt 与参考图)。
- 手动刷新:右侧刷新按钮可手动拉取最新模板。
- 来源与技巧:模板可携带
tips使用提示与source来源信息(可点击跳转外部浏览器)。 - 参考图要求:模板可携带
requirements.note/requirements.minRefs,用于提示需要补充的参考图数量与说明。 - 远程同步:启动时优先拉取 GitHub Raw 模板 JSON,失败自动回退内置模板并使用本地缓存。
模板数据统一维护在:
backend/internal/templates/assets/templates.json
{
"meta": {
"version": "2024.12.01",
"updated_at": "2024-12-01T12:00:00Z",
"channels": ["社群发圈", "小红书"],
"materials": ["海报", "PPT", "封面"],
"industries": ["教育培训", "生活服务"],
"ratios": ["1:1", "3:4", "16:9"]
},
"items": []
}{
"id": "tpl-001",
"title": "猫表情包模板",
"channels": ["社群发圈", "娱乐"],
"materials": ["海报"],
"industries": ["生活服务"],
"ratio": "1:1",
"preview": "https://.../thumb.jpg",
"image": "https://.../full.jpg",
"prompt": "可选:模板提示词...",
"prompt_params": "可选:提示词使用说明(保留字段)",
"tips": "可选:模板使用提示/技巧",
"source": {
"name": "@贡献者",
"label": "GitHub",
"icon": "github",
"url": "https://example.com/templates/tpl-001"
},
"requirements": { "minRefs": 2, "note": "还需要一张猫照片作为参考" },
"tags": ["猫", "表情", "搞笑"]
}requirements.note:当需要补充参考图时的提示文案,会在卡片与预览中提示。requirements.minRefs:要求的最少参考图数量。tips:模板使用技巧/注意事项(预览页展示)。prompt_params:提示词使用说明(保留字段,不参与渲染)。tags:用于检索与聚合展示。materials:可加入PPT标签(建议 16:9 模板),以便筛选演示稿素材。meta.version / meta.updated_at:用于模板版本标记与缓存比对。
githubGitHubxhs小红书wechat微信/公众号shop电商素材video短视频print线下印刷gov政务媒体meme表情包finance金融food美食local本地/生活服务
也可以直接传图片 URL,前端会当作 icon 显示。
preview/image允许为空:前端会显示默认占位图,仍支持复用 Prompt。
prompt_params当前不参与渲染,仅作为说明保留字段。
- Fork 仓库并修改
backend/internal/templates/assets/templates.json - 提交 PR
- 合并后客户端启动会从 GitHub Raw 拉取最新模板
请确保素材来源合法且链接稳定,避免失效。
graph TD
subgraph "前端层 (React + Zustand)"
UI[用户交互界面]
State[Zustand 状态管理]
AssetProtocol[asset:// 资源加载]
end
subgraph "桌面容器层 (Tauri 2.0 / Rust)"
TauriBridge[Rust 桥接层]
IPC[IPC 通讯优化]
FS[本地文件访问权限]
end
subgraph "推理后端层 (Go Sidecar)"
GoServer[Gin API 服务]
WorkerPool[并发任务池]
GeminiSDK[Google GenAI SDK]
SQLite[(SQLite 任务存储)]
end
UI <--> State
State <--> IPC
IPC <--> TauriBridge
TauriBridge <--> GoServer
GoServer <--> WorkerPool
WorkerPool <--> GeminiSDK
WorkerPool <--> SQLite
GeminiSDK <--> |Imagen 3.0| Cloud[Google AI Cloud]
GoServer -.-> |保存图像| FS
FS -.-> |映射资源| AssetProtocol
AssetProtocol -.-> |极速显示| UI
项目采用“三层架构”设计,确保了性能与扩展性的平衡:
- 前端 (React + Zustand):负责响应式 UI 与状态管理,提供流畅的用户交互。
- 桌面容器 (Tauri):作为 Rust 桥梁,处理窗口控制、本地资源访问及 Sidecar 进程管理。
- 推理引擎 (Go Sidecar):负责与 Google GenAI SDK 通讯,处理 Worker 任务池与本地图片存储。
- IPC 负荷优化:前端与后端之间仅传递文件路径,大型二进制数据通过
asset://协议直接由前端读取。 - 进程生命周期管理:Tauri 退出时自动清理 Go 边车进程,防止系统资源泄漏。
├── backend/ # Go 语言编写的推理后端 (Sidecar)
│ ├── cmd/server/ # 服务入口
│ └── internal/ # 核心逻辑 (Gemini 适配器、Worker 池、数据库)
├── desktop/ # Tauri 桌面端项目 (React + Rust)
│ ├── src/ # 前端组件与业务逻辑
│ └── src-tauri/ # Rust 容器配置与系统权限定义
├── frontend/ # 独立 Web 版前端 (保留参考)
└── assets/ # 项目展示资源 (预览图等)- Go: 1.21+
- Node.js: 18+ (建议使用 20)
- Rust: 1.75+ (Tauri 构建必备)
部分 macOS 用户下载应用后会因为系统的 Gatekeeper 安全机制导致无法打开或提示异常。可在终端执行以下命令移除隔离标记:
sudo xattr -r -d com.apple.quarantine "/Applications/大香蕉 AI.app"
- Google Gemini API Key (用于 Gemini 对接方式)
- OpenAI API Key (用于 OpenAI 对接方式,可选)
cd backend
# 复制并配置 config.yaml 填入您的 API Key
go run cmd/server/main.go或者使用 Makefile 快捷命令:
make build # 编译后端
make run # 运行后端cd desktop
npm install
npm run tauri devcd frontend
npm install
npm run dev只需推送带有版本号的标签(如 v1.3.0),即可触发自动化构建:
git tag v1.3.0
git push origin v1.3.0注意:v1.3.0 之后支持通过推送 Tag 自动生成 Release 并上传多平台二进制文件。
项目已集成 Tauri 官方 Updater 插件,发布新版本后用户启动应用会收到更新提示,可一键下载安装。
- 生成 Updater 签名密钥(仅需一次,务必妥善保存私钥)
cd desktop
npm run tauri signer generate -- -w ~/.tauri/banana-updater.key- 将公钥写入配置:
desktop/src-tauri/tauri.conf.json的plugins.updater.pubkey(公钥内容来自~/.tauri/banana-updater.key.pub)
示例(只填入 .pub 文件里的 key 内容,不要把私钥提交到仓库):
{
"plugins": {
"updater": {
"pubkey": "YOUR_PUBLIC_KEY_HERE"
}
}
}- 配置 GitHub Secrets(用于 CI 生成
*.sig与latest.json)
GitHub Secrets 指的是 GitHub 仓库页面里的 Actions Secrets:Repo -> Settings -> Secrets and variables -> Actions -> New repository secret
TAURI_SIGNING_PRIVATE_KEY: 私钥文件内容(~/.tauri/banana-updater.key的全文内容,不是文件路径;不要提交到仓库)TAURI_SIGNING_PRIVATE_KEY_PASSWORD: 私钥密码(如生成时设置了密码,否则可不配置)
本地取私钥内容(示例):
cat ~/.tauri/banana-updater.key- 触发发布后,Release Assets 中应包含
latest.json、对应平台安装包,以及同名的*.sig文件。
| 配置项 | 描述 |
|---|---|
AI对接方式 |
Gemini(/v1beta) 或 OpenAI(/v1);不同模式使用不同的 Base URL 与模型。 |
API Base / API Key |
兼容标准 OpenAI 格式接口,可替换成任意兼容平台。 |
生图模型 / 对话模型 |
生图模型用于生成图片,对话模型用于提示词优化。 |
Storage Dir |
应用默认将图片保存在系统的 AppData (Win) 或 Application Support (Mac) 目录下。 |
Templates Remote URL |
远程模板 JSON 地址(默认 GitHub Raw),启动时会拉取并缓存。 |
asset:// |
自定义资源协议,用于安全、快速地访问本地生成的图片。 |
提示:OpenAI 类型接口通常要求生图模型(model_id)必填;Gemini 类型需使用
/v1beta路径。注意:OpenAI 对接方式当前仅支持 1K 图片生成(具体取决于所用兼容接口)。
桌面版不适合 Docker 运行,以下仅用于 后端 + Web 前端 的部署。
示例 backend/Dockerfile:
FROM golang:1.21-alpine AS build
WORKDIR /app
COPY . .
RUN go build -o server cmd/server/main.go
FROM alpine:3.19
WORKDIR /app
COPY --from=build /app/server /app/server
EXPOSE 8080
CMD ["./server"]示例 frontend/Dockerfile(Nginx 托管静态资源):
FROM node:20-alpine AS build
ARG VITE_API_URL
ENV VITE_API_URL=${VITE_API_URL}
WORKDIR /app
COPY . .
RUN npm install && npm run build
FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80version: "3.8"
services:
backend:
build: ./backend
ports:
- "8080:8080"
environment:
- SERVER_PORT=8080
- TEMPLATES_REMOTE_URL=https://raw.githubusercontent.com/ShellMonster/Nano_Banana_Pro_Web/refs/heads/main/backend/internal/templates/assets/templates.json
volumes:
- ./backend/configs:/app/configs
- ./backend/storage:/app/storage
- ./backend/data.db:/app/data.db
frontend:
ports:
- "80:80"
build:
context: ./frontend
args:
VITE_API_URL: http://backend:8080/api/v1
depends_on:
- backend说明:
- 后端配置优先读取
backend/configs/config.yaml,也可通过环境变量覆盖(如SERVER_PORT、TEMPLATES_REMOTE_URL)。- Web 前端通过
VITE_API_URL注入 API 基地址(构建时生效),也可使用反向代理统一转发。
我们欢迎任何形式的贡献!如果您在使用过程中遇到问题,请通过 GitHub Issue 提交。
- 反馈 Bug:提供详细的复现步骤与系统环境。
- 提交 PR:请遵循现有的代码风格,并在提交前进行充分测试。
本项目采用 MIT License 协议开源。
- 本项目中的许多优质模板复用了来自 awesome-nanobananapro-prompts 仓库的精选提示词,感谢原作者的无私分享!
- 项目中的 JSON 提示词优化参考了 fofr 的优秀设计,在此表示感谢!


