SuperAPI AI 工具集

tier-list

设计与创作

查看项目

更新于 10-21 06:41

技能介绍

用途:把口头讲述的分级排名制作成可视化的 S 到 F 天梯榜单视频。画面顶部的榜单板会随讲述逐步填充:每个条目从说话者头部飞出,并在说出的那个词上落入对应行,观众会等待下一个条目出现。适用于排名、从最好到最差、工具或战术比较、犀利观点等场景。

使用前提:先运行 video-intake 和 opening-hook。该技能会向起步项目的 video.js 增加一种 beat 类型。它面向 9:16 竖屏;若要制作 every-format 的 4:5、1:1 和 16:9 版本,需把榜单板放入完整 beat,并去掉 break-out。

所需输入:video-intake 产出的剪辑片段、face/ 帧和 words.js;榜单列表,每项包含显示在 chip 上的文字(建议 2 个词,最多 3 个)、所属层级,以及说出该项时的词;可选榜单标题,30 字符以内;以及本 beat 的人物抠像。抠像由该技能的 scripts/matte.py 使用 RobustVideoMatting 本地免费生成。示例命令为 python3 -m pip install torch torchvision pillow numpy scipy(只需一次,scipy 可选,用于填补小孔洞),以及 python3 <this skill>/scripts/matte.py my-video --from 3.1 --to 12.8。它读取 my-video/face/,写出 my-video/cut/000094.webp 等文件,帧号保持一致,并打印 headTop(画面像素中头顶位置)。模型会从 GitHub 下载一次,可在 Apple Silicon、NVIDIA 显卡或 CPU 上运行;只对该 beat 做抠像。

使用方式:第 1 步,询问上述输入并等待。排名由用户决定,绝不为了更好看而把条目移到其他层级。第 2 步,生成 beat sheet 并等待确认:每项一行,包含 chip 文本、层级、词及其在 words.js 中的时间;条目落位至少间隔 0.5 秒。第 3 步,生成构建说明,包括把模板复制到 video.js 顶部、在 VIDEO.beats 中添加 tierList({...}) beat、保持口播顺序、默认层级为 ['S','A','B','C','D','F']、所有值仅由 time 决定以便 seek(t) 得到相同帧、在最后一个新 beat 后加一个 face beat、在 my-video 中运行 node render.mjs 渲染(若找不到 Puppeteer 先执行 npm i puppeteer),并渲染首个条目词前 0.2 秒、该词上、中间条目词上、最后一个条目词上的静帧供查看。第 4 步,先渲染静帧检查,再渲染完整视频,然后运行 video-check。

时间规则:每个 chip 在其词上落位;词前 0.45 秒从头部飞出,弧线上升并在词上落入所在行;层级标签从词开始脉动 0.35 秒;词查找从上一项之后开始,因此重复说出的词也能落到正确 chip;榜单板在 beat 前 0.3 秒淡入,标题在 0.45 秒内升起。

检查要点:break-out 约 130px 的头部应高出卡片,若没有则 headTop 有误;边缘要裁掉头发,不能有光晕或硬线;字幕胶囊覆盖接缝但不得盖住眼睛;每个词上对应 chip 已在行内,词前 0.2 秒仍在空中;chip 不溢出所在行,满行会缩小 chip;两个 chip 落位间隔不小于 0.5 秒;顶部 220px 不放文字,标题位于 y 230,榜单板结束于 y 850;排名必须与用户给定一致,不添加未说出的条目;chip 上不要放 logo,只用文字。

限制与注意事项:没有提供具体收费、价格或平台支持信息;需要本地 Python 与 Node 环境,模型首次从 GitHub 下载;只对目标 beat 做抠像,整段视频抠像会占用大量磁盘;居中裁剪会导致头顶正好在卡片边缘而无法 break-out,应从测得的头顶位置裁剪;抠像必须与卡片使用完全相同的裁剪,否则卡片边缘会出现两个人物;六行 25px 的 chip 显得小,六行时 chip 文字约 32px,行数越少字越大。