Create Whiteboard Video logo

Create Whiteboard Video

Community
Weikezi-AI
create-whiteboard-video

将文章、Markdown 口播稿、SRT 字幕、旁白音频或已有插图制作成可续跑的白板手绘视频项目;开始前确认统一保存目录,支持轮廓与铺色同路径的整图斜向扫描、语义分层曲线蒙版、固定手部画笔、字幕交付确认、场景合成和首中末帧质检。用户要求制作、继续、重渲染或检查白板动画、知识讲解视频、手绘口播视频时使用。

Overview

PublisherWeikezi-AI
Repositorycreate-whiteboard-video
Skill namecreate-whiteboard-video
Stars
53
Forks
20
Bundled files
19
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 19 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by Weikezi-AI on GitHub. Read the source before you install it.

Installation

Install the Create Whiteboard Video AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Weikezi-AI/create-whiteboard-video/tree/main
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Weikezi-AI/create-whiteboard-video.git \
  .claude/skills/create-whiteboard-video
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Create Whiteboard Video in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Create Whiteboard Video on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Create Whiteboard Video is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

创建白板视频

把一次视频制作保存为带 project.json 的项目。将 Skill 安装目录只作为共享程序来源;把文案、图片、音频、预览、成片、项目专用画笔副本、虚拟环境、缓存和临时文件统一写入用户确认的项目目录。

选择入口

  • 收到文章或口播稿:初始化 text 项目并生成初始语义分镜。
  • 收到 SRT:按时间聚合成场景,同时保留场景内相对字幕时间。
  • 收到已有图片:先建立项目和分镜,再把图片附加到对应场景。
  • 收到已有 project.json:先运行 status 和 validate,只继续未完成或失败的阶段。
  • 仅想快速验证效果:允许整图单区域标注;明确说明这只是烟雾测试,不代表最终叙事编排。

选择绘制策略

场景图确认后选择一种策略,不把两套流程混用:

  • diagonal-scan(默认):整幕作为单一区域,从左上向右下推进;每条笔触从左下画向右上。轮廓和铺色必须复用同一组采样点及换行顺序,不做人物抠图,不生成或审批曲线蒙版。适合水彩插画、复杂背景和用户希望整图逐步完成的场景。
  • semantic-stream:按“背景 → 人物/物体 → 动作 → 结果”分层出现。仅在用户明确需要对象分阶段绘制时使用;人物和物体必须生成并确认像素级 Alpha 蒙版。

若用户未指定,先制作一段 diagonal-scan 烟雾测试供确认;未经确认,不批量渲染全片。

0. 确认统一保存目录

正式准备环境、生成分镜或制作任何素材前,先让用户选择最终的视频项目根目录。即使用户已给出路径,也要展示解析后的完整绝对路径,并询问“是否确认将本项目的素材、临时文件、运行环境和成片全部保存到这里”。只有用户明确确认后才能继续;不得默认使用当前目录、系统临时目录、桌面或 Skill 安装目录。

确认后,项目结构统一为:

text
<项目根目录>/
├── project.json
├── source/  audio/  scenes/  previews/  output/
└── .whiteboard-video/
    ├── .venv/
    ├── cache/pip/
    ├── tmp/
    └── assets/drawing-hand.png

共享的 Skill 脚本和系统级 FFmpeg 不复制进项目;第三方图片生成服务或客户端自身的内部缓存也不受本 Skill 控制。生成或下载到外部临时位置的图片、音频必须先复制进 scenes/ 或 audio/,再附加到项目;其余由本工作流创建或复制的文件必须留在项目根目录内。

继续旧项目时,先展示现有 project.json 所在目录并取得确认,再本地化其运行目录和画笔:

powershell
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py localize-storage <project.json> --user-confirmed-project-dir

准备运行环境

先确定本文件所在目录为 SKILL_ROOT。使用用户刚确认的绝对路径运行:

powershell
python <SKILL_ROOT>/scripts/prepare_env.py --project-dir <已确认的项目根目录> --user-confirmed-project-dir

读取输出中的 PROJECT_ROOT、RUNTIME_ROOT、CACHE_DIR、TEMP_DIR 与末行 ENV_PY。后续所有脚本都使用该解释器。脚本会把虚拟环境、pip 缓存和临时目录固定在项目的 .whiteboard-video/ 中,并拒绝项目外的虚拟环境路径。

工作流

1. 初始化并规划

powershell
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py init <已确认的项目根目录> --source <文案.md或字幕.srt> --ratio 16:9 --user-confirmed-project-dir
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py plan <项目目录>/project.json

检查并改写 scenes[].narration 与 visualPrompt。按语义而不是固定字数切分;短视频通常每幕 5–12 秒,知识讲解通常 10–20 秒,复杂画面可到 30 秒。未经用户确认分镜,不批量生成图片。

详细字段见 references/project-schema.md。

2. 准备音频并确认字幕方式

如果用户已有最终旁白或 SRT,把它们附加到项目:

powershell
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py audio <project.json> --narration <旁白.wav> --subtitles <字幕.srt>

audio 命令会把一条内含多句话的字幕按句子拆开,按字数比例重新分配原时间段,并写入 *.sentences.srt。每次只显示一句;自动去掉句末句号,保留问号和感叹号。最终项目引用拆句后的字幕,同时保留 subtitlesSource 指向原 SRT。

向用户展示代表性字幕文本并说明内置字幕样式,然后必须让用户明确选择一种交付方式;不要默认烧录:

powershell
# 直接烧录进画面
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py approve-subtitles <project.json> --mode burn-in --user-confirmed

# 不烧录,随成片导出 output/final.srt,便于后期添加
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py approve-subtitles <project.json> --mode sidecar --user-confirmed

# 成片和交付目录都不带字幕
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py approve-subtitles <project.json> --mode none --user-confirmed

字幕文件变化后确认自动失效。finalize 在字幕方式未确认时必须停止。

先锁定旁白,再决定场景时长。没有旁白服务或录音时,只交付图片和标注预览,不声称已经完成配音。V1 可合成单条旁白,并按用户选择烧录、旁挂或省略字幕;背景音乐只记录在清单中,暂不自动混音。

3. 生成或附加场景图

遵守 references/visual-style.md。缺少场景图时,使用可用的图像生成能力逐幕生成,并保持同一画幅、纸张颜色、线条和角色外观。要求内容铺满完整画布,禁止为了字幕在底部或其他方向预留空白条;字幕是否存在由后续确认决定。每幕只表达一个核心动作,画面内不生成文字、标签或水印。

图片生成因网络、额度或服务错误中断时,保留已完成图片并继续剧本、旁白、字幕、标注预览等准备工作。把未完成场景保持为 planned,列出缺失项;未经用户明确同意,不用占位图、重复图或代码备用图补齐,也不运行 approve-render、render 或 finalize。确需临时图验证布局时用 attach --provisional,该状态会在脚本层阻止渲染确认。

把通过检查的图片附加到场景:

powershell
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py attach <project.json> --scene scene-01 --image <scene-01.png>

该命令会生成整图单区域标注,可直接用于 diagonal-scan。保持一个覆盖完整画布的 structure 元素并使用 maskMode: none;不运行 refine-masks 或 approve-masks。

只有选择 semantic-stream 时,才把标注拆成“场景铺垫 → 关键人物/物体 → 动作变化 → 反应/结果”。矩形只用于圈定对象搜索范围和时序,禁止充当擦除区。拆分完成后生成像素级透明 PNG 蒙版:

powershell
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py refine-masks <project.json> --scene scene-01 --edge-padding 2

人物、动物、物体、动作与结果区域必须使用 maskMode: raster 和 maskImage;蒙版 Alpha 边缘要逐像素贴合可见内容。粗多边形、矩形和 auto 内容检测只作旧项目兼容,不能通过正式渲染校验。环境结构使用 maskMode: none。标注格式见 references/annotation-schema.md。

自动生成蒙版后必须查看标注预览;如果蒙版粘连到家具或漏掉浅色衣物,先缩紧 region 或手工修正透明 PNG,再重新预览。单张合成图无法凭空还原人物背后的真实背景。默认在 Alpha 轮廓内保留纸色,等待对象被画出;如果用户要求轮廓内也保持自然背景,素材阶段必须另备一张无人物的干净背景层,不用模糊或自动补洞冒充真实背景。

4. 预览和校验

powershell
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py preview <project.json> --scene scene-01
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py validate <project.json> --render-ready

diagonal-scan 不检查绿色人物蒙版;检查整图是否铺满画布,并先渲染一段短预览,确认轮廓和铺色都沿左下→右上的同一路径、扫描顺序从左上推进到右下、换行时没有跨线连笔。

semantic-stream 需要可视化编辑时打开 assets/annotation-editor.html,选择场景文件夹。选中人物后点击“开始修边”,绿色区域就是实际 Alpha 蒙版;用“补入人物/擦除背景”画笔沿曲线修正并保存 PNG。不要把搜索矩形当作蒙版。禁止在缺少细腻蒙版、校验失败、区域越界、时间重叠或画布尺寸不一致时继续正式渲染。

只有 semantic-stream 才逐幕把绿色曲线预览交给用户。用户明确确认轮廓足够细腻后,记录与蒙版文件 SHA-256 绑定的许可:

powershell
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py approve-masks <project.json> --scene scene-01 --user-confirmed

蒙版 PNG 变化后确认自动失效,validate --render-ready 必须阻止继续。

5. 渲染场景

所有图片和标注通过检查后,先把素材预览交给用户。只有用户明确说可以生成视频时,才记录一次与当前素材指纹绑定的许可:

powershell
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py approve-render <project.json> --user-confirmed

缺图、缺标注时该命令失败;确认后图片、标注、音频、字幕或视频参数发生变化,许可自动失效,必须重新请用户确认。

初始化时把 Skill 内置的 assets/drawing-hand.png 复制为项目专用的 .whiteboard-video/assets/drawing-hand.png;渲染只读取项目副本,画笔位置跟随当前真实落墨路径。素材缺失或不可读时必须停止,不得静默切换为程序化笔头。

默认使用已确认的整图斜向扫描。diagonal 必须同时传给轮廓和铺色;脚本会拒绝只设置其中一个:

powershell
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py render <project.json> --ink-path diagonal --color-fill diagonal --pointer hand --pause auto

仅在用户选择 semantic-stream 时使用网格笔迹;清晰细线稿再尝试 skeleton:

powershell
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py render <project.json> --ink-path grid --pointer hand --pause auto

只重渲染一幕时重复使用 --scene scene-02。--pointer pen 作为兼容别名也使用同一固定素材;--pointer none 仅用于技术诊断,不用于正式视频。保持所有场景的画幅、FPS 和渲染参数一致。

6. 合成并质检

powershell
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py finalize <project.json>
<ENV_PY> <SKILL_ROOT>/scripts/video_project.py qa <project.json>

finalize 同时检查渲染许可和独立的字幕方式确认;任一未确认或指纹失效时必须停止。

按 references/quality-checklist.md 检查首帧、中段、末帧、时长、音画和未开始区域。出现提前露线、手部漂移、字幕遮挡或时长偏差时,只修复对应场景后重新合成。

交付

交付以下结果并明确未完成项:

  • project.json
  • 每幕源图、标注和 MP4
  • output/final.mp4
  • output/qa-report.json 与首中末帧
  • 用户选择 sidecar 时交付 output/final.srt
  • 如未配置旁白、字幕或背景音乐,逐项说明

实现来源

本项目由 Weikezi-AI 独立维护。修改渲染核心时同时运行项目测试和真实 MP4 烟雾测试。

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Create Whiteboard Video AI skill do?

将文章、Markdown 口播稿、SRT 字幕、旁白音频或已有插图制作成可续跑的白板手绘视频项目;开始前确认统一保存目录,支持轮廓与铺色同路径的整图斜向扫描、语义分层曲线蒙版、固定手部画笔、字幕交付确认、场景合成和首中末帧质检。用户要求制作、继续、重渲染或检查白板动画、知识讲解视频、手绘口播视频时使用。

Why use Create Whiteboard Video on TypingMind?

Because you install it once and use it with any model. Create Whiteboard Video is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Create Whiteboard Video in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Weikezi-AI/create-whiteboard-video/tree/main. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Create Whiteboard Video?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Create Whiteboard Video?

As many as you like. As long as a model supports skills, you can use Create Whiteboard Video with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Create Whiteboard Video AI skill free?

Yes. It is published on GitHub by Weikezi-AI under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇