香蕉幻灯片 🍌
让你的PPT像代码一样有感觉。
一个基于 Google Gemini (nano banana pro) 的原生AI驱动的PPT生成应用,旨在成为真正的“Vibe PPT”体验。它降低了每个人创建精美、专业演示文稿的门槛。
GitHub: https://github.com/Anionex/banana-slides
许可证: MIT | Star: 480+ | Fork: 72+
🧩 项目背景
传统的AI PPT生成器在速度和质量之间难以取得平衡。常见问题包括:
- 仅提供预设模板——缺乏灵活的风格控制
- 多轮迭代编辑的自由度低
- 输出同质化,看起来都一样
- 低质量、通用的素材
- 文本-图像布局差,缺乏设计感
Google Gemini (nano banana pro) 的出现改变了这一局面。其图像生成能力可以准确渲染所有请求的文本内容,同时忠实地遵循参考图像的风格——使其成为原生“Vibe PPT”应用程序的核心引擎的理想选择。
✨ 主要功能
1. 三种创建路径
- 从想法: 输入一个句子或一个粗略的概念 → 自动生成完整大纲 + 幻灯片描述 + 最终幻灯片
- 从大纲: 粘贴现有大纲 → AI扩展为每页详细描述
- 从描述: 直接提供每页描述 → 即时生成幻灯片图像
2. 自然语言编辑
- 口头指示修改单个幻灯片或幻灯片内的选定区域
- 拖放重排大纲卡片
- Vibe风格的口头编辑大纲和页面描述
3. 智能素材与模板支持
- 上传任何参考图像、截图或旧PPT幻灯片作为风格/内容参考
- 上传文档(PDF, DOCX, MD, TXT)——后端使用MinerU + 多模态LLM自动解析文本和图像
- 自动提取Markdown文本中嵌入的图像链接
4. 高质量幻灯片生成
- 由Gemini图像生成驱动:高清、风格一致的幻灯片设计
- 并行处理,实现更快的跨页生成
5. 导出选项
- PPTX: 标准PowerPoint格式
- PDF: 方便快速分享和演示
- 默认16:9宽高比,适用于所有主流显示器
🛠️ 技术栈
前端
| 技术 | 用途 |
|---|---|
| React 18 + TypeScript | UI框架 |
| Vite 5 | 构建工具 |
| Zustand | 状态管理 |
| React Router v6 | 路由 |
| Tailwind CSS | 样式 |
| @dnd-kit | 拖放 |
| Axios | HTTP客户端 |
后端
| 技术 | 用途 |
|---|---|
| Python 3.10+ / Flask 3.0 | API服务器 |
| Google Gemini API | AI图像和文本生成 |
| SQLite + Flask-SQLAlchemy | 数据持久化 |
| python-pptx | PPTX导出 |
| Pillow | 图像处理 |
| ThreadPoolExecutor | 并发幻灯片生成 |
| uv | Python包管理 |
🏗️ 架构概览
banana-slides/
├── frontend/ # React + TypeScript SPA
│ ├── pages/ # Home, OutlineEditor, DetailEditor, SlidePreview, History
│ ├── components/ # Shared UI components, outline/preview widgets
│ ├── store/ # Zustand state management
│ └── api/ # Axios client + endpoint definitions
│
├── backend/ # Flask REST API
│ ├── models/ # Project, Page, Task, Material, Template, ReferenceFile
│ ├── services/ # AI service (Gemini), file parser, export, task manager
│ ├── controllers/ # Route handlers for all resources
│ └── utils/ # Response helpers, validators, path utils
│
├── docker-compose.yml # One-command deployment
└── pyproject.toml # Python project config (uv managed)
🚀 快速开始
Docker Compose (推荐)
git clone https://github.com/Anionex/banana-slides
cd banana-slides
cp .env.example .env
# 编辑.env并添加你的GOOGLE_API_KEY
docker compose up -d
- 前端: http://localhost:3000
- 后端API: http://localhost:5000
从源码构建
后端:
uv sync
cp .env.example .env # 配置GOOGLE_API_KEY
cd backend && uv run python app.py
前端:
cd frontend
npm install
npm run dev
🎯 用途
- 非设计师: 零门槛创建精美PPT,无需设计经验
- PPT专业人士: 从AI生成的设计中快速获得布局灵感
- 教育工作者: 将教学内容转化为图文并茂的课程幻灯片
- 学生: 快速完成演示文稿作业,专注于内容而非格式
- 商务人士: 快速可视化提案和产品演示
📄 许可证
MIT License — 个人和商业用途均免费。