SuperAPI AI 工具集

video-effects

设计与创作

查看项目

更新于 10-21 12:42

技能介绍

用途

video-effects 是 20 个“一条命令一个特效”视频技能背后的共享引擎。每个特效技能是一张短卡片,调用这个引擎。把本文件夹安装在它们旁边即可使用。

适用场景:短视频(reel)中一个让人停下滚动的瞬间、两个点之间的转场,或一个结尾。

主要能力

引擎提供 20 种特效,作用于你自己的口播片段,输出一个 MP4:

  • grid-dive:拉远进入由你片段组成的瓦片墙,再俯冲回来
  • title-orbit:你的文字环绕你的头部,然后镜头穿过一个字母(显示文字)
  • magnifying-lens:一块玻璃透镜放大你的胸口,然后展开
  • portal:一圈蓝光打开,镜头穿过它
  • clone-room:你的复制体从你身后走出
  • infinite-zoom:框中框,镜头穿过两者
  • cube-spin:你的画面在 3D 立方体上转四分之一圈
  • liquid-glass:一滴玻璃长成一块玻璃板,镜头俯冲穿过
  • screen-in-screen:拉远到一台播放你片段的笔记本电脑,再俯冲回来
  • frame-break:你从自己的一张打印照片中探出身来
  • tile-tunnel:向后飞过一条隧道,再回到你身上
  • depth-ui:应用窗口以不同深度漂浮在你周围(显示文字)
  • vertigo:沿网格走廊的移动变焦(dolly zoom)
  • phone-fan:你的画面在一部手机上,另外四部在后方展开
  • shatter:你的画面像玻璃一样裂开,碎片飞过
  • spotlight:灯光暗下,一束剧院灯光打在你脸上
  • pull-back-reveal:拉远显示你的片段位于一个视频编辑器中(显示文字)
  • ribbon-wrap:一条带文字的丝带缠绕你(显示文字)
  • zoom-through:先是一段带提问的聊天,然后飞入你的片段(显示文字)
  • head-pop-out:你的头从一块蓝色面板中弹出,用作结尾(显示文字)

其中六个特效会显示文字,可通过 --words 指定。

使用方式

一次性配置

需要 ffmpeg、Node 18 或更新版本,以及带 torch 的 Python 3。

cd ~/.claude/skills/video-effects
npm i puppeteer
python3 -m pip install torch torchvision pillow numpy

人物抠像来自 RobustVideoMatting。torch.hub 首次会从 GitHub 下载模型。它采用 GPL-3.0 许可,未随本仓库捆绑。它可运行在 Apple Silicon、NVIDIA 显卡或 CPU 上(较慢)。

运行一个特效

node ~/.claude/skills/video-effects/run.cjs list
node ~/.claude/skills/video-effects/run.cjs grid-dive my-clip.mp4 grid-dive.mp4
node ~/.claude/skills/video-effects/run.cjs title-orbit my-clip.mp4 title-orbit.mp4 --words "BIG NEWS"

选项

  • --at 1.2:特效开始的时间,单位为秒。默认 0.6 秒,短片会更早
  • --len 1.5:特效播放时长。每个特效有自己的默认值
  • --words "...":显示的文字,用于六个会显示文字的特效
  • --from 4 --to 9:只使用片段的这一部分
  • --stage blue:你身后的影棚颜色:white(默认)、blue 或 grey
  • --no-fit:保留你的取景。默认情况下你的头部会被缩放并居中到特效预期的位置
  • --check:只做适配并加载特效,不渲染。只需几秒
  • --keep:把工作文件保留在 <out>.work/

工作原理

  1. prep.py frames 在五个采样帧中找到你的头部,将片段缩放并裁剪到 1080x1920,使你的头部位于特效预期的位置,并写出每一帧。
  2. page/ 中的页面从 fx/ 加载特效,并计算出需要抠像的帧。
  3. prep.py matte 仅在这些帧上把你抠出来。
  4. Chrome 以每秒 60 帧拍摄。每一帧仅由时间决定绘制,因此检查与渲染结果始终一致。
  5. ffmpeg 将成对帧混合为 30fps,带轻微运动模糊,并写出 H.264(limited range,bt709)及你的音频。

特效前后的画面是你的片段按特效取景呈现,比适配帧紧 1.14 倍。以自身布局开场的特效会在 0.3 秒内从你的画面溶解进入。

发布前检查

  • 看一遍。从特效中段和两个交接处截取静帧。你的脸不应出现重影,也不应缺失。
  • 适配。阅读 run.cjs 打印的提示行。头部靠近画面顶部或边缘意味着特效会偏离目标。拍摄时在头顶上方留出空间。
  • HDR。iPhone HDR 片段会显得发白。先导出为 SDR(Rec.709)。run.cjs 会给出警告。
  • 时间。在测试中,Apple Silicon Mac mini 上抠像约为每秒 6 帧。head-pop-out 会一直抠到结尾的每一帧,因此该片段要短。

限制

  • 依赖 ffmpeg、Node 18+、带 torch 的 Python 3,以及 puppeteer、torch、torchvision、pillow、numpy。
  • 抠像模型 RobustVideoMatting 为 GPL-3.0 许可,未随包捆绑,首次运行需从 GitHub 下载。
  • CPU 上运行较慢;head-pop-out 需抠像到结尾,片段应保持短。
  • iPhone HDR 片段需先导出为 SDR(Rec.709),否则画面发白。
  • 头部靠近画面顶部或边缘会导致特效偏离目标,拍摄时需在头顶留出空间。
  • 关于收费、价格、平台支持范围等更多信息,资料暂未提供。