AB

anionex/banana-slides

Developer tools
15.9K stars Quality 74 Trend 63AGPL-3.0

一站式原生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"应用呢?

👨‍💻 适用场景

  1. 小白:零门槛快速生成美观PPT,无需设计经验,减少模板选择烦恼
  2. PPT专业人士:参考AI生成的布局和图文元素组合,快速获取设计灵感
  3. 教育工作者:将教学内容快速转换为配图教案PPT,提升课堂效果
  4. 学生:快速完成作业Pre,把精力专注于内容而非排版美化
  5. 职场人士:商业提案、产品介绍快速可视化,多场景快速适配

🎯目标: 降低 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迭代中)

6. 一键导出讲解视频

  • 一键将幻灯片转换为带 AI 语音旁白和字幕的讲解视频(MP4)
  • AI 自动根据页面描述和内容生成口语化旁白
  • 支持配置多种表达风格、多语言和多种音色

🌟和notebooklm slide deck功能对比

功能 notebooklm 本项目
页数上限 15页 无限制
二次编辑 提示词修改 框选编辑+口头编辑
素材添加 生成后无法添加 生成后自由添加
导出格式 支持导出为 PDF、(不可编辑图片)pptx 导出为PDF、(图片or可编辑)pptx、讲解视频
水印 免费版有水印 无水印,自由增删元素

注:随着新功能添加,对比可能过时

🗺️ 开发计划

状态 里程碑
✅ 已完成 PPT 单页添加更多素材
✅ 已完成 PPT 单页框选区域Vibe口头编辑
✅ 已完成 素材模块: 素材生成、上传等
✅ 已完成 支持多种文件的上传+解析
✅ 已完成 支持Vibe口头调整大纲和描述
✅ 已完成 初步支持可编辑版本pptx文件导出
🔄 进行中 支持多层次、精确抠图的可编辑pptx导出
🔄 进行中 网络搜索
🔄 进行中 Agent 模式
✅ 已完成 TTS 讲解视频导出(中/英/日多音色、字幕)

📦 使用方法

(新)使用应用模板一键部署

这是最简单的方式,无需安装docker或下载项目,创建后可直接进入应用

  1. 通过雨云一键部署和启动本应用 (带宽大,适合高清图片生成和下载。新用户有免费试用)

  1. 敬请期待

使用 Docker Compose🐳

通过docker compose快速启动前后端服务。

  1. 克隆代码仓库
git clone https://github.com/Anionex/banana-slides
cd banana-slides
  1. 配置环境变量

创建 .env 文件(参考 .env.example):

cp .env.example .env

(可选, 也可以启动后在用户界面配置,教程可点击此处) 编辑 .env 文件,配置必要的环境变量:

使用新版可编辑导出配置方法,获得更好的可编辑导出效果: 需在百度智能云平台(点击此处进入)中获取API KEY,填写在.env文件中的BAIDU_API_KEY字段(有充足的免费使用额度)。详见https://github.com/Anionex/banana-slides/issues/121 中的说明

  1. 启动服务

⚡ 使用预构建镜像(推荐)

项目在 Docker Hub 提供了构建好的前端和后端镜像(同步主分支最新版本),可以跳过本地构建步骤,实现快速部署:

# 使用预构建镜像启动(无需从头构建)
docker compose -f docker-compose.prod.yml up -d

镜像名称:

  • anoinex/banana-slides-frontend:latest
  • anoinex/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/
  1. 访问应用
  1. 查看日志
# 查看后端日志(最后 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
  1. 停止服务
docker compose down
  1. 更新项目

使用预构建镜像(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 在容器重建后会丢失,需重新安装。

后端安装

  1. 克隆代码仓库
git clone https://github.com/Anionex/banana-slides
cd banana-slides
  1. 安装 uv(如果尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 安装依赖

在项目根目录下运行:

# 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 自动安装所有依赖。

  1. 配置环境变量

复制环境变量模板:

cp .env.example .env
# 然后按照前述方法,打开编辑 `.env` 文件,配置你的 API 密钥

前端安装

  1. 进入前端目录
cd frontend
  1. 安装依赖
npm install
  1. 配置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]

致谢

  • 项目贡献者们:

赞赏

开源不易🙏如果本项目对你有价值,欢迎请开发者喝杯咖啡☕️

感谢以下朋友对项目的无偿赞助支持:

@雅俗共赏、@曹峥、@以年观日、@John、@胡yun星Ethan, @azazo1、@刘聪NLP、@🍟、@苍何、@万瑾、@biubiu、@law、@方源、@寒松Falcon、@刘星宇&小陀螺AIGC 如对赞助列表有疑问,可联系作者

📈 项目统计

View the full README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add anionex/banana-slides
New to MCP? Start with the mcpskill.org guide →