一站式原生AI PPT生成应用,几分钟内生成一套幻灯片; 支持上传任意模板图片,上传任意素材&智能解析,一句话/大纲/页面描述自动生成PPT,口头修改指定区域、一键导出可编辑ppt、视频等 - An AI-native slides generator based on nano banana pro🍌
Overview
[//]: # "Banana Slides is an AI-native PPT generation app for creating editable presentations from ideas, outlines, documents, images, and custom templates. Features: prompt-to-slide generation, template control, material parsing, conversational editing, PPTX export, project history, and reproducible workflows. Quick Start / Install / Usage / Demo / API / Deploy / Architecture / Test / Screenshot guides are provided for local Docker deployment and online use." 一个基于 nano banana pro 🍌 的原生 AI PPT 生成应用 在几分钟内从想法到演示文稿,无需繁琐排版、口头提出修改,迈向真正的 "Vibe PPT" 🚀 在线 Demo | 📖 文档 | 💻 桌面版 RC6 | 部署方法 如果该项目对你有用,欢迎 Star 🌟 & Fork 🍴 感谢 AIHubMix 赞助本项目!AIHubMix 是稳定、高并发的 AI 大模型 API 聚合平台,一个 API Key 即可接入 Claude、GPT、Gemini、DeepSeek 等主流模型,兼容多种协议。注册时,海外用户请使用 AIHubMix 入口 ,中国大陆用户请使用 Inferera 入口 。 感谢 APIMart 赞助了本项目!APIMart 是专注 AI 图片/视频生成的低价 API 平台,GPT-Image-2 低至 $0.006/张,1 美元可出图 160+ 张。图片、视频一套异步 API 通吃,提交任务拿 ID、回调取结果,跑批万张不超时、换模型不改代码。按量付费、无月费,通过此 注册链接 注册即可开用。 感谢 火山引擎 赞助了本项目!
README
基于图像生成模型的原生 AI PPT 应用, 几分钟内将想法变成演示文稿, 无需繁琐排版,用自然语言修改,迈向真正的「Vibe PPT」。
❤️ 赞助商
🔥 最新动态
项目缘起
你是否也曾陷入这样的困境:明天就要汇报,但PPT还是一片空白;脑中有无数精彩的想法,却被繁琐的排版和设计消磨掉所有热情?
我(们)渴望能快速创作出既专业又具设计感的演示文稿,传统的AI PPT生成app,虽然大体满足“快”这一需求,却还存在以下问题:
- 1️⃣只能选择预设模版,无法灵活调整风格
- 2️⃣自由度低,多轮改动难以进行
- 3️⃣成品观感相似,同质化严重
- 4️⃣素材质量较低,缺乏针对性
- 5️⃣图文排版割裂,设计感差
以上这些缺陷,让传统的AI ppt生成器难以同时满足我们“快”和“美”的两大PPT制作需求。即使自称Vibe PPT,但是在我的眼中还远不够“Vibe”。
但是,nano banana🍌模型的出现让一切有了转机。我尝试使用🍌pro进行ppt页面生成,发现生成的结果无论是质量、美感还是一致性,都做的非常好,且几乎能精确渲染prompt要求的所有文字+遵循参考图的风格。那为什么不基于🍌pro,做一个原生的"Vibe PPT"应用呢?
👨💻 适用场景
- 小白:零门槛快速生成美观PPT,无需设计经验,减少模板选择烦恼
- PPT专业人士:参考AI生成的布局和图文元素组合,快速获取设计灵感
- 教育工作者:将教学内容快速转换为配图教案PPT,提升课堂效果
- 学生:快速完成作业Pre,把精力专注于内容而非排版美化
- 职场人士:商业提案、产品介绍快速可视化,多场景快速适配
🎯目标: 降低 PPT 制作门槛,让每个人都能快速创作出美观专业的演示文稿
结果案例
更多可见 使用案例
🎯 功能介绍
1. 灵活多样的创作路径
支持想法、大纲、页面描述三种起步方式,满足不同创作习惯。
- 一句话生成:输入一个主题,AI 自动生成结构清晰的大纲和逐页内容描述。
- 自然语言编辑:支持以 Vibe 形式口头修改大纲或描述(如"把第三页改成案例分析"),AI 实时响应调整。
- 大纲/描述模式:既可一键批量生成,也可手动调整细节。
2. 强大的素材解析能力
- 多格式支持:上传 PDF/Docx/MD/Txt 等文件,后台自动解析内容。
- 智能提取:自动识别文本中的关键点、图片链接和图表信息,为生成提供丰富素材。
- 图片自动入库:文档解析出的图片会随参考文件关联项目后自动进入项目素材库,后续可直接复用。
- 风格参考:支持上传参考图片或模板,定制 PPT 风格。
3. “Vibe” 式自然语言修改
不再受限于复杂的菜单按钮,直接通过自然语言下达修改指令。
- 局部重绘:对不满意的区域进行口头式修改(如"把这个图换成饼图")。
- 整页优化:基于 nano banana pro🍌 生成高清、风格统一的页面。
4. 开箱即用的格式导出
- 多格式支持:一键导出标准 PPTX 或 PDF 文件。
- 播放设置:导出 PPTX 前可开启页面切换动画,支持淡入淡出等经典效果
- 完美适配:默认 16:9 比例,排版无需二次调整,直接演示。
5. 可自由编辑的pptx导出(Beta迭代中)
- 导出图像为高还原度、背景干净的、可自由编辑图像和文字的PPT页面
- 相关更新见 https://github.com/Anionex/banana-slides/issues/121
6. 一键导出讲解视频
- 一键将幻灯片转换为带 AI 语音旁白和字幕的讲解视频(MP4)
- AI 自动根据页面描述和内容生成口语化旁白
- 支持配置多种表达风格、多语言和多种音色
🌟和notebooklm slide deck功能对比
| 功能 | notebooklm | 本项目 |
|---|---|---|
| 页数上限 | 15页 | 无限制 |
| 二次编辑 | 提示词修改 | 框选编辑+口头编辑 |
| 素材添加 | 生成后无法添加 | 生成后自由添加 |
| 导出格式 | 支持导出为 PDF、(不可编辑图片)pptx | 导出为PDF、(图片or可编辑)pptx、讲解视频 |
| 水印 | 免费版有水印 | 无水印,自由增删元素 |
注:随着新功能添加,对比可能过时
🗺️ 开发计划
| 状态 | 里程碑 |
|---|---|
| ✅ 已完成 | PPT 单页添加更多素材 |
| ✅ 已完成 | PPT 单页框选区域Vibe口头编辑 |
| ✅ 已完成 | 素材模块: 素材生成、上传等 |
| ✅ 已完成 | 支持多种文件的上传+解析 |
| ✅ 已完成 | 支持Vibe口头调整大纲和描述 |
| ✅ 已完成 | 初步支持可编辑版本pptx文件导出 |
| 🔄 进行中 | 支持多层次、精确抠图的可编辑pptx导出 |
| 🔄 进行中 | 网络搜索 |
| 🔄 进行中 | Agent 模式 |
| ✅ 已完成 | TTS 讲解视频导出(中/英/日多音色、字幕) |
📦 使用方法
(新)使用应用模板一键部署
这是最简单的方式,无需安装docker或下载项目,创建后可直接进入应用
- 通过雨云一键部署和启动本应用 (带宽大,适合高清图片生成和下载。新用户有免费试用)
- 敬请期待
使用 Docker Compose🐳
通过docker compose快速启动前后端服务。
- 克隆代码仓库
git clone https://github.com/Anionex/banana-slides
cd banana-slides
- 配置环境变量
创建 .env 文件(参考 .env.example):
cp .env.example .env
(可选, 也可以启动后在用户界面配置,教程可点击此处) 编辑 .env 文件,配置必要的环境变量:
使用新版可编辑导出配置方法,获得更好的可编辑导出效果: 需在百度智能云平台(点击此处进入)中获取API KEY,填写在.env文件中的BAIDU_API_KEY字段(有充足的免费使用额度)。详见https://github.com/Anionex/banana-slides/issues/121 中的说明
- 启动服务
⚡ 使用预构建镜像(推荐)
项目在 Docker Hub 提供了构建好的前端和后端镜像(同步主分支最新版本),可以跳过本地构建步骤,实现快速部署:
# 使用预构建镜像启动(无需从头构建)
docker compose -f docker-compose.prod.yml up -d
镜像名称:
anoinex/banana-slides-frontend:latestanoinex/banana-slides-backend:latest
启动后可在应用内进入 设置 → 关于 → 检查更新,应用会根据当前版本 SHA 判断是否已有可用更新;源码运行时也会用当前 Git SHA 参与判断。
从头构建镜像
docker compose up -d
[!TIP] 如遇网络问题,可在
.env文件中取消镜像源配置的注释, 再重新运行启动命令:# 在 .env 文件中取消以下注释即可使用国内镜像源 DOCKER_REGISTRY=docker.1ms.run/ GHCR_REGISTRY=ghcr.nju.edu.cn/ APT_MIRROR=mirrors.aliyun.com PYPI_INDEX_URL=https://mirrors.cloud.tencent.com/pypi/simple NPM_REGISTRY=https://registry.npmmirror.com/
- 访问应用
- 前端:http://localhost:3011
- 后端 API:http://localhost:5011
- 查看日志
# 查看后端日志(最后 200 行)
docker logs --tail 200 banana-slides-backend
# 实时查看后端日志(最后 100 行)
docker logs -f --tail 100 banana-slides-backend
# 查看前端日志(最后 100 行)
docker logs --tail 100 banana-slides-frontend
- 停止服务
docker compose down
- 更新项目
使用预构建镜像(docker-compose.prod.yml)
也可以先在应用内进入 设置 → 关于 → 检查更新 查看是否已有新版本。
docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -d
使用本地构建(docker-compose.yml)
注:若手动修改了代码,该方法不适用,需要先将代码还原到拉取时的版本。
git pull
docker compose down
docker compose build --no-cache
docker compose up -d
注:感谢优秀开发者朋友 @ShellMonster 提供了新人部署教程,专为没有任何服务器部署经验的新手设计,可点击链接查看。
从源码部署
环境要求
- Python 3.10 或更高版本
- uv - Python 包管理器
- Node.js 16+ 和 npm
- FFmpeg - 讲解视频导出必需,且必须包含
libass/ass字幕滤镜支持 - 有效的 Google Gemini API 密钥
- (可选)LibreOffice - 使用「PPT 翻新」功能上传 PPTX 文件时需要,用于将 PPTX 转换为 PDF。推荐先在本地将 PPTX 转为 PDF 后再上传,原因:LibreOffice 在服务端渲染时可能因缺少字体(如微软雅黑、Calibri 等)导致排版错位,且无法完整还原部分特效。上传 PDF 文件则不需要 LibreOffice。Docker 用户如仍需在容器内支持 PPTX 上传,可执行:
docker exec -it banana-slides-backend bash -c "apt-get update && apt-get install -y libreoffice-impress && rm -rf /var/lib/apt/lists/*"注意:此方式安装的 LibreOffice 在容器重建后会丢失,需重新安装。
后端安装
- 克隆代码仓库
git clone https://github.com/Anionex/banana-slides
cd banana-slides
- 安装 uv(如果尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
- 安装依赖
在项目根目录下运行:
# macOS(Homebrew)
brew install ffmpeg-full
brew unlink ffmpeg 2>/dev/null || true
brew link --overwrite --force ffmpeg-full
# Ubuntu / Debian
sudo apt-get update
sudo apt-get install -y ffmpeg libass9
# 然后安装 Python 依赖
uv sync
这将根据 pyproject.toml 自动安装所有依赖。
- 配置环境变量
复制环境变量模板:
cp .env.example .env
# 然后按照前述方法,打开编辑 `.env` 文件,配置你的 API 密钥
前端安装
- 进入前端目录
cd frontend
- 安装依赖
npm install
- 配置API地址
前端会通过 Vite proxy 自动连接到 BACKEND_PORT 指定的后端服务(默认 http://localhost:5011)。如需修改,请在项目根目录的 .env 中设置 BACKEND_PORT。
启动后端服务
(可选)如果本地已有重要数据,升级前建议先备份数据库:
cp backend/instance/database.db backend/instance/database.db.bak备注: 默认配置下,模板、素材、成品都在uploads/文件夹中
cd backend
uv run alembic upgrade head && uv run python app.py
后端服务将在 http://localhost:5011 启动。
访问 http://localhost:5011/health 验证服务是否正常运行。
启动前端开发服务器
cd frontend
npm run dev
前端开发服务器将在 http://localhost:3011 启动。
打开浏览器访问即可使用应用。
交流群
↑ 返回顶部
欢迎在群中提出新功能建议或反馈~
欢迎关注作者的社交媒体,我会分享有关本项目和有关AI的信息:
🔧 常见问题
可见官网文档
也可以直接到 DeepWiki 提问
🤝 贡献指南
欢迎通过 Issue 和 Pull Request 为本项目贡献力量!
重要: 贡献前请阅读 CONTRIBUTING.md
📄 许可证
本项目采用 GNU Affero General Public License v3.0(AGPL-3.0) 开源, 可自由用于个人学习、研究、试验、教育或非营利科研活动等非商业用途;闭源商业用途需获取授权。
如有疑问或合作意向、获取多租户商业版本,可联系: [email protected]
致谢
- 项目贡献者们:
- Linux.do: 新的理想型社区
赞赏
开源不易🙏如果本项目对你有价值,欢迎请开发者喝杯咖啡☕️
感谢以下朋友对项目的无偿赞助支持:
@雅俗共赏、@曹峥、@以年观日、@John、@胡yun星Ethan, @azazo1、@刘聪NLP、@🍟、@苍何、@万瑾、@biubiu、@law、@方源、@寒松Falcon、@刘星宇&小陀螺AIGC 如对赞助列表有疑问,可联系作者
📈 项目统计
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add anionex/banana-slides