{"skill":{"slug":"nanobanana-ppt-skills","displayName":"NanoBanana PPT Skills","summary":"基于 AI 自动分析文档内容，智能规划并生成多风格高清 PPT 图片，支持可选转场视频和交互式播放体验。","description":"# PPT Generator Pro - Claude Code Skill\n\n## 📋 元数据\n\n- **Skill 名称**: ppt-generator-pro\n- **版本**: 2.0.0\n- **描述**: 基于 AI 自动生成高质量 PPT 图片和视频，支持智能转场和交互式播放\n- **作者**: 歸藏\n- **标签**: ppt, presentation, video, ai, nano-banana, kling-ai, image-generation\n\n## ✨ 功能特性\n\n### 核心功能\n- 🤖 **智能文档分析** - 自动提取核心要点，规划 PPT 内容结构\n- 🎨 **多风格支持** - 内置渐变毛玻璃、矢量插画两种专业风格\n- 🖼️ **高质量图片** - 使用 Nano Banana Pro 生成 16:9 高清 PPT\n- 🎬 **AI 转场视频** - 可灵 AI 生成流畅的页面过渡动画\n- 🎮 **交互式播放器** - 视频+图片混合播放，支持键盘导航\n- 🎥 **完整视频导出** - FFmpeg 合成包含所有转场的完整 PPT 视频\n\n### 新功能 (v2.0)\n- 🔄 **首页循环预览** - 自动生成吸引眼球的循环动画\n- 🎞️ **智能转场** - 自动生成页面间的过渡视频\n- 🔧 **参数统一** - 自动统一所有视频分辨率和帧率\n\n## 📦 系统要求\n\n### 环境变量\n\n**必需：**\n- `GEMINI_API_KEY`: Google AI API 密钥（用于生成 PPT 图片）\n\n**可选（用于视频功能）：**\n- `KLING_ACCESS_KEY`: 可灵 AI Access Key\n- `KLING_SECRET_KEY`: 可灵 AI Secret Key\n\n### Python 依赖\n\n```bash\npip install google-genai pillow python-dotenv\n```\n\n### 视频功能依赖\n\n```bash\n# macOS\nbrew install ffmpeg\n\n# Ubuntu/Debian\nsudo apt-get install ffmpeg\n```\n\n## 🚀 使用方法\n\n### 在 Claude Code 中调用\n\n```bash\n/ppt-generator-pro\n```\n\n或直接告诉 Claude：\n\n```\n我想基于以下文档生成一个 5 页的 PPT，使用渐变毛玻璃风格。\n\n[文档内容...]\n```\n\n## 📝 Skill 执行流程\n\n### 阶段 1: 收集用户输入\n\n#### 1.1 获取文档内容\n\n**选项 A: 文档路径**\n```\n用户: 基于 my-document.md 生成 PPT\n→ 使用 Read 工具读取文件内容\n```\n\n**选项 B: 直接文本**\n```\n用户: 我想生成一个关于 AI 产品设计的 PPT\n主要内容：\n1. 现状分析\n2. 设计原则\n3. 案例研究\n```\n\n**选项 C: 主动询问**\n```\n如果用户未提供内容，询问：\n\"请提供文档路径或直接粘贴文档内容\"\n```\n\n#### 1.2 选择风格\n\n扫描 `styles/` 目录，列出可用风格：\n\n```python\n# 自动检测风格文件\nstyles = ['gradient-glass.md', 'vector-illustration.md']\n```\n\n**如果有多个风格，使用 AskUserQuestion：**\n\n```markdown\n问题: 请选择 PPT 风格\n选项:\n- 渐变毛玻璃卡片风格（科技感、商务演示）\n- 矢量插画风格（温暖、教育培训）\n```\n\n#### 1.3 选择页数范围\n\n使用 AskUserQuestion 询问：\n\n```markdown\n问题: 希望生成多少页 PPT？\n选项:\n- 5 页（5 分钟演讲）\n- 5-10 页（10-15 分钟演讲）\n- 10-15 页（20-30 分钟演讲）\n- 20-25 页（45-60 分钟演讲）\n```\n\n#### 1.4 选择分辨率\n\n```markdown\n问题: 选择图片分辨率\n选项:\n- 2K (2752x1536) - 推荐，快速生成\n- 4K (5504x3072) - 高质量，适合打印\n```\n\n#### 1.5 是否生成视频（可选）\n\n如果配置了可灵 AI 密钥，询问：\n\n```markdown\n问题: 是否生成转场视频？\n选项:\n- 仅图片（快速）\n- 图片 + 转场视频（完整体验）\n```\n\n### 阶段 2: 文档分析与内容规划\n\n#### 2.1 内容规划策略\n\n根据页数范围，智能规划每一页内容：\n\n**5 页版本：**\n1. 封面：标题 + 核心主题\n2. 要点 1：第一个核心观点\n3. 要点 2：第二个核心观点\n4. 要点 3：第三个核心观点\n5. 总结：核心结论或行动建议\n\n**5-10 页版本：**\n1. 封面\n2-3. 引言/背景\n4-7. 核心内容（3-4 个关键观点）\n8-9. 案例或数据支持\n10. 总结与行动建议\n\n**10-15 页版本：**\n1. 封面\n2-3. 引言/目录\n4-6. 第一章节（3 页）\n7-9. 第二章节（3 页）\n10-12. 第三章节/案例研究\n13-14. 数据可视化\n15. 总结与下一步\n\n**20-25 页版本：**\n1. 封面\n2. 目录\n3-4. 引言和背景\n5-8. 第一部分（4 页）\n9-12. 第二部分（4 页）\n13-16. 第三部分（4 页）\n17-19. 案例研究\n20-22. 数据分析和洞察\n23-24. 关键发现和建议\n25. 总结与致谢\n\n#### 2.2 生成 slides_plan.json\n\n创建 JSON 文件：\n\n```json\n{\n  \"title\": \"文档标题\",\n  \"total_slides\": 5,\n  \"slides\": [\n    {\n      \"slide_number\": 1,\n      \"page_type\": \"cover\",\n      \"content\": \"标题：AI 产品设计指南\\n副标题：构建以用户为中心的智能体验\"\n    },\n    {\n      \"slide_number\": 2,\n      \"page_type\": \"content\",\n      \"content\": \"核心原则\\n- 简单直观\\n- 快速响应\\n- 透明可控\"\n    },\n    {\n      \"slide_number\": 3,\n      \"page_type\": \"content\",\n      \"content\": \"设计流程\\n1. 用户研究\\n2. 原型设计\\n3. 测试迭代\"\n    },\n    {\n      \"slide_number\": 4,\n      \"page_type\": \"data\",\n      \"content\": \"用户满意度\\n使用前：65%\\n使用后：92%\\n提升：+27%\"\n    },\n    {\n      \"slide_number\": 5,\n      \"page_type\": \"content\",\n      \"content\": \"总结\\n- 以用户为中心\\n- 持续优化迭代\\n- 数据驱动决策\"\n    }\n  ]\n}\n```\n\n**重要：** 将此文件保存到：\n- 独立使用：`./slides_plan.json`\n- Skill 模式：`.claude/skills/ppt-generator/slides_plan.json`\n\n### 阶段 3: 生成 PPT 图片\n\n#### 3.1 确定工作目录\n\n**独立模式：**\n```bash\ncd /path/to/ppt-generator\n```\n\n**Skill 模式：**\n```bash\ncd ~/.claude/skills/ppt-generator\n```\n\n#### 3.2 执行生成命令\n\n```bash\npython generate_ppt.py \\\n  --plan slides_plan.json \\\n  --style styles/gradient-glass.md \\\n  --resolution 2K\n```\n\n**或使用 uv run（推荐）：**\n```bash\nuv run python generate_ppt.py \\\n  --plan slides_plan.json \\\n  --style styles/gradient-glass.md \\\n  --resolution 2K\n```\n\n**参数说明：**\n- `--plan`: slides 规划 JSON 文件路径\n- `--style`: 风格文件路径\n- `--resolution`: 分辨率（2K 或 4K）\n- `--template`: HTML 模板路径（可选）\n\n#### 3.3 监控生成进度\n\n脚本会输出进度信息：\n\n```\n✅ 已加载环境变量: /path/to/.env\n📊 开始生成 PPT 图片...\n   总页数: 5\n   分辨率: 2K (2752x1536)\n   风格: 渐变毛玻璃卡片风格\n\n🎨 生成第 1 页 (封面页)...\n   提示词已生成\n   调用 Nano Banana Pro API...\n   ✅ 第 1 页生成成功 (32.5 秒)\n\n🎨 生成第 2 页 (内容页)...\n   ✅ 第 2 页生成成功 (28.3 秒)\n\n...\n\n✅ 所有页面生成完成！\n📁 输出目录: outputs/20260112_143022/\n```\n\n### 阶段 4: 生成转场提示词（视频模式需要）\n\n**这是 Skill 的核心优势**：我（Claude Code）会分析生成的 PPT 图片，为每个转场生成精准的视频提示词。\n\n#### 4.1 读取并分析 PPT 图片\n\n我会读取所有生成的图片：\n\n```python\n# 自动读取输出目录中的所有图片\nslides = ['slide-01.png', 'slide-02.png', ...]\n```\n\n#### 4.2 分析图片差异并生成提示词\n\n对于每对相邻图片，我会：\n1. **视觉分析**：理解两张图片的布局、元素、色彩差异\n2. **生成预览提示词**：为首页创建可循环的微动效描述\n3. **生成转场提示词**：详细描述如何从起始帧过渡到结束帧\n\n**示例输出：**\n```json\n{\n  \"preview\": {\n    \"slide_path\": \"outputs/.../slide-01.png\",\n    \"prompt\": \"画面保持封面的静态构图，中心的3D玻璃环缓慢旋转...\"\n  },\n  \"transitions\": [\n    {\n      \"from_slide\": 1,\n      \"to_slide\": 2,\n      \"prompt\": \"镜头从封面开始，玻璃环逐渐解构，分裂成透明碎片...\"\n    }\n  ]\n}\n```\n\n#### 4.3 保存提示词文件\n\n我会将生成的提示词保存到：\n```\noutputs/TIMESTAMP/transition_prompts.json\n```\n\n**关键优势：**\n- ✅ 不需要单独的 Claude API 密钥\n- ✅ 提示词针对实际图片内容定制\n- ✅ 考虑文字稳定性，避免视频模型弄模糊文字\n- ✅ 符合渐变毛玻璃风格的视觉语言\n\n### 阶段 5: 生成转场视频（可选）\n\n如果用户选择生成视频，使用阶段 4 生成的提示词文件：\n\n```bash\npython generate_ppt_video.py \\\n  --slides-dir outputs/20260112_143022/images \\\n  --output-dir outputs/20260112_143022_video \\\n  --prompts-file outputs/20260112_143022/transition_prompts.json\n```\n\n**生成内容：**\n- 首页循环预览视频（`preview.mp4`）\n- 页面间转场视频（`transition_01_to_02.mp4` 等）\n- 交互式视频播放器（`video_index.html`）\n- 完整视频（`full_ppt_video.mp4`）\n\n### 阶段 6: 返回结果\n\n#### 6.1 仅图片模式\n\n```\n✅ PPT 生成成功！\n\n📁 输出目录: outputs/20260112_143022/\n🖼️ PPT 图片: outputs/20260112_143022/images/\n🎬 播放网页: outputs/20260112_143022/index.html\n\n打开播放网页:\nopen outputs/20260112_143022/index.html\n\n播放器快捷键:\n- ← → 键: 切换页面\n- ↑ Home: 回到首页\n- ↓ End: 跳到末页\n- 空格: 暂停/继续自动播放\n- ESC: 全屏切换\n- H: 隐藏/显示控件\n```\n\n#### 5.2 视频模式\n\n```\n✅ PPT 视频生成成功！\n\n📁 输出目录: outputs/20260112_143022_video/\n🖼️ PPT 图片: outputs/20260112_143022/images/\n🎬 转场视频: outputs/20260112_143022_video/videos/\n🎮 交互式播放器: outputs/20260112_143022_video/video_index.html\n🎥 完整视频: outputs/20260112_143022_video/full_ppt_video.mp4\n\n打开交互式播放器:\nopen outputs/20260112_143022_video/video_index.html\n\n播放逻辑:\n1. 首页: 播放循环预览视频\n2. 按右键 → 播放转场视频 → 显示目标页图片（2 秒）\n3. 再按右键 → 播放下一个转场 → 显示下一页图片\n4. 依此类推...\n\n视频播放器快捷键:\n- ← → 键: 上一页/下一页（含转场）\n- 空格: 播放/暂停当前视频\n- ESC: 全屏切换\n- H: 隐藏/显示控件\n```\n\n## 🔧 环境变量配置\n\n### .env 文件位置\n\nSkill 会按以下顺序查找 `.env` 文件：\n\n1. **脚本所在目录** - `./ppt-generator/.env`\n2. **向上查找项目根目录** - 直到找到包含 `.git` 或 `.env` 的目录\n3. **Claude Skill 标准位置** - `~/.claude/skills/ppt-generator/.env`\n4. **系统环境变量** - 如果以上都未找到\n\n### .env 文件示例\n\n```bash\n# Google AI API 密钥（必需）\nGEMINI_API_KEY=your_gemini_api_key_here\n\n# 可灵 AI API 密钥（可选，用于视频功能）\nKLING_ACCESS_KEY=your_kling_access_key_here\nKLING_SECRET_KEY=your_kling_secret_key_here\n```\n\n## ⚠️ 错误处理\n\n### 常见错误及解决方案\n\n**1. API 密钥未设置**\n```\n错误: ⚠️ 未找到 .env 文件，尝试使用系统环境变量\n      未设置 GEMINI_API_KEY 环境变量\n\n解决:\n1. 创建 .env 文件\n2. 添加 GEMINI_API_KEY=your_key_here\n```\n\n**2. Python 依赖缺失**\n```\n错误: ModuleNotFoundError: No module named 'google.genai'\n\n解决: pip install google-genai pillow python-dotenv\n```\n\n**3. FFmpeg 未安装**\n```\n错误: ❌ FFmpeg 不可用！\n\n解决: brew install ffmpeg  # macOS\n      sudo apt-get install ffmpeg  # Ubuntu\n```\n\n**4. API 调用失败**\n```\n错误: API 调用超时或失败\n\n解决:\n1. 检查网络连接\n2. 确认 API 密钥有效\n3. 稍后重试\n```\n\n**5. 视频生成失败**\n```\n错误: 可灵 AI 密钥未配置\n\n解决:\n1. 如果只需要图片，跳过视频生成步骤\n2. 如果需要视频，配置 KLING_ACCESS_KEY 和 KLING_SECRET_KEY\n```\n\n## 🎨 风格系统\n\n### 已内置风格\n\n#### 1. 渐变毛玻璃卡片风格 (`gradient-glass.md`)\n\n**视觉特点：**\n- Apple Keynote 极简主义\n- 玻璃拟态效果\n- 霓虹紫/电光蓝/珊瑚橙渐变\n- 3D 玻璃物体 + 电影级光照\n\n**适用场景：**\n- 科技产品发布\n- 商务演示\n- 数据报告\n- 企业品牌展示\n\n#### 2. 矢量插画风格 (`vector-illustration.md`)\n\n**视觉特点：**\n- 扁平化矢量设计\n- 统一黑色轮廓线\n- 复古柔和配色\n- 几何化简化\n\n**适用场景：**\n- 教育培训\n- 创意提案\n- 儿童相关\n- 温暖品牌故事\n\n### 添加自定义风格\n\n1. 在 `styles/` 目录创建新的 `.md` 文件\n2. 按照现有风格格式编写\n3. Skill 会自动识别并提供选择\n\n## 📊 技术细节\n\n### API 配置\n\n**Nano Banana Pro（图片生成）：**\n- 模型：`gemini-3-pro-image-preview`\n- 比例：`16:9`\n- 响应模式：`IMAGE`\n- 分辨率：2K (2752x1536) 或 4K (5504x3072)\n\n**可灵 AI（视频生成）：**\n- 模式：专业模式（professional）\n- 时长：5 秒\n- 分辨率：1920x1080\n- 帧率：24fps\n\n**FFmpeg（视频合成）：**\n- 编码：H.264\n- 质量：CRF 23\n- 帧率：24fps（统一）\n- 分辨率：1920x1080（统一）\n\n### 性能指标\n\n**生成速度：**\n- PPT 图片：~30 秒/页（2K）| ~60 秒/页（4K）\n- 转场视频：~30-60 秒/段\n- 视频合成：~5-10 秒\n\n**文件大小：**\n- PPT 图片：~2.5MB/页（2K）| ~8MB/页（4K）\n- 转场视频：~3-5MB/段（1080p，5 秒）\n- 完整视频：~12-20MB（5 页 PPT + 转场）\n\n## 📁 文件组织\n\n### 输出目录结构\n\n**仅图片模式：**\n```\noutputs/20260112_143022/\n├── images/\n│   ├── slide-01.png\n│   ├── slide-02.png\n│   └── ...\n├── index.html          # 图片播放器\n└── prompts.json        # 提示词记录\n```\n\n**视频模式：**\n```\noutputs/20260112_143022_video/\n├── videos/\n│   ├── preview.mp4              # 首页循环预览\n│   ├── transition_01_to_02.mp4\n│   ├── transition_02_to_03.mp4\n│   └── ...\n├── video_index.html             # 交互式播放器\n└── full_ppt_video.mp4           # 完整视频\n```\n\n## 🎯 最佳实践\n\n1. **文档质量**：输入文档内容越清晰结构化，生成的 PPT 质量越高\n2. **页数选择**：根据文档长度和演示场景合理选择页数\n3. **分辨率选择**：日常使用推荐 2K，重要展示场合可选 4K\n4. **视频功能**：首次使用建议先尝试仅图片模式，熟悉后再使用视频功能\n5. **提示词调整**：查看 `prompts.json` 了解生成逻辑，可手动调整后重新生成\n\n## 📝 使用示例\n\n### 示例 1: 快速生成\n\n**用户输入：**\n```\n我需要基于这份会议纪要生成一个 5 页的 PPT，使用矢量插画风格。\n\n会议主题：Q1 产品路线图规划\n参与人：产品团队\n\n讨论内容：\n1. 用户反馈汇总\n2. 新功能优先级\n3. 技术可行性评估\n4. Q1 里程碑\n5. 下一步行动项\n```\n\n**Skill 执行：**\n1. 收集输入（已提供内容）\n2. 确认风格（矢量插画）\n3. 确认页数（5 页）\n4. 确认分辨率（询问用户）\n5. 生成 slides_plan.json\n6. 执行生成命令\n7. 返回结果\n\n### 示例 2: 完整流程\n\n**用户输入：**\n```\n基于 AI-Product-Design.md 文档，生成一个 15 页的 PPT，使用渐变毛玻璃风格，需要转场视频。\n```\n\n**Skill 执行：**\n1. 读取文档内容\n2. 确认风格（渐变毛玻璃）\n3. 确认页数（15 页）\n4. 确认分辨率（询问用户）\n5. 确认生成视频（是）\n6. 分析文档，规划 15 页内容\n7. 生成 slides_plan.json\n8. 生成 PPT 图片\n9. 生成转场视频\n10. 合成完整视频\n11. 返回所有结果\n\n## 🔄 更新日志\n\n### v2.0.0 (2026-01-12)\n\n- 🎬 **新增视频功能**\n  - 可灵 AI 转场视频生成\n  - 交互式视频播放器\n  - FFmpeg 完整视频合成\n  - 首页循环预览视频\n- 🔧 **优化视频合成**\n  - 自动统一分辨率和帧率\n  - 修复视频拼接兼容性问题\n  - 静态图片展示时间改为 2 秒\n- 🔑 **改进环境变量**\n  - 智能查找 .env 文件\n  - 支持多种部署模式\n  - 自动向上查找项目根目录\n- 📚 **文档完善**\n  - 重命名为 SKILL.md（符合官方规范）\n  - 更新所有路径和命令\n  - 添加视频功能使用指南\n\n### v1.0.0 (2026-01-09)\n\n- ✨ 首次发布\n- 🎨 内置 2 种专业风格\n- 🖼️ 支持 2K/4K 分辨率\n- 🎬 HTML5 图片播放器\n- 📊 智能文档分析\n\n## 📄 许可证\n\nMIT License\n\n## 📞 技术支持\n\n- 项目架构：参见 `ARCHITECTURE.md`\n- API 管理：参见 `API_MANAGEMENT.md`\n- 环境配置：参见 `ENV_SETUP.md`\n- 安全说明：参见 `SECURITY.md`\n- 完整文档：参见 `README.md`\n","topics":["Image Generation"],"tags":{"latest":"0.1.0"},"stats":{"comments":0,"downloads":3569,"installsAllTime":134,"installsCurrent":10,"stars":2,"versions":1},"createdAt":1769508616256,"updatedAt":1779076489398},"latestVersion":{"version":"0.1.0","createdAt":1769508616256,"changelog":"PPT Generator Pro major release 2.0 adds AI-powered PPT, video, and interactive features.\n\n- 全新支持 AI 自动规划、提取文档要点并生成高质量 PPT 图片（16:9 比例，多风格选择）\n- 新增转场视频生成，首页循环动画预览，完整视频与交互式播放网页\n- 多风格系统（渐变毛玻璃、矢量插画），自动检测可选风格\n- 分辨率、页数、风格、视频模式等引导式交互\n- 自动管理环境变量，详细执行流程和错误提示\n- 可选 AI 转场视频（需可灵 API 密钥），并自动合成完整演示视频","license":null},"metadata":null,"owner":{"handle":"itrocker","userId":"s17722febb4fbgkb5408xez9hh884ytp","displayName":"ITRocker","image":"https://avatars.githubusercontent.com/u/16250860?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1779917036870}}