NanoBanana PPT Skills

AI-powered tool for automatically generating high-quality PPT images and videos with smart transitions and interactive playback.

Category: Presentation

About this skill

NanoBanana PPT Skills is a powerful AI-driven PPT generation tool that can intelligently analyze documents, automatically extract key points and plan PPT structure, generate high-quality images using Google Nano Banana Pro (Gemini 3 Pro Image Preview), automatically create transition videos with Kling AI for smooth page transitions, provide an interactive video player with keyboard controls and loop preview, and export complete videos with all transitions composited together.

Source and installation instructions

Installation

  1. git clone https://github.com/op7418/NanoBanana-PPT-Skills.git
  2. cd NanoBanana-PPT-Skills
  3. python3 -m venv venv && source venv/bin/activate
  4. pip install google-genai pillow python-dotenv
  5. cp .env.example .env
  6. Configure GEMINI_API_KEY in .env (required)
  7. Configure KLING_ACCESS_KEY and KLING_SECRET_KEY in .env (optional, for video transitions)
  8. For video features: brew install ffmpeg (macOS) or apt-get install ffmpeg (Linux)

Documentation

PPT Generator Pro - Claude Code Skill

📋 元数据

✨ 功能特性

核心功能

新功能 (v2.0)

📦 系统要求

环境变量

必需:

可选(用于视频功能):

Python 依赖

pip install google-genai pillow python-dotenv

视频功能依赖

# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt-get install ffmpeg

🚀 使用方法

在 Claude Code 中调用

/ppt-generator-pro

或直接告诉 Claude:

我想基于以下文档生成一个 5 页的 PPT,使用渐变毛玻璃风格。

[文档内容...]

📝 Skill 执行流程

阶段 1: 收集用户输入

1.1 获取文档内容

选项 A: 文档路径

用户: 基于 my-document.md 生成 PPT
→ 使用 Read 工具读取文件内容

选项 B: 直接文本

用户: 我想生成一个关于 AI 产品设计的 PPT
主要内容:
1. 现状分析
2. 设计原则
3. 案例研究

选项 C: 主动询问

如果用户未提供内容,询问:
"请提供文档路径或直接粘贴文档内容"
1.2 选择风格

扫描 styles/ 目录,列出可用风格:

# 自动检测风格文件
styles = ['gradient-glass.md', 'vector-illustration.md']

如果有多个风格,使用 AskUserQuestion:

问题: 请选择 PPT 风格
选项:
- 渐变毛玻璃卡片风格(科技感、商务演示)
- 矢量插画风格(温暖、教育培训)
1.3 选择页数范围

使用 AskUserQuestion 询问:

问题: 希望生成多少页 PPT?
选项:
- 5 页(5 分钟演讲)
- 5-10 页(10-15 分钟演讲)
- 10-15 页(20-30 分钟演讲)
- 20-25 页(45-60 分钟演讲)
1.4 选择分辨率
问题: 选择图片分辨率
选项:
- 2K (2752x1536) - 推荐,快速生成
- 4K (5504x3072) - 高质量,适合打印
1.5 是否生成视频(可选)

如果配置了可灵 AI 密钥,询问:

问题: 是否生成转场视频?
选项:
- 仅图片(快速)
- 图片 + 转场视频(完整体验)

阶段 2: 文档分析与内容规划

2.1 内容规划策略

根据页数范围,智能规划每一页内容:

5 页版本:

  1. 封面:标题 + 核心主题
  2. 要点 1:第一个核心观点
  3. 要点 2:第二个核心观点
  4. 要点 3:第三个核心观点
  5. 总结:核心结论或行动建议

5-10 页版本:

  1. 封面 2-3. 引言/背景 4-7. 核心内容(3-4 个关键观点) 8-9. 案例或数据支持
  2. 总结与行动建议

10-15 页版本:

  1. 封面 2-3. 引言/目录 4-6. 第一章节(3 页) 7-9. 第二章节(3 页) 10-12. 第三章节/案例研究 13-14. 数据可视化
  2. 总结与下一步

20-25 页版本:

  1. 封面
  2. 目录 3-4. 引言和背景 5-8. 第一部分(4 页) 9-12. 第二部分(4 页) 13-16. 第三部分(4 页) 17-19. 案例研究 20-22. 数据分析和洞察 23-24. 关键发现和建议
  3. 总结与致谢
2.2 生成 slides_plan.json

创建 JSON 文件:

{
  "title": "文档标题",
  "total_slides": 5,
  "slides": [
    {
      "slide_number": 1,
      "page_type": "cover",
      "content": "标题:AI 产品设计指南\n副标题:构建以用户为中心的智能体验"
    },
    {
      "slide_number": 2,
      "page_type": "content",
      "content": "核心原则\n- 简单直观\n- 快速响应\n- 透明可控"
    },
    {
      "slide_number": 3,
      "page_type": "content",
      "content": "设计流程\n1. 用户研究\n2. 原型设计\n3. 测试迭代"
    },
    {
      "slide_number": 4,
      "page_type": "data",
      "content": "用户满意度\n使用前:65%\n使用后:92%\n提升:+27%"
    },
    {
      "slide_number": 5,
      "page_type": "content",
      "content": "总结\n- 以用户为中心\n- 持续优化迭代\n- 数据驱动决策"
    }
  ]
}

重要: 将此文件保存到:

阶段 3: 生成 PPT 图片

3.1 确定工作目录

独立模式:

cd /path/to/ppt-generator

Skill 模式:

cd ~/.claude/skills/ppt-generator
3.2 执行生成命令
python generate_ppt.py \
  --plan slides_plan.json \
  --style styles/gradient-glass.md \
  --resolution 2K

或使用 uv run(推荐):

uv run python generate_ppt.py \
  --plan slides_plan.json \
  --style styles/gradient-glass.md \
  --resolution 2K

参数说明:

3.3 监控生成进度

脚本会输出进度信息:

✅ 已加载环境变量: /path/to/.env
📊 开始生成 PPT 图片...
   总页数: 5
   分辨率: 2K (2752x1536)
   风格: 渐变毛玻璃卡片风格

🎨 生成第 1 页 (封面页)...
   提示词已生成
   调用 Nano Banana Pro API...
   ✅ 第 1 页生成成功 (32.5 秒)

🎨 生成第 2 页 (内容页)...
   ✅ 第 2 页生成成功 (28.3 秒)

...

✅ 所有页面生成完成!
📁 输出目录: outputs/20260112_143022/

阶段 4: 生成转场提示词(视频模式需要)

这是 Skill 的核心优势:我(Claude Code)会分析生成的 PPT 图片,为每个转场生成精准的视频提示词。

4.1 读取并分析 PPT 图片

我会读取所有生成的图片:

# 自动读取输出目录中的所有图片
slides = ['slide-01.png', 'slide-02.png', ...]
4.2 分析图片差异并生成提示词

对于每对相邻图片,我会:

  1. 视觉分析:理解两张图片的布局、元素、色彩差异
  2. 生成预览提示词:为首页创建可循环的微动效描述
  3. 生成转场提示词:详细描述如何从起始帧过渡到结束帧

示例输出:

{
  "preview": {
    "slide_path": "outputs/.../slide-01.png",
    "prompt": "画面保持封面的静态构图,中心的3D玻璃环缓慢旋转..."
  },
  "transitions": [
    {
      "from_slide": 1,
      "to_slide": 2,
      "prompt": "镜头从封面开始,玻璃环逐渐解构,分裂成透明碎片..."
    }
  ]
}
4.3 保存提示词文件

我会将生成的提示词保存到:

outputs/TIMESTAMP/transition_prompts.json

关键优势:

阶段 5: 生成转场视频(可选)

如果用户选择生成视频,使用阶段 4 生成的提示词文件:

python generate_ppt_video.py \
  --slides-dir outputs/20260112_143022/images \
  --output-dir outputs/20260112_143022_video \
  --prompts-file outputs/20260112_143022/transition_prompts.json

生成内容:

阶段 6: 返回结果

6.1 仅图片模式
✅ PPT 生成成功!

📁 输出目录: outputs/20260112_143022/
🖼️ PPT 图片: outputs/20260112_143022/images/
🎬 播放网页: outputs/20260112_143022/index.html

打开播放网页:
open outputs/20260112_143022/index.html

播放器快捷键:
- ← → 键: 切换页面
- ↑ Home: 回到首页
- ↓ End: 跳到末页
- 空格: 暂停/继续自动播放
- ESC: 全屏切换
- H: 隐藏/显示控件
5.2 视频模式
✅ PPT 视频生成成功!

📁 输出目录: outputs/20260112_143022_video/
🖼️ PPT 图片: outputs/20260112_143022/images/
🎬 转场视频: outputs/20260112_143022_video/videos/
🎮 交互式播放器: outputs/20260112_143022_video/video_index.html
🎥 完整视频: outputs/20260112_143022_video/full_ppt_video.mp4

打开交互式播放器:
open outputs/20260112_143022_video/video_index.html

播放逻辑:
1. 首页: 播放循环预览视频
2. 按右键 → 播放转场视频 → 显示目标页图片(2 秒)
3. 再按右键 → 播放下一个转场 → 显示下一页图片
4. 依此类推...

视频播放器快捷键:
- ← → 键: 上一页/下一页(含转场)
- 空格: 播放/暂停当前视频
- ESC: 全屏切换
- H: 隐藏/显示控件

🔧 环境变量配置

.env 文件位置

Skill 会按以下顺序查找 .env 文件:

  1. 脚本所在目录 - ./ppt-generator/.env
  2. 向上查找项目根目录 - 直到找到包含 .git 或 .env 的目录
  3. Claude Skill 标准位置 - ~/.claude/skills/ppt-generator/.env
  4. 系统环境变量 - 如果以上都未找到

.env 文件示例

# Google AI API 密钥(必需)
GEMINI_API_KEY=your_gemini_api_key_here

# 可灵 AI API 密钥(可选,用于视频功能)
KLING_ACCESS_KEY=your_kling_access_key_here
KLING_SECRET_KEY=your_kling_secret_key_here

⚠️ 错误处理

常见错误及解决方案

1. API 密钥未设置

错误: ⚠️ 未找到 .env 文件,尝试使用系统环境变量
      未设置 GEMINI_API_KEY 环境变量

解决:
1. 创建 .env 文件
2. 添加 GEMINI_API_KEY=your_key_here

2. Python 依赖缺失

错误: ModuleNotFoundError: No module named 'google.genai'

解决: pip install google-genai pillow python-dotenv

3. FFmpeg 未安装

错误: ❌ FFmpeg 不可用!

解决: brew install ffmpeg  # macOS
      sudo apt-get install ffmpeg  # Ubuntu

4. API 调用失败

错误: API 调用超时或失败

解决:
1. 检查网络连接
2. 确认 API 密钥有效
3. 稍后重试

5. 视频生成失败

错误: 可灵 AI 密钥未配置

解决:
1. 如果只需要图片,跳过视频生成步骤
2. 如果需要视频,配置 KLING_ACCESS_KEY 和 KLING_SECRET_KEY

🎨 风格系统

已内置风格

1. 渐变毛玻璃卡片风格 (gradient-glass.md)

视觉特点:

适用场景:

2. 矢量插画风格 (vector-illustration.md)

视觉特点:

适用场景:

添加自定义风格

  1. 在 styles/ 目录创建新的 .md 文件
  2. 按照现有风格格式编写
  3. Skill 会自动识别并提供选择

📊 技术细节

API 配置

Nano Banana Pro(图片生成):

可灵 AI(视频生成):

FFmpeg(视频合成):

性能指标

生成速度:

文件大小:

📁 文件组织

输出目录结构

仅图片模式:

outputs/20260112_143022/
├── images/
│   ├── slide-01.png
│   ├── slide-02.png
│   └── ...
├── index.html          # 图片播放器
└── prompts.json        # 提示词记录

视频模式:

outputs/20260112_143022_video/
├── videos/
│   ├── preview.mp4              # 首页循环预览
│   ├── transition_01_to_02.mp4
│   ├── transition_02_to_03.mp4
│   └── ...
├── video_index.html             # 交互式播放器
└── full_ppt_video.mp4           # 完整视频

🎯 最佳实践

  1. 文档质量:输入文档内容越清晰结构化,生成的 PPT 质量越高
  2. 页数选择:根据文档长度和演示场景合理选择页数
  3. 分辨率选择:日常使用推荐 2K,重要展示场合可选 4K
  4. 视频功能:首次使用建议先尝试仅图片模式,熟悉后再使用视频功能
  5. 提示词调整:查看 prompts.json 了解生成逻辑,可手动调整后重新生成

📝 使用示例

示例 1: 快速生成

用户输入:

我需要基于这份会议纪要生成一个 5 页的 PPT,使用矢量插画风格。

会议主题:Q1 产品路线图规划
参与人:产品团队

讨论内容:
1. 用户反馈汇总
2. 新功能优先级
3. 技术可行性评估
4. Q1 里程碑
5. 下一步行动项

Skill 执行:

  1. 收集输入(已提供内容)
  2. 确认风格(矢量插画)
  3. 确认页数(5 页)
  4. 确认分辨率(询问用户)
  5. 生成 slides_plan.json
  6. 执行生成命令
  7. 返回结果

示例 2: 完整流程

用户输入:

基于 AI-Product-Design.md 文档,生成一个 15 页的 PPT,使用渐变毛玻璃风格,需要转场视频。

Skill 执行:

  1. 读取文档内容
  2. 确认风格(渐变毛玻璃)
  3. 确认页数(15 页)
  4. 确认分辨率(询问用户)
  5. 确认生成视频(是)
  6. 分析文档,规划 15 页内容
  7. 生成 slides_plan.json
  8. 生成 PPT 图片
  9. 生成转场视频
  10. 合成完整视频
  11. 返回所有结果

🔄 更新日志

v2.0.0 (2026-01-12)

v1.0.0 (2026-01-09)

📄 许可证

MIT License

📞 技术支持