Communitygithub.com

sticker-explainer-video

把一段中文口播稿 + 配音做成「贴纸科普」风格的长讲解视频(横屏 1080p,5–20 分钟):蓝灰底板上的抠图人物贴纸、纸片卡片、照片贴纸和线条图标,镜头沿橙色虚线「线索」在一整块大画布上平移;章节之间插入调查板式思维导图;单行中文字幕(≤14 字,不拆词)、底部章节进度条、音效和配乐自动混音。

sticker-explainer-video란 무엇인가요?

这是一个专为 AI 代理设计的技能,用于将中文口播稿和配音自动转化为「贴纸科普」风格的调查式长视频(5–20 分钟)。它基于 motion-showreel 框架构建,采用「一块大画布 + 平移镜头」的视觉叙事逻辑:人物为抠图贴纸,地点和信息用照片贴纸与卡片呈现,章节间插入思维导图,配以单行字幕、底部进度条和自动混音。该技能适用于 B 站、抖音等平台的科普、新闻解读或调查类讲解视频,即使没有明确提及「贴纸」一词。它支持 ElevenLabs 配音、多段音频拼接、自动转写对齐、节奏剪辑和逐帧渲染,并内置联网核查、版权管理等安全检查。所有操作通过脚本自动化完成,用户只需提供口播稿和配音,即可生成符合特定风格的高质量长视频。

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/qic034-collab/sticker-explainer-video/tree/HEAD

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

贴纸科普讲解视频(Sticker Explainer)

把口播稿和配音做成一支「调查板」式的讲解视频。画面骨架:一块很大的深蓝灰底板,每个场景是板上的一个区域(panel),镜头沿一条橙色虚线线索从一个区域滑到下一个;人物是带白边的抠图贴纸,地点和物件是照片贴纸,信息是纸片卡片和带图标的标签;每到新章节,画面停一下,弹出思维导图点亮下一条线索。

本 skill 建立在 motion-showreel(ConardLi/garden-skills)之上:它提供 render(t) 页面约定、逐帧渲染、音效合成和成片检查。先确认它已安装(npx skills add ConardLi/garden-skills,或复制到 ~/.claude/skills/motion-showreel)。本 skill 只加风格、流程和中文长片工具,不复制它的代码。

完整示例:examples/huang-resignation/(13 分 43 秒的成片,见仓库 Release)。每一步的命令见 references/workflow.md;画面函数见 references/engine-api.md;视觉规则见 references/style.md。

开工前问清(一次问完,最多 4 个问题)

  1. 配音:用户自己用 ElevenLabs 生成(推荐;稿子里的 [serious] [short pause] 是 v3 的标签),还是先做无声版。多段配音要问清怎么拼(例如「开头用短的,后面按字幕接长的」)。
  2. 画幅:默认 16:9、1920×1080。
  3. 人物:默认只用公有领域或 CC 授权的照片抠图(美国政府官员的官方照属于公有领域);没有授权照片的人只用名牌卡片。
  4. 字幕:默认中文、单行、每行 ≤ 14 字。

用户说「有任何不确定的向我提问」时,把真正会改变结果的分歧问出来;能从录音、代码或常识里定下来的不要问。

流程

以录音为准,不以稿子为准。 录音常和贴来的稿子不一样(漏句、改词、换顺序)。字幕和画面跟录音走,并在 brief 里列出差异告诉用户。章节等位置如果按稿子找不到对应句子,选录音里最接近的位置,说明调整了哪里。

  1. 建项目:export MOTION_SHOWREEL=$(realpath <motion-showreel 目录>),然后 sh scripts/new_project.sh <dir>,把配音放进 audio/src/,填 video.config.json。所有命令都写项目的绝对路径。
  2. 拼配音(多段时):先用 transcribe.py <dir> --take <file> 看每段的句子和时间,在句间停顿里选下刀点,写进 voice.splice,再 splice.py。
  3. 转写和对齐:transcribe.py,然后 align.py。whisper.cpp 整段转写的时间戳几分钟后会漂移,所以脚本按停顿切成约 40 秒的小段重转一遍拿准确时间。whisper 偶尔会输出繁体字,脚本用 opencc 统一转成简体。读一遍 timeline/segments.json,把听错的人名、他/她/它等加进 fixes,重跑。
  4. 剪节奏:voedit.py。章节停顿(第一章前做总览时 7.5 秒,其余 4 秒)和整段变速(如开头 1.1×)都在这里做。它只插静音、只变速,从不剪掉或调换语句。输出 vomap.json,后面的时间都经过它换算,所以改节奏不会让画面错位。
  5. 字幕和时间轴:timeline.py 生成 timeline.js。字幕一屏一行、≤ 14 字(拉丁字母算 0.55 字),只在词与词之间换屏,人名、机构、金额、书名号标题都放进 subtitles.protect,不会被拆开。
  6. 关键帧:先做 3 张关键帧 给用户确认风格,再写全片。
  7. 写场景:在 episode.js 里写 PANELS,元素出现时间都写成 V(句子号, 偏移)。每写完一批场景,出一张联系表(render.mjs --still … --sheet)自查遮挡。
  8. 声音:events.mjs 读出页面登记的音效时间;用 motion-showreel 的 audio.mjs build score.mjs --raw --out audio/sfx.wav 合成音效;mix.py 混音。
  9. 渲染:build.sh 依次做确定性检查、逐帧渲染和成片检查(13 分钟 1080p 约 10 分钟)。渲染完抽帧检查思维导图、字幕和照片有没有遮挡。

用户反复提过的要求(默认就这样做)

  • 转场要丝滑:所有场景都在一块板上,镜头沿线索平移,主角贴纸作为 actors 跟着镜头滑进下一个场景,不切掉重来。
  • 章节导图:章节分界时口播停顿,底板压暗,连线画出,节点变橙并出现扫描框,已完成的打勾。第一次出现时做「总览」:分支逐个弹出,再点亮第一章,之后才出现下一个场景的内容。
  • 进度条放在字幕下方,章节之间的每一段写章节名。
  • 多用图标和图片:标签和卡片带线条图标;地点和机构用照片贴纸。示意性的照片标「示意」。
  • 元素不能挡字幕和左上角的章节标题:屏幕下方约 200 px 留给字幕,左上角(约 x < 700、y < 120)留给标题,大字也不要放进这两块区域。
  • 音效不能盖过口播和配乐。思维导图用温和的马林巴「板块」音(总览时每个分支一个五声音阶音),点亮时保留一声点击。不要用 riser、glitch 这类「科技感」音效。
  • 配乐:最后一首选有自然结尾的曲子,让结尾正好落在片尾,开头在某个章节停顿处淡入。章节停顿时音乐压低 6 dB。
  • 音量:只用线性增益。默认人声 −15 LUFS、音乐 −26 LUFS(人声比音乐高约 11 dB),音效比人声低约 12 dB,峰值限制 −1.5 dBFS,这样整片能通过 −14 ± 1.5 的响度检查。用户说「口播下调 / bgm 上升」时按 dB 改 levels 和 music.lufs;如果整体因此低于检查标准,告诉用户这是预期的(示例片就是按作者要求用的 −19.3 / −30)。

事实、版权与安全

  • 新闻类内容的事件常常发生在模型的知识截止之后:要联网核实,把来源写进片尾;找不到原文的数字列进 brief 的「待核对清单」交给用户。
  • 未证实的指控在画面上标明(「仍在调查」「某部门否认」「示意」);关联不等于证据。不在任何人的照片旁贴「间谍」之类的标签。
  • 照片只用公有领域或 CC 授权的,许可信息记在 assets/credits.json 并写进片尾。Pixabay 等配乐可以用在成片里,但不能把曲子文件本身再分发。
  • 磁盘:渲染、音频中间文件和成片合计约需 1 GB。先查空间;不够时只删可重建的中间文件。删用户的文件或下载的模型前先问。

文件

sticker-explainer-video/
├── SKILL.md
├── scripts/
│   ├── new_project.sh       建项目(motion-showreel scaffold + 本模板)
│   ├── cfg.py               公共函数(读 video.config.json、ffmpeg、响度、停顿检测)
│   ├── splice.py            多段配音拼接
│   ├── transcribe.py        whisper.cpp 两遍转写 → 句子文本 + 逐字时间 + 停顿
│   ├── align.py             对齐 → timeline/sentences.json
│   ├── voedit.py            章节停顿、变速 → audio/vo-edit.wav + vomap.json
│   ├── timeline.py          时间映射 + 字幕切分 → timeline.js
│   ├── events.mjs           从页面读出音效时间
│   ├── mix.py               人声 + 配乐 + 音效 → audio/final.wav
│   └── cutout.swift         Apple Vision 人像抠图(macOS)
├── assets/template/         index.html、engine.js、episode.js(示例场景)、score.mjs、video.config.json、fonts
├── references/
│   ├── workflow.md          每一步的命令和检查点
│   ├── engine-api.md        engine.js 的绘图函数与 start() 参数
│   └── style.md             配色、版式、转场和声音规则
└── examples/huang-resignation/   完整示例(代码、配置、时间轴、照片、配音)

관련 스킬