Vox 是一个视频代理技能,输入一张照片和一个想法,输出一段 6 至 15 秒的纸质拼贴动画,外观模仿 Vox 解说纪录片。之后每次修改都只需再加一条提示词:换一个人、换一个地点、换一个物体,动画结构保持不变。
项目目录结构位于 video-agent/vox/<slug>/(slug 为 2 至 4 个单词的想法,kebab-case 命名)。目录中包含:photo.jpg(用户原始照片,不做改动)、layers/(拼贴的每一层,带 alpha 的 PNG,另有 JPG/PNG 底板)、raw/(抠像前的 Codex 渲染结果与任务日志)、shots.json(提交给 Codex 的图层清单:名称、类型、宽高比、主体)、animation.html(动画本体,含 window.setT(t),可在任意浏览器打开播放)、capture.mjs(帧转 MP4)以及最终 <slug>.mp4。
使用方式按以下流程进行:
一、工具准备(一次性)。检查 codex --version 与 codex login status、ffmpeg -version、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 ffmpeg。随后在目录中执行 npm init -y 并安装 puppeteer@24(用于截帧的无头 Chrome,一次性下载)。
二、制定方案(一条消息,等待确认)。基于照片与想法像排版杂志页面一样规划拼贴与动作。主体始终使用真实照片,绝不交由 AI 重绘(脸部会漂移),抠图后由代码在页面上印刷为半调网点。另需一个全画幅 9:16 的背景底板(天空、城市、地图、桌面、做旧纸张等),以及 3 至 6 个剪贴层(纪念碑、报纸、钞票、汽车、建筑、云、鸟等),每层独立便于单独运动。动作设计为 6 至 15 秒:镜头全程缓慢推进,图层每 0.5 至 1.5 秒依次入场(滑入、自下升起、自上落下、撕纸擦除),并保持某些持续微动(云飘、双剪贴层扇动的鸟、飘落纸币),如有标题则以撕纸条形式呈现(地点与年份、名称)。整体遵循 12fps 定格节奏。以编号列表展示图层并给出 4 至 6 行动作时间线,等待用户确认,每个图层对应一次 Codex 图像生成。
三、照片抠图,绝不重绘。将用户照片复制为 photo.jpg,使用 uvx --from "rembg[cpu,cli]" rembg i 生成 layers/hero.png。uvx 随 uv 提供(安装脚本或 pip install uv),首次运行会下载模型(约一分钟)。检查 PNG 是否为干净剪影、无残留背景。若抠图不佳或没有 uv,可保留照片为矩形印刷版式,这同样很 Vox:以 layers/hero.jpg 作为带白边和撕纸边缘的印刷品放置(见 references/animation.md 中“The photo as a print”)。若对象从未有照片(如拿破仑、画作),可用公共领域(Wikimedia Commons)的版画或绘画,按同样方式抠图。仅使用已获同意的人物照片或公共领域图像;如用户发送他人照片,提醒一次。半调网点、白色剪刀边框与阴影均由页面添加,真实照片保持原样。
四、用 Codex 生成图层。编写 shots.json,按 references/look.md 构建每条提示词:主体 + 抠图用绿幕语句 + 风格语句。提示词中绝不出现“Vox”一词,图像中不得有商标、文字标或任何可读文字(报纸和纸币仅使用不可辨识的文字纹理)。按 references/look.md 的命令运行任务,后台每次 3 个,命令末尾始终加 < /dev/null,单个任务约 1 至 3 分钟。随后对每个剪贴层执行色度抠像(ffmpeg colorkey 与 despill 滤镜链,输出带 alpha 的 RGBA PNG)。逐层目视检查:放在红底上查看是否有绿色边缘(对应 ffmpeg 检查命令),确认无文字或字母。不合格则修正主体后重跑该层。
五、动画页面。按 references/animation.md 的模板(完整页面已提供并测试过)编写 animation.html,并适配方案中的图层、尺寸、位置与 setT 时间线。保持 setT(t) 为 t 的纯函数,因为截帧会逐帧调用。在浏览器中打开预览(自动播放):open(macOS)、xdg-open(Linux)、start(Windows)。在截帧前修正显示异常。
六、渲染 MP4。按 references/animation.md 编写 capture.mjs,然后执行 cd <dir> && node capture.mjs animation.html <slug>.mp4。渲染速度约为每 1 秒视频耗时 4 秒。交付前抽查起始、中间、结束 3 帧(对应 ffmpeg 抽帧命令)。交付 MP4 路径。音乐或配音由用户在自己的剪辑软件中添加,或使用 /short-editing。
七、用一条新提示词修改。在同一目录、同一页面中只改需要变化的部分:换人(如“用拿破仑来做”)时生成新主体(第三步),沿用相同图层与时间线,页面替换 layers/hero.png 后重新截帧;换物体或地点时新增一个 Codex 图层(第四步)并放入页面,其余不变;换动作或时序时只改 setT;换格式参见 references/animation.md 的“Formats”。绝不要重新生成未变更的图层。
适用场景:将单张照片快速转为具有 Vox 解说纪录片风格的纸质拼贴短片,适合需要动态剪贴叙事的短视频制作。
已知限制:Codex 的图像工具自行决定细节,图层可能带有文字或绿色边缘,必须逐层检查;内容复杂的照片抠图可能丢失头发或手指,此时印刷版式是安全回退方案;每个图层都会计入用户 ChatGPT 套餐的 Codex 用量限制;风格灵感来自 Vox 纪录片,但屏幕上绝不使用其名称、商标或文字标。