---
name: ethanyoq/ppt-nano
source: https://app.decimal.ai/s/ethanyoq-ppt-nano@1/SKILL.md
source_sha256: 95b3cf50e957
---

# PPT-Nano 技能 — 白板板书风格PPT生成

## 🚨 触发条件
用户说「ppt-nano」「生成PPT」「做PPT」「白板风格PPT」等关键词时，**必须严格按以下流程执行，不可跳步！**

---

## ✅ 标准执行流程（5步，必须按顺序）

### 第一步：告知风格

立即回复：

> 🖊️ **白板板书风格**
> 真实白板照片 + 马克笔手写（shufa笔触）+ 手绘插图，黑/蓝/红三色马克笔

---

### 第二步：接收文案，整理确认表（必须输出表格）

收到文案后，**立即整理成确认表**发给用户，格式：

> 📋 梳理如下，请确认：
>
> | 页码 | 页面类型 | 参考图 | 内容摘要 |
> |------|---------|--------|---------|
> | 封面 | 首页 | cover.jpg | 主标题 / 副标题 |
> | P1 | 内容页 | content.jpg | 标题 / 要点摘要 |
> | P2 | 图表页 | chart.jpg | 标题 / 数据摘要 |
> | ... | ... | ... | ... |
>
> 共 X 页，请确认页面分配是否正确，确认后说"启动生成"！

**页面类型判断规则：**
- 有时间轴/流程/组织架构 → **导航页** navigation.jpg
- 有数据表格/数字对比 → **图表页** chart.jpg
- 有场景故事/对话泡泡 → **内容页** content.jpg
- 纯文字列表/要点 → **文字页** text.jpg（=content.jpg）
- 封面 → **首页** cover.jpg
- 结尾 → **尾页** closing.jpg

等用户确认后再进入第三步。

---

### 第三步：依赖检查（首次使用或不确定时执行）

```bash
python -c "import openai, PIL; print('ok')"
```

如果失败，先安装：
```bash
python -m pip install openai pillow python-pptx
```

---

### 第四步：逐页生成并发预览

**每页命令模板（严格执行）：**

```bash
python {baseDir}/scripts/generate_image.py \
  --prompt "{对应前缀}{页面专属提示词}" \
  --filename "{输出文件名}.jpg" \
  --resolution 2K \
  --aspect-ratio 16:9 \
  -i "{参考图绝对路径}"
```

> Windows PowerShell 下反斜杠续行用反引号（`` ` ``），或写成一行。

**关键参数说明：**
- `-i` 传入参考图（image-to-image 模式，必须带）
- `--resolution` 固定用 `2K`（支持 `2K` / `3K`，不支持其他值）
- `--aspect-ratio` 固定用 `16:9`
- `--filename` 必须以 `.jpg` 结尾（模型输出固定为 JPEG）
- 每次调用只生成一页

---

### ⚡ 提示词前缀（按页面类型选用，不可省略）

#### 通用页（内容页 / 图表页 / 导航页 / 尾页）
```
按参考图出图，白板背景和整体版式保留不变，白板上的所有原有文字和图案全部清除，按以下文案重新设计内容。中文必须是马克笔shufa笔触风格，配图手绘风格。Chinese text MUST use thick shufa-style ink brush marker calligraphy — bold chunky strokes, NOT printed font. 颜色规则：黑色用于主标题和正文，蓝色用于副标题、数据标注和补充信息，红色用于强调词、结论句和圆圈高亮。配图颜色按内容用红蓝马克笔适配。
```

#### 封面页（cover.jpg 专用，必须使用此版本）
```
按参考图出图，白板背景和整体版式保留不变，白板上的所有原有文字和图案全部清除，不保留任何已有标题或说明文字。按以下文案重新设计封面内容，主标题突出显示，副标题用蓝色马克笔书写。封面版面要充分利用，除主标题和副标题外，可添加与主题相关的手绘装饰图案、关键词标注、或视觉分割线，确保白板面积利用率不低于60%。中文必须是马克笔shufa笔触风格，配图手绘风格。Chinese text MUST use thick shufa-style ink brush marker calligraphy — bold chunky strokes, NOT printed font. DO NOT reproduce any text from the reference image. 颜色规则：黑色用于主标题，蓝色用于副标题和说明文字，红色用于强调词和圆圈高亮。
```

> **说明：** 封面参考图含有固定示例文字，若使用通用前缀模型容易将其保留。封面页必须使用封面专用前缀，明确要求清除原有文字。

---

**参考图路径（`{baseDir}/styles/whiteboard/pages/`）：**
```
├── cover.jpg       ← 首页专用（必须配封面专用前缀）
├── chart.jpg       ← 图表页专用
├── navigation.jpg  ← 导航页专用
├── content.jpg     ← 内容页/文字页共用
├── closing.jpg     ← 尾页专用
└── text.jpg        ← 文字页（同 content.jpg）
```

**规则：**
- 每页必须带参考图（`-i`），不同页型严禁混用参考图
- 封面页（cover.jpg）必须使用封面专用前缀，不可用通用前缀
- 以脚本输出的 `MEDIA:` 行为准获取生成图片路径，不依赖 stderr 解析
- 只记录保存路径，不读取图片内容

---

### 第五步：所有页确认后合成 .pptx

所有页面确认后，调用合成脚本：

```bash
python {baseDir}/scripts/build_pptx.py \
  -i "slide1.jpg" "slide2.jpg" "slide3.jpg" \
  -o "{workspace}/你的文件名.pptx"
```

> `build_pptx.py` 已内置跨平台支持（Windows / macOS / Linux），统一使用 `python` 调用。中文路径乱码问题已在脚本内部处理，无需手动设置环境变量。

**build_pptx.py 参数说明：**
| 参数 | 说明 |
|------|------|
| `-i img1.jpg img2.jpg ...` | 图片路径列表，**按页序排列** |
| `--dir ./某目录/` | 扫描目录下所有 jpg（按文件名字母序） |
| `-o output.pptx` | 输出路径，默认 `output.pptx` |
| `--width` / `--height` | 幻灯片尺寸（英寸），默认 13.33 × 7.5（16:9） |

**机器可读输出：** 脚本最后一行输出 `PPTX:/path/to/file.pptx`，可直接解析路径。

合成完成后将 .pptx 文件路径告知用户。

---

## 📁 文件位置
- 参考图：`{baseDir}/styles/whiteboard/pages/`
- 生成脚本：`{baseDir}/scripts/generate_image.py`
- 合成脚本：`{baseDir}/scripts/build_pptx.py`
- 输出目录：`{workspace}/ppt_outputs/`

> `{baseDir}` = skill 所在目录（如 `~/.easyclaw/skills/ppt-nano`）
> `{workspace}` = `~/.easyclaw/workspace`

---

## ⚠️ 常见错误（禁止）
- ❌ 不问风格直接问文案
- ❌ 收到文案不整理确认表直接生成
- ❌ 不传参考图（`-i`）或混用参考图
- ❌ 封面页使用通用前缀（必须用封面专用前缀）
- ❌ 省略提示词前缀
- ❌ 用错参考图（如内容页用了 chart.jpg）