Skill detail

whiteboard-animation

Relevant only for a narrow whiteboard-animation video workflow.

MatchPossibleReviewed for animation
Sourceyangagent/whiteboard-animation-skillExternal source
Reported installs384Popularity signal only

Inspect before use

Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.

Saved source preview

SKILL.md

The saved excerpt is a snapshot from review. The external source remains the complete and most current version.

---
name: whiteboard-animation
description: 从图片生成白板手绘动画视频。将任意彩色图片转换为包含线稿绘制和上色两个阶段的动画,带手部覆盖效果,输出 H.264 MP4 视频。支持单张和批量两种模式。当用户说"把图片做成白板动画"、"白板动画"、"批量白板动画"时触发。
---

# 白板手绘动画生成器

从输入图片生成白板手绘动画视频,动画分为两个阶段:
1. **线稿绘制** — 手持笔在白板上逐步画出黑白线稿
2. **上色** — 手持笔沿内容轮廓逐步涂上彩色,还原为原图

支持两种模式:**单张模式**和**批量模式**。

---

## 模式判断

- 用户提供**单张图片路径** → 使用单张模式
- 用户提供**多张图片路径**(数组/列表) → 使用批量模式

---

## 单张模式工作流

### 第一步:准备环境

先用 `--check` 检测环境是否就绪:

```bash
python <skill目录>/scripts/setup_env.py --check
```

- 如果成功(退出码 0):最后一行输出 `PYTHON_PATH=<路径>`,**捕获该路径用于后续步骤**,直接跳到第二步
- 如果失败(退出码 1):运行完整安装:

```bash
python <skill目录>/scripts/setup_env.py
```

安装脚本会自动创建 `.venv` 虚拟环境并安装缺失依赖(`opencv-python`、`numpy`、`av`),最后一行同样输出 `PYTHON_PATH=<路径>`。

### 第二步:确认输入图片

从用户请求中获取图片路径,确认文件存在。支持格式:PNG、JPG、JPEG、BMP、TIFF。

白色或浅色背景的图片效果最佳。

### 第三步:确定参数

收集可选参数,所有参数都有合理的默认值:

| 参数 | 标志 | 默认值 | 说明 |
|------|------|--------|------|
| 图片路径 | 位置参数(必填) | -- | 输入的彩色图片路径 |
| 输出目录 | `--output-dir` | `./output` | 视频输出目录 |
| 时长 | `--duration` | `10000` | 视频总时长(毫秒) |
| 无手部 | `--no-hand` | 默认显示手 | 禁用手部覆盖效果 |

### 第四步:运行生成脚本

使用第一步获取的 `PYTHON_PATH` 运行生成脚本:

```bash
<PYTHON_PATH> <skill目录>/scripts/generate_whiteboard.py <图片路径> [--output-dir <目录>] [--duration <毫秒>] [--no-hand]
```

示例:

```bash
<PYTHON_PATH> <skill目录>/scripts/generate_whiteboard.py /path/to/photo.png --output-dir ./output --duration 20000
```

### 第五步:返回结果

脚本会将最终视频路径打印到 stdout,将该路径告知用户。输出文件命名格式:`vid_YYYYMMDD_HHMMSS_h264.mp4`。

---

## 批量模式工作流

当用户提供多张图片(图片路径数组)和对应的时长数组时,使用批量模式。

### 第一步:准备环境

与单张模式相同。先运行 `setup_env.py` 获取 `PYTHON_PATH`。

### 第二步:校验输入

从用户请求中获取:
- **图片路径数组**:多张图片的路径列表(必填)
- **时长数组**:与图片一一对应的时长列表(毫秒,必填)

**必须满足**:
- 图片路径数组和时长数组长度相同
- 每张图片文件都存在
- 每个时长为正整数(毫秒)

### 第三步:运行批量生成脚本

使用 `PYTHON_PATH` 运行批量脚本,通过 `--images` 和 `--durations` 传入一一对应的图片路径和时长:

```bash
<PYTHON_PATH> <skill目录>/scripts/batch_generate.py \
  --images /path/to/img1.png /path/to/img2.png /path/to/img3.png \
  --durations 10000 15000 8000 \
  [--output-dir ./output] [--no-hand]
```

脚本内部会自动校验:
- `--images` 和 `--durations` 数量必须一致
- 每张图片文件必须存在

校验通过后**串行**逐个调用单张生成脚本,每完成一个打印进度。

### 第四步:返回结果

脚本输出所有任务的汇总信息(成功/失败数量)。告知用户:
- 总共生成了多少个视频
- 成功几个,失败几个
- 输出目录路径
- 如有失败,列出失败的图片

---

## 故障排除

- **`ModuleNotFoundError`**:重新运行 `setup_env.py` 确保依赖完整安装。
- **虚拟环境创建失败**:确认系统已安装 Python 3.8+,且 `python3` 命令可用。
- **批量模式单个任务失败**:不影响后续任务继续执行,最终汇总会列出所有失败项。
Read the full source on GitHub (opens external page)
Context

Related work