关于 vox
vox 是视频创作技能,可将一张照片和一个想法制作成 6–15 秒的纸拼贴动画。它面向需要可编辑分层场景的创作者,修改时只需更新相关图层或动作。
主要功能
- 01规划拼贴画面与动作时间线
- 02将提供的照片用作主体
- 03使用 Codex 创建独立图层
- 04在浏览器中预览动画
- 05将成片捕获为 MP4
适用场景
- 01将照片和想法做成短篇解说动画
- 02更换场景同时保留原有动作
- 03调整时长而不重做未变图层
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ melvynx/ video-agent-skills --skill vox安装后在 Claude Code 中输入/vox确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/animation.mdlook.md详细介绍
Vox
输入一张照片和一个创意,输出一段 6 到 15 秒、具有 Vox 解说纪录片风格的纸艺拼贴动画。之后每次修改都只需再给出一条提示词:换一个人、一个地方、一个物件,动画风格保持不变。
用对方的语言与他们交流。<dir> = 他们项目中的 video-agent/vox/<slug>/(slug:用 2 到 4 个词概括创意,并采用 kebab-case)。
video-agent/vox/<slug>/
├── photo.jpg their photo, untouched
├── layers/ every layer of the collage (PNG with alpha, plates in JPG/PNG)
├── raw/ Codex renders before the chroma cut, and the job logs
├── shots.json the layers asked to Codex (name, kind, ar, subject)
├── animation.html the animation: window.setT(t), opens in any browser and plays
├── capture.mjs frames -> MP4
└── <slug>.mp4
1. 工具(一次性)
codex --version && codex login status
ffmpeg -version | head -1
node --version
- 缺少 Codex:运行
npm i -g @openai/codex(Node 20+)或brew install codex。尚未登录:让他们自行运行codex login(“Sign in with ChatGPT”)。绝不要在聊天中索要密钥或密码。 - 缺少 ffmpeg:macOS 运行
brew install ffmpeg,Linux 运行sudo apt install ffmpeg,Windows 运行winget install Gyan.FFmpeg。 - 然后在
<dir>中运行:npm init -y >/dev/null && npm i puppeteer@24(用于捕获画面的无头 Chrome,只需下载一次)。
2. 规划(先发一条消息,然后等他们确认)
根据照片和创意,先像设计杂志页面一样规划拼贴,再规划动画动作:
- 主角:使用他们的照片,始终使用真实照片(绝不由 AI 重新绘制:面孔会变样)。抠出主体(步骤 3),再由页面中的代码将其处理成半色调印刷效果。
- 背景底图:一张铺满 9:16 画面的纸艺场景,用来设定地点和时间(天空、城市、地图、书桌或一张泛黄的纸)。
- 3 到 6 个剪贴图层:故事中的物件(纪念碑、报纸、钞票、汽车、建筑、云、鸟)。每个物件都是独立图层,可以单独移动。
- 动画动作(6 到 15 秒):镜头全程缓慢推进;图层每隔 0.5 到 1.5 秒依次进入(滑入、从下方升起、从上方落下,或用撕纸转场);安排某些元素持续活动(云朵飘动、用两个剪贴图让鸟拍翅、纸片飘落);如果创意需要,可在撕纸条上放置一个标题(地点和年份、姓名)。所有动画都以 12 fps 的定格动画节奏播放。
用编号列表展示各图层(名称、背景底图或剪贴图、展示内容),并用 4 到 6 行展示节拍时间线。等待对方确认:每个图层都对应其规划中的一张 Codex 图片。
3. 他们的照片:抠出主体,绝不重新绘制
mkdir -p <dir>/layers <dir>/raw
cp "<their photo>" <dir>/photo.jpg
uvx --from "rembg[cpu,cli]" rembg i <dir>/photo.jpg <dir>/layers/hero.png
uvx 随 uv 一起提供(curl -LsSf https://astral.sh/uv/install.sh | sh,或 pip install uv)。首次运行时会下载模型(约一分钟)。检查 PNG:轮廓应干净,不能残留背景碎块。然后:
- 抠图效果不佳或没有 uv:改用矩形照片印刷效果,这种方式也很有 Vox 风格:将
layers/hero.jpg作为带白色边框和撕裂边缘的印刷品放置(参见references/animation.md中的“The photo as a print”)。 - 没有本人照片的人物(如拿破仑、画作):使用公有领域的版画或画作(Wikimedia Commons),并用相同方式抠出主体。
- 只使用已同意的人物照片或公有领域图片。如果他们发送了他人的照片,要提醒一次。
半色调效果、白色剪纸边框和阴影都由页面添加(参见 references/animation.md),因此真实照片始终保持原样。
4. 用 Codex 制作图层
编写 <dir>/shots.json,并使用 references/look.md 为每个提示词构建内容:主体描述、剪贴图层的绿幕句子,以及风格句子。提示词中绝不出现“Vox”一词,绝不包含徽标、文字标识或任何可读文字(报纸和纸片上只能使用不可读的字体纹理)。
按照 references/look.md 中的命令运行任务,每次在后台运行 3 个,并始终以 < /dev/null 结尾。每个任务需要 1 到 3 分钟。然后对每个剪贴图层执行色度抠图:
ffmpeg -v error -y -i <dir>/raw/<name>.png -vf "colorkey=0x00FF00:0.30:0.10,despill=type=green:mix=0.6:expand=0,format=rgba" <dir>/layers/<name>.png
逐一目视检查每个图层:将其放在红色背景上,查看是否有绿色边缘(ffmpeg -v error -y -f lavfi -i color=red:s=1024x1536 -i <layer> -filter_complex "[1:v]scale=1024:-1[a];[0:v][a]overlay=0:0" -frames:v 1 <dir>/raw/check-<name>.png),并确认其中没有文字或字母。效果不佳时,修改主体描述,然后重新运行该图层。
5. 动画页面
根据 references/animation.md 中的模板编写 <dir>/animation.html(完整页面已在其中并经过测试),并根据计划进行调整:图层、尺寸和位置,以及 setT 中的时间线。让它看起来像 Vox 纪录片的规则也在同一文件中。确保 setT(t) 是纯函数:捕获过程会逐帧调用它。
在浏览器中打开页面进行预览(页面会自动播放):open <dir>/animation.html(macOS)、xdg-open(Linux)、start(Windows)。在捕获之前修复看起来不对的地方。
6. MP4
根据 references/animation.md 编写 <dir>/capture.mjs,然后:
cd <dir> && node capture.mjs animation.html <slug>.mp4
每秒视频约需 4 秒处理时间。展示之前先查看 3 帧(开头、中间、结尾):ffmpeg -v error -y -ss <t> -i <slug>.mp4 -frames:v 1 -vf scale=540:-1 raw/frame-<t>.jpg。交付 MP4 文件路径。音乐或旁白可在他们的编辑器中添加,也可使用 /short-editing。
7. 用另一个提示词修改
使用相同的 <dir> 和页面,只修改需要改变的内容:
- 换另一个人(“用拿破仑来做”):换一个新的主角(步骤 3),图层和时间线保持不变:页面会替换
layers/hero.png,然后重新捕获。 - 换另一个物体或地点:新增一个 Codex 图层(步骤 4),放入页面,其余保持不变。
- 换另一个动作或时长:只改
setT。如需其他格式,请参阅references/animation.md中的“Formats”。
不要重新生成未发生变化的图层。
坦诚说明局限
- Codex 的图像工具会自行决定细节:图层上可能带有文字,也可能出现绿色边缘。务必检查。
- 从复杂照片中抠图可能会漏掉头发或手指:印刷版是稳妥的备用方案。
- 每个图层都会计入其 ChatGPT 计划的 Codex 使用限额。
- 视觉风格借鉴 Vox 纪录片:画面中绝不能出现其名称、徽标或文字标识。