一天一个开源项目(第30篇):banana-slides - 基于 nano banana pro 的原生 AI PPT 生成应用

引言

"Vibe your PPT like vibing code."

这是"一天一个开源项目"系列的第30篇文章。今天带你了解的项目是 banana-slidesGitHub),由 Anionex 开源。

你是否也曾陷入这样的困境:明天就要汇报,但 PPT 还是一片空白;脑中有无数精彩的想法,却被繁琐的排版和设计消磨掉所有热情?传统 AI PPT 工具虽然能「快」,却往往只能选预设模板、自由度低、成品同质化严重。banana-slides 基于 Google 的 nano banana pro 图像生成模型,打造了一款「原生 Vibe PPT」应用:支持一句话大纲页面描述 三种创作路径,上传任意模板与素材、智能解析 PDF/Docx/MD 等文件,用自然语言口头修改 指定区域(如「把第三页改成案例分析」「把这个图换成饼图」),并一键导出 PPTXPDF ,甚至支持可编辑 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 生成应用 。它支持从想法大纲页面描述 三种路径创建演示文稿,自动提取附件中的图表与文字,上传任意模板图片定制风格,并通过自然语言口头修改 指定区域或整页内容。生成结果可一键导出为标准 PPTXPDF ,并支持可编辑 PPTX(Beta):导出后的页面中文字与图片可在 PowerPoint 中自由编辑,文字样式(字号、颜色、加粗等)尽量还原。项目 slogan 为「Vibe your PPT like vibing code」,旨在同时满足「快」和「美」两大 PPT 制作需求,解决传统 AI PPT 工具模板固定、自由度低、同质化严重等问题。

面向的用户群体

  • 小白:零门槛快速生成美观 PPT,无需设计经验
  • PPT 专业人士:参考 AI 生成的布局与图文组合,获取设计灵感
  • 教育工作者:将教学内容快速转换为配图教案
  • 学生:快速完成作业 Pre,专注内容而非排版
  • 职场人士:商业提案、产品介绍快速可视化

作者/团队介绍

  • 组织AnionexGitHub
  • 官网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

  1. 多路径创作:从一句话想法、结构化大纲或逐页描述起步,AI 自动补全大纲与页面内容
  2. 素材解析:上传 PDF、Docx、MD、Txt 等文件,自动提取关键点、图片链接、图表信息,作为生成素材
  3. 风格定制:上传参考图片或模板,控制整体视觉风格
  4. Vibe 式编辑:用自然语言口头修改(如「把第三页改成案例分析」「把这个图换成饼图」),AI 实时响应
  5. 导出:一键导出 PPTX 或 PDF;可编辑 PPTX 模式下,文字与图片可在 PowerPoint 中自由修改

使用场景

  1. 汇报/提案:明天就要汇报,输入主题或大纲,快速生成专业 PPT
  2. 教案制作:将教学内容或文档上传,自动生成配图教案
  3. 作业 Pre:学生输入主题,把精力放在内容而非排版
  4. 设计灵感:专业人士参考 AI 生成的布局与图文组合
  5. 多轮迭代:生成后口头提出修改,无需反复点菜单

快速开始

推荐: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 syncuv run python app.py,前端 npm installnpm run dev

核心特性

  1. 三种创作路径:想法(一句话生成大纲与描述)、大纲(手动或 AI 生成)、页面描述(逐页控制)
  2. 自然语言编辑:口头修改大纲或描述(如「把第三页改成案例分析」),AI 实时调整
  3. 多格式素材解析:PDF、Docx、MD、Txt 上传,自动解析关键点、图片、图表
  4. 风格参考:上传模板或参考图,定制 PPT 视觉风格
  5. 局部重绘:框选不满意区域,口头描述修改(如「把这个图换成饼图」)
  6. 整页优化:基于 nano banana pro 生成高清、风格统一的页面
  7. 多格式导出:PPTX、PDF,默认 16:9,可直接演示
  8. 可编辑 PPTX(Beta) :导出高还原度、背景干净的可编辑页面,文字样式尽量保留;需配置百度 OCR API 获得更好效果(见 issue #121
  9. 多模型支持:Gemini、OpenAI、Vertex AI、Lazyllm(可混用 DeepSeek、豆包、通义等)
  10. 国际化与暗黑模式:中英文切换,亮色/暗色/跟随系统主题

项目优势

与 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/:导出文件

关键实现

  1. 创作流程:想法 → AI 生成大纲 → 生成逐页描述 → 调用 nano banana pro 生成页面图片 → 组装 PPT
  2. 素材解析file_parser_service 解析 PDF/Docx/MD/Txt,提取文本、图片、图表,供生成时引用
  3. 可编辑 PPTX:将生成图片中的文字通过 OCR 识别,还原为可编辑文本框,并尽量保留字号、颜色、加粗等样式;需百度 OCR API 等支持(详见 issue #121)
  4. 多模型支持 :通过 AI_PROVIDER_FORMATLazyllm 配置,可混用不同厂商的文本与图像模型

开发计划(节选)

  • ✅ 已完成:三种路径创建、Markdown 图片解析、单页素材添加、框选 Vibe 编辑、多种文件解析、可编辑 PPTX 导出
  • 🔄 进行中:多层次精确抠图的可编辑导出、网络搜索、Agent 模式
  • 🧭 规划中:在线播放、动画与页面切换、多语种支持
  • 🏢 商业版:用户系统

项目地址与资源

官方资源

相关资源

适用人群

  • 需要快速做 PPT 的用户:汇报、提案、教案、作业 Pre 等
  • 希望「快且美」的创作者:不愿被固定模板束缚,需要多轮自然语言修改
  • 技术团队:希望自建 AI PPT 服务,控制数据与成本
  • 对 Vibe PPT、nano banana 生态感兴趣的开发者:学习全栈 AI 应用架构与多模型集成

欢迎来我中的个人主页找到更多有用的知识和有趣的产品

相关推荐
冬奇Lab2 小时前
Plugin 扩展实战:增强 Claude Code 的能力
人工智能·ai编程·claude
大好人ooo2 小时前
企业级LLM评估与测试
人工智能
coding者在努力2 小时前
LangChain简介,最直白的介绍
人工智能·python·语言模型·langchain
福大大架构师每日一题2 小时前
dify 1.13.0——Human-in-the-Loop与工作流执行架构全面升级,释放AI与人的协作潜力
人工智能·架构
文艺倾年2 小时前
【强化学习&SWE】如何无容器化进行强化学习训练
人工智能·分布式·大模型
ZhengEnCi2 小时前
06. Embedding模型与向量化
人工智能
人机与认知实验室2 小时前
人类智能中依然存在还未被发现的新机制
人工智能
Dr.AE3 小时前
AI+教育行业分析报告
大数据·人工智能·教育电商
永无魇足3 小时前
感知器算法
人工智能