引言
"Vibe your PPT like vibing code."
这是"一天一个开源项目"系列的第30篇文章。今天带你了解的项目是 banana-slides (GitHub),由 Anionex 开源。
你是否也曾陷入这样的困境:明天就要汇报,但 PPT 还是一片空白;脑中有无数精彩的想法,却被繁琐的排版和设计消磨掉所有热情?传统 AI PPT 工具虽然能「快」,却往往只能选预设模板、自由度低、成品同质化严重。banana-slides 基于 Google 的 nano banana pro 图像生成模型,打造了一款「原生 Vibe PPT」应用:支持一句话 、大纲 、页面描述 三种创作路径,上传任意模板与素材、智能解析 PDF/Docx/MD 等文件,用自然语言口头修改 指定区域(如「把第三页改成案例分析」「把这个图换成饼图」),并一键导出 PPTX 或 PDF ,甚至支持可编辑 PPTX(Beta),让文字与图片在 PowerPoint 中可自由修改。项目采用 React + Flask 全栈架构,Docker 一键部署,面向小白、职场人士、教育工作者等多类用户,目标是「降低 PPT 制作门槛,让每个人都能快速创作出美观专业的演示文稿」。
你将学到什么
- banana-slides 的定位:基于 nano banana pro 的原生 AI PPT 生成应用,迈向真正的「Vibe PPT」
- 三种创作路径:想法、大纲、页面描述,以及 Vibe 式自然语言编辑
- 素材解析能力:多格式上传、智能提取、风格参考
- 技术架构:React + Vite + Flask + SQLite + Gemini API
- 与 notebooklm slide deck 的对比与项目优势
前置知识
- 会使用 Docker 或 Node.js、Python 开发环境
- 了解大模型 API(如 Gemini、OpenAI)的基本使用
- 若自建部署,需申请 Google Gemini API Key(图片生成需付费层级)或通过 AIHubMix 等代理获取
项目背景
项目简介
banana-slides 是一款基于 nano banana pro (Google Gemini 系列图像生成模型)的原生 AI PPT 生成应用 。它支持从想法 、大纲 、页面描述 三种路径创建演示文稿,自动提取附件中的图表与文字,上传任意模板图片定制风格,并通过自然语言口头修改 指定区域或整页内容。生成结果可一键导出为标准 PPTX 或 PDF ,并支持可编辑 PPTX(Beta):导出后的页面中文字与图片可在 PowerPoint 中自由编辑,文字样式(字号、颜色、加粗等)尽量还原。项目 slogan 为「Vibe your PPT like vibing code」,旨在同时满足「快」和「美」两大 PPT 制作需求,解决传统 AI PPT 工具模板固定、自由度低、同质化严重等问题。
面向的用户群体:
- 小白:零门槛快速生成美观 PPT,无需设计经验
- PPT 专业人士:参考 AI 生成的布局与图文组合,获取设计灵感
- 教育工作者:将教学内容快速转换为配图教案
- 学生:快速完成作业 Pre,专注内容而非排版
- 职场人士:商业提案、产品介绍快速可视化
作者/团队介绍
- 组织 :Anionex (GitHub)
- 官网 :bananaslides.online
- 社区:README 中提供微信交流群;赞助方包括 AIHubMix、AI 火宝、雨云等
- 商业许可:AGPL-3.0 下个人/教育/非营利免费;商业闭源或私有化部署需联系作者获取 Commercial License
项目数据
- ⭐ GitHub Stars: 12.1k+
- 🍴 Forks: 1.4k+
- 📦 版本: v0.4.0(2026 年 2 月)
- 📄 License: AGPL-3.0
- 🌐 官网 : bananaslides.online
- 🐳 Docker: 支持 amd64 / arm64,提供预构建镜像
主要功能
核心作用
banana-slides 的核心作用是用自然语言与素材驱动,快速生成高质量、可编辑的 PPT:
- 多路径创作:从一句话想法、结构化大纲或逐页描述起步,AI 自动补全大纲与页面内容
- 素材解析:上传 PDF、Docx、MD、Txt 等文件,自动提取关键点、图片链接、图表信息,作为生成素材
- 风格定制:上传参考图片或模板,控制整体视觉风格
- Vibe 式编辑:用自然语言口头修改(如「把第三页改成案例分析」「把这个图换成饼图」),AI 实时响应
- 导出:一键导出 PPTX 或 PDF;可编辑 PPTX 模式下,文字与图片可在 PowerPoint 中自由修改
使用场景
- 汇报/提案:明天就要汇报,输入主题或大纲,快速生成专业 PPT
- 教案制作:将教学内容或文档上传,自动生成配图教案
- 作业 Pre:学生输入主题,把精力放在内容而非排版
- 设计灵感:专业人士参考 AI 生成的布局与图文组合
- 多轮迭代:生成后口头提出修改,无需反复点菜单
快速开始
推荐:Docker Compose 部署
bash
git clone https://github.com/Anionex/banana-slides
cd banana-slides
cp .env.example .env
# 编辑 .env,配置 GOOGLE_API_KEY(或 AIHubMix 等代理)
docker compose -f docker-compose.prod.yml up -d
访问 http://localhost:3000 使用前端,后端 API 在 http://localhost:5000。
环境变量示例(Gemini 格式):
env
AI_PROVIDER_FORMAT=gemini
GOOGLE_API_KEY=your-api-key-here
GOOGLE_API_BASE=https://generativelanguage.googleapis.com
# 代理示例: https://aihubmix.com/gemini
从源码部署 :需 Python 3.10+、uv、Node.js 16+;后端 uv sync 后 uv run python app.py,前端 npm install 后 npm run dev。
核心特性
- 三种创作路径:想法(一句话生成大纲与描述)、大纲(手动或 AI 生成)、页面描述(逐页控制)
- 自然语言编辑:口头修改大纲或描述(如「把第三页改成案例分析」),AI 实时调整
- 多格式素材解析:PDF、Docx、MD、Txt 上传,自动解析关键点、图片、图表
- 风格参考:上传模板或参考图,定制 PPT 视觉风格
- 局部重绘:框选不满意区域,口头描述修改(如「把这个图换成饼图」)
- 整页优化:基于 nano banana pro 生成高清、风格统一的页面
- 多格式导出:PPTX、PDF,默认 16:9,可直接演示
- 可编辑 PPTX(Beta) :导出高还原度、背景干净的可编辑页面,文字样式尽量保留;需配置百度 OCR API 获得更好效果(见 issue #121)
- 多模型支持:Gemini、OpenAI、Vertex AI、Lazyllm(可混用 DeepSeek、豆包、通义等)
- 国际化与暗黑模式:中英文切换,亮色/暗色/跟随系统主题
项目优势
与 notebooklm slide deck 对比(README 官方对比,可能随版本更新):
| 功能 | notebooklm | banana-slides |
|---|---|---|
| 页数上限 | 15 页 | 无限制 |
| 二次编辑 | 不支持 | 框选编辑 + 口头编辑 |
| 素材添加 | 生成后无法添加 | 生成后自由添加 |
| 导出格式 | 仅 PDF | PDF + 可编辑 PPTX |
| 水印 | 免费版有水印 | 无水印,自由增删元素 |
为什么选择 banana-slides?
- 真正的 Vibe:基于 nano banana pro,图文质量与一致性较好,能精确渲染 prompt 中的文字并遵循参考图风格
- 灵活创作:不局限于预设模板,支持上传任意素材与模板,多轮口头修改
- 可编辑导出:支持导出可在 PowerPoint 中自由编辑的 PPTX,而非仅图片堆叠
- 开源可自建:Docker 一键部署,可私有化;支持多种大模型 API,便于成本与合规控制
项目详细剖析
技术架构
前端:React 18 + TypeScript + Vite 5,Zustand 状态管理,React Router v6,Tailwind CSS,@dnd-kit 拖拽,Lucide React 图标,Axios HTTP 客户端。
后端:Python 3.10+,Flask 3.0,uv 包管理,SQLite + Flask-SQLAlchemy,Google Gemini API(或 OpenAI/Vertex/Lazyllm),python-pptx 处理 PPT,Pillow 图片处理,ThreadPoolExecutor 并发,Flask-CORS 跨域。
AI 能力 :文本生成(大纲、描述等)与图片生成(页面渲染)均依赖大模型;图片生成核心为 nano banana pro,需支持图像生成的 API(Gemini 免费层仅支持文本,不支持图片)。
项目结构
- frontend/ :React 应用,
pages/含 Home、OutlineEditor、DetailEditor、SlidePreview、History;components/含 outline、preview、shared、layout、history;store/为 Zustand;api/为接口封装 - backend/ :Flask 应用,
models/含 Project、Page、Task、Material、UserTemplate、ReferenceFile、PageImageVersion;services/含 ai_service、file_service、file_parser_service、export_service、task_manager、prompts;controllers/为 REST API - tests/ :测试;v0_demo/ :早期演示;output/:导出文件
关键实现
- 创作流程:想法 → AI 生成大纲 → 生成逐页描述 → 调用 nano banana pro 生成页面图片 → 组装 PPT
- 素材解析 :
file_parser_service解析 PDF/Docx/MD/Txt,提取文本、图片、图表,供生成时引用 - 可编辑 PPTX:将生成图片中的文字通过 OCR 识别,还原为可编辑文本框,并尽量保留字号、颜色、加粗等样式;需百度 OCR API 等支持(详见 issue #121)
- 多模型支持 :通过
AI_PROVIDER_FORMAT与Lazyllm配置,可混用不同厂商的文本与图像模型
开发计划(节选)
- ✅ 已完成:三种路径创建、Markdown 图片解析、单页素材添加、框选 Vibe 编辑、多种文件解析、可编辑 PPTX 导出
- 🔄 进行中:多层次精确抠图的可编辑导出、网络搜索、Agent 模式
- 🧭 规划中:在线播放、动画与页面切换、多语种支持
- 🏢 商业版:用户系统
项目地址与资源
官方资源
- 🌟 GitHub : github.com/Anionex/ban...
- 🌐 官网 : bananaslides.online
- 📄 英文 README : README_EN.md
- 🐛 Issues : GitHub Issues
- 📋 可编辑 PPTX 说明 : issue #121
- 📖 新人部署教程 : @ShellMonster 的教程
相关资源
- AIHubMix(多模型 API 代理,降低迁移成本)
- 百度智能云 OCR(可编辑导出优化)
- uv(Python 包管理器)
- nano banana pro(Google Gemini 图像生成)
适用人群
- 需要快速做 PPT 的用户:汇报、提案、教案、作业 Pre 等
- 希望「快且美」的创作者:不愿被固定模板束缚,需要多轮自然语言修改
- 技术团队:希望自建 AI PPT 服务,控制数据与成本
- 对 Vibe PPT、nano banana 生态感兴趣的开发者:学习全栈 AI 应用架构与多模型集成
欢迎来我中的个人主页找到更多有用的知识和有趣的产品