过去这半个月,如果你经常刷 X 的技术圈,大概率被一种全新形态的视频刷屏了:极其丝滑的动态排版、精准卡点的 3Blue1Brown 式数学动效、科技感拉满的终端打字机效果,或是极简折纸风的讲解短片。
它们没有任何传统文生视频模型常见的那种“抽卡融化感”:人物手指不会莫名其妙变成六根,画面的几何线条平直利落,界面文字清晰锐利到每一个像素,背景的轻微音效甚至精准地卡在每一个方块形变的瞬间。
更魔幻的是,这些画面没有一帧是模型“生成”出来的像素。它们是 Claude Opus 5.5 写出来的前端代码,由无头浏览器一帧一帧截下来,再用 ffmpeg 合成视频。
随后,马斯克发文确认,Grok Bot 开始在后台根据任务类型动态路由最合适的模型,名单排在第一位的就是 Claude Opus 5.5;紧接着第二天清晨,Grok Bot 官方宣布支持原生搜索、阅读和监控 X,面向所有用户开放,各个账号的会话在当天陆续生效。
这两件事叠加在一起,等于直接给所有独立创作者和开发者递上了一整套自动化视频工作站:一台你合上电脑它也照样在跑的云端 Linux 电脑,背后接着顶级的编程模型,手里握着实时的 X 信息流,随时准备替你把一行需求变成可发布的成片。
这两天,我泡在 Grok Bot 里连续做了三条开源项目宣传片和一条二次创作短片,再往前还用同一套流程做过两条口播动画《复利》和《烂梨效应》。从环境崩溃、字体缺失、音频爆音到大模型“看不了回放”,该踩的坑基本都踩了一遍。
下面是这六条片子沉淀下来的完整流程。用到的三个 Skill、关键参数和可以直接跑的代码都放在文中,代码我在 Grok Bot 的云电脑上实际跑通过。
一、为什么是现在:大模型做视频的技术分水岭
在深入实操之前,必须先厘清一个底层认知:为什么以前 AI 做视频总像玩具,而这波更新之后,它突然能拿来交片了?
1. 以前做视频到底卡在哪里?
过去两年大家用 AI 做视频,几乎全被困在“文生视频扩散模型”的逻辑里:输入提示词,等待模型生成像素,结果人物扭曲、镜头随机乱晃、文字全是外星乱码。想改一个局部标点,整个画面就得彻底重抽一遍。
而另一条路,“让大模型写代码画视频”,虽然很早就有人尝试,但此前一直被卡在五个致命瓶颈上:
- 执行沙盒残缺: 本地配环境门槛高,需要装 Chrome、ffmpeg、中文字体库、音视频分析工具;云端运行又容易断流,跑长任务动不动就中途停下。
- 动效编程与审美上限不足: 以前的模型写写静态页面还行,一旦涉及高难度的数学缓动、Canvas 粒子、着色器和复杂镜头调度,代码不是报错就是审美拉垮,最后只能吐出蓝黑渐变背景加居中大字的“老年大学 PPT”。
- 长程任务漂移: 渲染一个一分钟的视频,模型往往需要连续执行规划、分镜、写代码、排错、多轮试错几十步。以前的模型跑着跑着就忘了最初的设定。
- 大模型的“视频视觉盲区”: Opus 5.5 这类模型能读文本和静态图片,却没法把一段 MP4 直接塞进上下文里去“看”。它写完代码导出了成片,自己却无法审片,只能凭几张截图向你汇报“效果很棒”。
- 灵感与数据孤岛: 模型不知道全网最近在讨论什么,找不到高价值痛点,做出来的东西与实际受众脱节。原生读 X 上线之前,我的视频 Bot 想看帖子还得走按次扣费的 X 连接器,余额一空就只能去翻网页。
2. 这两周到底补齐了什么?
把视角拉到当下,这波爆发实际上是几块底层能力在很短时间内拼到了一起:
- 物理沙盒成熟: Grok Bot 背后本质上是一台持久化的云电脑,自带浏览器、命令行与文件系统。从九月到十月,官方在更新日志里接连修掉了长任务中途停下、视频文件卡在前 4 MB 打不开等问题,10 月 7 日又把虚拟屏幕从 1280×800 提到了 1920×1200。我做 sweety 宣传片时单次渲染二十多分钟,中途没有断过。
- Opus 5.5 的动效代码能力: 作为以长程代码与 Agent 能力见长的模型,Opus 5.5 写前端动效代码的水平拉开了一个身位。X 上有人把同一句 showreel 提示词分别交给 Opus 5.5 和 GPT-6 Astra,并排放出了成片;也有人用同一套提示词对比 Codex 里的 GPT-6,给 Opus 打出了远高于对手的主观分。它也能长时间独立干活,Anthropic 的发布页引用过一位测试者的话:Opus 5.5 无人值守跑了 18 个多小时,任务没有跑偏。
- Grok Bot 的隐式模型路由: 马斯克宣布按任务路由后,Grok Bot 团队的成员很快回复说 Opus 已经在推送了。你无需自己掏 API 密钥去拼装复杂的流水线,在一个对话框里就能用上它。要提前知道的是,Grok Bot 没有模型选择器,哪个任务交给 Opus 5.5 由系统决定,你看不到也选不了,帮助中心写得很清楚;好在路由到 Opus 也不会更快耗光你的额度。
- 原生社交雷达放开: 原生读 X 上线后,Bot 可以直接搜帖、读帖、看某个账号的动态和话题热度,自动抓取竞品成片、拆解爆款开头,把内容选题的源头打通。额度是每分钟 30 次、每天 1000 次,每天早上 8 点重置,日常做选题绰绰有余。
现在,行业正式分化成两条清晰的技术路线:
- 扩散模型路线: 负责生成写实的光影、人脸皮肤质感、大自然的宏大景观;
- 代码确定性渲染路线: 负责数据图表、知识科普、产品交互、排版字效与精准节奏。
这篇教程讲的是第二条:画面完全可控、改一处只需重渲一遍的代码路线。需要写实镜头时,再从第一条路线借素材。
二、核心底层机制:代码视频是如何被“算”出来的
不要把这套流程想象成剪辑软件。在大模型的世界里,做视频本质上是在写一个纯函数视觉程序。
有人在一篇传播很广的长文里把这套外围流程叫作 harness,原话是“提示词只占视频的 10%,剩下 90% 全是 harness”。核心就在于这套确定性的渲染管线:
[文字需求/文档] → [大模型编写图形代码] → 生成 index.html / Canvas / WebGL
→ [云端无头浏览器] 锁定时间点,逐帧调用 seek(t)
→ [静帧序列] 每秒截取 30~60 张 PNG
→ [ffmpeg] 把图片序列和词级对齐的配音压制成 MP4
1. 彻底剔除系统时钟:seek(t) 机制
如果用普通的 JavaScript 网页动画(比如 requestAnimationFrame),动画跟着系统时钟走,而无头浏览器截一张 1080×1920 的图要几十到上百毫秒。截图跟不上动画,一旦丢帧,音画立刻错位。
所以代码必须抛弃任何实时计时器,暴露出一个绝对的时间函数:window.seek(t)。
- 系统问它:第 3.25 秒画面长什么样?
- 函数只根据输入的时间数值 t,计算出所有元素该在什么坐标,并立刻绘制出唯一确定的一帧。
- 无头浏览器截下这一张图,然后步进到下一帧。
- 不管云端算力偶尔卡不卡,同一个 t 永远得到同一张图。
下面是一个可以直接跑的最小页面:画一条复利曲线,口播念到哪个词,那个词就弹到屏幕上。
渲染脚本用 Playwright 打开页面,每隔 1/30 秒调用一次 seek,截图,最后交给 ffmpeg 合成:
在 Grok Bot 的云电脑上,这个脚本 10 秒左右就渲完了 120 帧,也就是 4 秒视频。同一帧渲两遍,两张图的 md5 完全一样。这就是“确定性”的价值:改一处、重渲一遍,其他画面纹丝不动。
2. 词级时间戳(Word Boundary)对齐
配音是动画的时钟。真正专业的工作流绝对不是“动画做 30 秒,找一段 30 秒的声音硬套”。
我们用 edge-tts 生成配音时,会同时抓取每个词开口的时间点,存成一份时间戳文件。代码里每一个元素的飞入、变色、爆炸,都挂在具体某个词的时间戳上。口播念到哪个词,画面就在那一刻动。
edge-tts 默认只返回整句的边界,想要词级时间戳,得显式传 boundary='WordBoundary':
跑一句试试:
有个细节值得留意:edge-tts 的分词器把“懒惰会”切成了一个词,所以页面里找词用的是包含匹配,cue('懒惰') 也能找到它。我做《复利》时就是这么挂的,口播一改,重新生成时间戳,动画自动跟着词走。
三、从 0 到 1:保姆级实战八步流水线
准备好你的 Grok Bot 工作台。以下八个步骤,是我做完这六条片子后整理出来的标准工序。
开工前准备:筑牢你的云端工作站
你在 Grok Bot 里的所有操作,都运行在一台 Linux 云电脑上,你名下的所有 Bot 共用这台电脑,一个 Bot 装好的 ffmpeg 和字体,另一个 Bot 直接能用。开工前必须先立下两条铁律,再装好三个 Skill:
- 准备环境重置脚本: 云电脑在系统升级时会保留你的 /workspace/ 文件和浏览器登录信息,但会抹掉你手动用命令行装的环境。把 Playwright、Chromium、ffmpeg、中文字体库(思源黑体或 Noto Sans CJK)的安装命令写成一个 init_env.sh,放在工程根目录。每次遇到命令报错,先让 Bot 跑一遍这个脚本。
- 静帧先行原则: 一分钟、每秒 30 帧的视频要逐帧截取 1800 张图片,我做 sweety 宣传片时单次渲染就要二十多分钟。在提示词中必须写死:在画面静帧没有通过人工确认之前,严禁启动整片渲染。 随意跑全片只会白白浪费额度和时间。
- 装好三个 Skill: Skill 是一份可复用的做事说明,存好以后你名下的每个 Bot 都能调用。我这套流水线就靠下面三个 Skill 撑起来。
我们用到的 3 个 Skill
① huashu-art-motion:负责“画”和“渲”
花叔开源的艺术动画 Skill,是整条流水线的渲染引擎。它内置 35 种艺术风格配方和 9 种讲解动画语法(3Blue1Brown 曲线、Vox 拼贴、Kurzgesagt、白板等),自带一套 Canvas + Playwright 渲染引擎和一组质检脚本。
它有几条硬规则我非常认同:画面必须动,自检时要量帧差;场景用代码画,人物用 AI 生成帧再由代码合成;新风格先在同一帧上出三个方向让你挑;所有随机数加种子;成片交给没参与制作的审片员。《复利》和《烂梨效应》都是用它渲出来的。要注意的是它的引擎默认按 1920×1080 横屏写死,做竖屏时我的 Bot 把它改成了从画布尺寸变量读取。
② omniailab-ai-director:负责“判断”
一个开源的 AI 导演参考库,我只拿它当参考书用:审美准则、配乐卡点、声音设计、终检清单,外加 157 张动效镜头卡,讲解片常用的有活体图表、卡片翻面揭示、文字随声同步、字标收束锁构。huashu 管怎么画,它管这个镜头该讲什么、用哪张镜头卡、做完按什么清单验收。《复利》里那组六张签依次翻面的镜头,用的就是“卡片翻面揭示”。
安装时记得交代 Bot 几条规矩:只当参考库用,不登录、不付费、不下载 OmniAiLab 客户端;禁用 references/MUSIC-SCENE SKILL.md,那份文件里有规避平台版权检查的做法;竖屏 1080×1920 优先。另外它的 README 号称附带 154 份音效,我的 Bot 翻下来实际只有 11 个 mp3,其中 6 个查不到出处,商用前一定要核对授权说明。
③ ai-video-remix:负责二创
这个 Skill 没有公开仓库,是我的剪辑 Bot 自己存下来的。我让它把一段葡萄腐烂的 AI 延时视频做成带原创解说的竖屏短片,第一版 8 分钟左右就出来了。做完第二版,我说以后还要持续做这类片子,它就把整套流程存成了 Skill:写解说词、edge-tts 配音、代码合成配乐、混音到 -14 LUFS、烧字幕、出两套封面、写发布文案,脚本都放在 /workspace/video_remix_kit/ 里。
它的硬规则同样清楚:不做镜像、变速、加边框、加噪点这类骗查重的处理,不去水印也不遮挡水印,左上角全程标“AI生成”,发布文案写明素材来源。
怎么装、怎么用:
- 公开仓库: 把 GitHub 链接直接发给 Bot,说一句“安装 <链接> 这个 skill”就行。huashu-art-motion 的 README 另外给了命令行装法 npx skills add alchaincyf/huashu-art-motion,依赖 uv、ffmpeg 和 Playwright Chromium。
- 自建 Skill: 先完整做完一条片子,再跟 Bot 说“把我们这次做片的流程存成一个技能,叫 xxx”。官方文档推荐的也是这个顺序:先做一次,做稳了存成 Skill,最后再做成定时任务。
- 调用: 在输入框里打 / 就能选到。私有 Skill 不在菜单里的话,去 Settings > Plugins > Yours 给当前 Bot 打开。
三个 Skill 的分工很清楚:做口播动画用前两个,omniailab-ai-director 定镜头、定标准,huashu-art-motion 负责画和渲;做二创用第三个,它自带配音、混音、字幕和封面脚本,用不上渲染引擎。下面每一步用到哪个,我都写在了步骤里。
Step 1:选题雷达,用原生检索挖掘真实痛点
不要拍脑袋定主题。利用 Bot 原生读取 X 的能力,建立你的内容嗅探器。
告诉 Bot:
- 去检索目标领域近三天收藏量最高的十条视频推文;
- 拆解这十条视频的前三秒:用了什么视觉元素?前两句话抛出了什么戏剧冲突?
- 抓取这些推文评论区里被点赞最多、被提问最频繁的三个争议点。评论区如果原生接口读不全,就让 Bot 打开网页一条条看。
你的视频脚本,必须直接针对这三个争议点做正面回应。 观众只有在感觉“你在回答我昨天刚遇到的麻烦”时,才会被真正钩住。
我让 X 运营 Bot 复盘账号历史帖时,它总结出的高互动结构是:主帖放成片做钩子,评论区放完整提示词。这一步不需要 Skill,跑顺了可以直接做成每天的定时任务,模板放在第五部分。
Step 2:脚本与时钟,按时长倒推字数
很多人写脚本喜欢天马行空,最后做出来严重超时。短视频必须用字数倒推画面:
- 黄金标准: 竖屏 28 秒的解说,口播文案锁在 130 字上下(按 edge-tts 云希音色加速 5% 算);每行屏幕字幕不超过 14 个全角汉字,ai-video-remix 的字幕脚本遇到超过 14 字的行会直接报错。口播动画的字幕还要更短,《复利》每块不超过 10 个字。
- 配音当时钟: 让 Bot 用 edge-tts 生成音频,指定自然的音色,语速上浮 5% 到 15%。二创解说我用 5%,《复利》这种讲解片用 15%。
- 时间戳当基准: 从配音过程中导出词级时间戳(就是上一部分的 tts_words.py),把包含每个词起止时间的 JSON 文件作为工程的“总时钟基准”。画面所有的转场、动效、高亮,必须绑死在这份文件上。
用 ai-video-remix 做二创时,第一句一定是钩子,两秒内说完,而且要有观点,不能只描述画面。
Step 3:分镜设计与“事实边界”
在敲代码之前,要求 Bot 输出一份包含以下维度的分镜表:
- 段落编号与起止时间(精确到 0.1 秒);
- 口播台词;
- 屏幕中心画面;
- 辅助文字与动效轨迹;
- 最重要的:事实边界声明。
什么是事实边界?
如果你在给一个开源项目做宣传片,该项目的代码仓库里可能根本没有成品截图。大模型天生喜欢讨好用户,它会自作主张编造出一堆天花乱坠的假界面。
你必须强制要求它在分镜表开头写下边界:
- 哪些展示是项目真实具备的?
- 哪些前后对比是咱们为了视觉效果生成的“示意画面”?
- 所有非真实界面的角落,必须打上半透明的“示意画面”字样。
我做 sweety 宣传片时,Bot 交上来的分镜表开头就是这么写的:仓库里没有任何样图,所以前后对比全部是生成的示意图,角落固定标“示意画面 · Illustrative”;README 里“效果不保证”的原话,片尾用小字保留。之后生图、加标注、写片尾,它全都对照这份文件来。
同时,启动画风三岔路口机制:要求 Bot 在动工前,针对同一个核心镜头给出 A、B、C 三种完全不同的视觉风格提案,输出纯代码绘制的静态预览图,由你敲定一套后,再进入下一步。这正是 huashu-art-motion 的“三方向硬门”,哪怕你已经指定了风格,它也会先出三个方向。《烂梨效应》的三个方向是剪纸、皮影和水墨,我选了剪纸;《复利》是曲线剧场、发光世界和水墨。
omniailab-ai-director 在这一步补一条分镜规则:每个镜头只承担一个叙述任务,缺了就补,重复的就删。
可以直接这样下指令:
用 huashu-art-motion 和 omniailab-ai-director 这两个技能,把下面这段口播做成竖屏讲解动画。
先出镜头表,每个镜头写清叙事任务;再把关键帧做成 A/B/C 三个方向给我挑,我选定之前不渲整片。
口播:<原文>
Step 4:素材路由,按镜头属性精准分流
没有一种单一方案能搞定全部镜头。成熟的流水线要按镜头的性质,分流进四条支线:
纯几何、图表、排版、终端 → [路线 A:纯 Canvas / SVG 代码]
具象物体、质感插画、写实局部 → [路线 B:AI 生图分层 + 代码位移]
复杂有机运动、液体、生长过程 → [路线 C:视频扩散模型生成局部切片]
软件交互、屏幕展示、实操演示 → [路线 D:透视空白屏幕 + 脚本贴图]
- 路线 A(纯代码): 针对坐标轴、折线图、代码块、文字流。直接用 Canvas 2D 或 SVG 绘制,零素材依赖,清晰度无上限。
- 路线 B(静态分层 + 代码运动): 需要一个精美的主体(比如一台特定风格的复古收音机),让图像模型画出一张纯白底的元素图;代码负责做入场弹跳、旋转、视差滚动与粒子拖尾。huashu-art-motion 对人物也是这个思路:人用 AI 生成帧,代码负责位置、大小和换帧时机。
- 路线 C(外挂扩散模型): 遇到诸如“一粒种子在泥土中发芽破土”这种物理形变镜头,代码无法用数学公式拟合,果断在云电脑浏览器中登录你的视频生成工具,生成几秒切片,下载为局部素材供代码调用。我做花生科普时,Bot 直接说照片级的连续生长它画不了,建议用我的 Runway、可灵或即梦账号生成。
- 路线 D(透视贴图): 需要展示手机或电脑屏幕操作时,让 AI 生成一张纯空白、均匀发光的倾斜屏幕背景图。Bot 运行图像处理脚本自动识别屏幕的四个角坐标,把你的真实网页或软件录屏做透视变换,贴进屏幕中。sweety 宣传片里电脑屏幕上的代码,就是这么贴上去的。
生图这一环有几条铁律:
- 图里不放字: AI 生图提示词里严禁让图像模型生成文字,它写出来的字几乎全是错字乱码。图里只要纯画面,文字统一由前端代码层叠加。
- 先 AFTER 后 BEFORE: 做前后对比时,先生成最终效果图,再拿它当参考图生成“之前”的样子,构图和人物才对得上。
- 配色写到部位: 比如“橘猫:头和背是橘色,下巴和肚子是白色”,不然每张图的猫都不一样。
- 未成年角色服装保守: 提示词里出现“短裙”这类词,整张图会被直接拒绝。
Step 5:确定性渲染管线搭建
确定性渲染的工程结构极其清爽。装了 huashu-art-motion 之后,Bot 会在沙盒里自动运行类似下面的命令链:
$E 是引擎目录。想参考别人的片子,可以先用 breakdown.py 拆解参考视频,再用 compare.py 把参考和成片的同一时间点并排比较。不装 Skill 也没关系,第二部分那个 index.html 加 render.py 就是这条管线的最小版本。
记住:所有涉及随机数的代码(比如粒子爆炸、背景噪点),必须锁死固定的随机种子,在页面加载时生成一次,seek(t) 里只读不生成。这样就算代码重新跑一百遍,每一粒尘埃的运动轨迹都分毫不差:
要是在 seek(t) 里直接调 Math.random(),同一帧渲两次就会不一样,huashu 的 qa.py 会把它当成不确定性报出来。
Step 6:声音工程与字幕防坑指南
业余片子和专业大片的区别,往往不在画质,而在声音和字幕的细节规范上。
1. 字幕字号的“单位陷阱”
如果你用 ASS 格式通过 libass 库向视频烧录字幕,会踩到一个隐蔽的坑:ASS 里的字体大小定义,跟前端 CSS 像素不是一回事。
以思源黑体为例,libass 里字的实际大小(em)等于 Fontsize 除以 1.448。我做《复利》时第一版写的是 Fontsize 96,压出来字的墨高只有 65 像素,在手机上小得让人眯眼;想要 96 像素的字,必须填 139。我在云电脑上用同系列的 Noto Sans CJK 复测,139 压出来墨高 91 像素,正好落在字幕带里。换了字体,烧一帧量一下就知道。
2. 守住竖屏安全区(以 1080×1920 为例)
这是我们几个项目里摸索出来的版面,各家平台 UI 的高度不完全一样,宁可留宽一点:
- y 1400 到 1520: 字幕带,只放字幕。
- y 1388: 图表、人物、道具的“底线”,绝对不能跌穿这条线。《烂梨效应》专门写了脚本,逐个镜头检查前景的最低点。
- y 1520 以下: 只放底色和纹理,底部的昵称、文案和按钮都压在这一片。
二创片的字幕位置可以不同,ai-video-remix 把解说字幕放在 y 1320,同一条片子里统一就行。
3. 混音硬指标
- 整体母带: 控制在 -14 LUFS,真峰值限制在 -1.5 dBTP,杜绝任何破音可能。
- 人声轨: 恒定在 -16 LUFS。
- 侧链闪避(Ducking): 只要有人声说话,背景音乐就自动压低;人声停顿的瞬间,音乐再自然平滑地抬起。ai-video-remix 里背景音乐整体比人声低 26 dB,原片音效说话时比人声低 11 dB、停顿时只低 5 dB;《复利》的配乐比口播低 13 LU,再跟着口播的包络往下压。
侧链闪避和响度归一,ffmpeg 一个脚本就能搞定:
我在 4 秒的示例上实测过:说话段的音乐比停顿段低了约 11 dB;母带最后落在 -14.5 LUFS、真峰值 -1.5,在 ±0.5 的允许误差之内。想压得更狠就把 threshold 调低、ratio 调高,threshold=0.02:ratio=10 只能压下去 8 dB 左右。片子太短时 loudnorm 会退回动态模式,所以差了零点几。
字幕脚本按词级时间戳切块,每块不超过 10 个字,遇到口播停顿就断开:
Step 7:审片闭环,大模型“看不见视频”怎么破?
这是最容易翻车的一环。由于多模态模型无法直接看视频回放,如果你问它“成片怎么样”,它只能凭几张截图回答。我的手绘宣传片和 sweety 宣传片,Bot 都是看了几张截图就交付,交付消息里老老实实写着“没完整看过回放”。
我们必须用技术手段,把动态视频转译成它能理解的格式:
[导出的 MP4 成片] → [每 0.5 秒抽一帧] → [拼成带时间码的联系表 (Contact Sheet)]
→ [开一个新会话] → [联系表 + 响度报告 + 原始分镜表]
→ [逐格比对:图层穿模、错别字、遮挡与跳帧]
1. 联系表网格审查
每隔 0.5 秒截取一张小图,左上角印上时间码,拼成一张矩阵大图。模型读图的能力很强,扫一眼大图,就能指出第几秒那一格里按钮被文字挡住了。一条 ffmpeg 命令就够:
tile 的格数按片长来定,0.5 秒一格,60 秒就是 120 格,可以分成几张。我做第二部分那个 4 秒示例时,第一版联系表在 0.5 秒那一格里就抓到了两个词叠在一起:上一个词还没淡出,下一个词已经弹出来了。改成同一时刻只画一个词,再出一张确认。
联系表看不出来的问题,就写脚本按像素查。《复利》审了 4 轮,Bot 陆续往工程里加了字幕带扫描、元素重叠检查和爆音扫描三个脚本。其中一轮,图表推近时网格线伸进了字幕带,原来的质检脚本只查文字没报出来,是像素扫描逐帧揪出来的。
2. 黑盒独立审片员
绝对不要让帮你写代码的那个会话去质检自己的代码,huashu-art-motion 也是这么规定的。不过实际做下来,《复利》和《烂梨效应》的 Bot 都说当时开不出新的审片 agent,只好自审,《复利》对照的是 omniailab-ai-director 的终检清单。更稳的做法是你自己开一个新的 Bot 会话,不给它看任何中间制作代码,只把联系表、响度报告和原始分镜单扔给它,用第五部分的模板 2 让它专门找茬。
审片意见也要逐条核。《烂梨效应》收到过一份独立审片意见,指出“举牌时出现四只手”,抽帧一看确实如此,是翻牌时原图垂着的两只手露了出来;但另一条“第三只手把梨送到嘴边”是误判,时间码也偏了一两秒。
3. 音频人工把关
机器可以检查响度数值是否超标,但无法判断发音的情绪对不对。我的剪辑 Bot 交片时直接说:“配音我这边没法试听,发之前麻烦你听一遍。”成片出炉后,一定要自己戴上耳机完整听一遍,确保没有奇怪的断句和突兀的杂音。
Step 8:多端压制与分发资产打包
最后一步压制,必须拉满兼容性参数:
- 压制参数: 使用 libx264,画质参数设为 CRF 18(接近视觉无损),同时必须加上 -movflags +faststart。这个参数会把 MP4 的元数据索引移动到整个文件头部,用户在网页端或手机端点开时,不需要等整个文件缓冲完,边下载就能边播放。
- 双版本封面: 导出成片的同时,截取高潮镜头,渲染出两套封面:一套 9:16(适配 X、视频号、TikTok),一套 3:4(适配小红书、微信公众号)。ai-video-remix 的 make_covers.sh 一次就出两张,3:4 的裁切起点要按构图选,二创片还得让原水印留在画面里。
- 文案架构: 主推文精简有力,抛出核心钩子和成片;把详细的设计思路、代码片段、复现参数以及你完整的提示词结构,全部丢在第一条评论里。
- AI 标识: 用了 AI 生成的画面,就标上“AI生成”。我曾让剪辑 Bot 去掉原片水印,它直接拒绝了,理由是国内的 AI 内容标识规定不允许删除这类标识。二创别人的素材,按它的说法,镜像、变速、加边框都骗不过查重,真正有用的是加上自己的原创解说,并在简介里写明素材来源。
四、实战避坑:那些踩烂了的工程深水坑
五、生产级 Prompt 模板库(直接抄作业)
以下是我反复打磨过的提示词,尖括号内的占位符根据你自己的项目替换。
模板 1:结构化交付 Brief
用 huashu-art-motion 渲染,omniailab-ai-director 做导演判断和终检。
<project_brief>
目标:为开源项目 <仓库链接> 制作一条 45 秒、1080x1920 竖屏、30fps 的 Motion Graphics 宣传片。
目标受众:<资深开发者与技术决策者>。
核心诉求:用克制但有张力的动效,讲清楚 <一个能在 README 里核实的卖点>。
</project_brief>
<hard_constraints>
- 动效框架:必须基于 Canvas 2D 或 WebGL 纯函数编写,实现精准的 window.seek(t) 时间轴接口。杜绝任何不可控的 CSS 动画和系统时钟。
- 视觉安全区:字幕严格锁死在 y: 1400-1520 区间,所有关键图表、UI 界面的底部边界不得超过 y: 1388。
- 随机数保护:所有粒子系统、背景扰动必须写入固定的随机数种子,确保多次渲染结果一致。
- 事实边界:画面中出现的所有终端命令行与代码片段,必须严格对照项目 README,不得臆造不存在的参数功能。非真实 UI 标注“示意画面”。
</hard_constraints>
<workflow_milestones>
阶段一:提取核心卖点,输出包含 5 个段落的分镜脚本(钩子、痛点、突破、特性、CTA),注明每段起止时间,开头写事实边界。
阶段二:针对核心视觉镜头,提供三种截然不同画风的纯代码静态帧(A/B/C 方案),等待我的人工确认。
阶段三:在静帧确认前,严禁启动整片渲染。通过后,生成配音和词级时间戳,执行逐帧捕获。
阶段四:交付时必须提供 0.5 秒间隔的联系表、母带响度检测报告,以及你认为“未能百分之百核实的内容清单”。
</workflow_milestones>
模板 2:黑盒独立审片员系统指令
你现在是一名严苛的视觉品控总监与技术审核员。你完全没有参与当前视频的代码编写与构思过程。
请审阅附件中的成片联系表(每 0.5 秒一帧,左上角有时间码)、响度报告以及对应的原始分镜文档。
你的审查职责:
图层审查:检查是否存在文字被画面边缘裁切、浮动卡片与核心图表重叠穿模、背景对比度过低导致文字辨识度下降、字幕越出 y1400-1520 的问题。
节奏与对齐审查:第 N 秒的画面核心元素是否精准响应了该时刻的口播?是否存在长达 1 秒以上的无意义画面死滞?
事实与规范验证:画面中的数据指标是否与分镜一致?字幕是否存在错别字或折行不当?母带是否在 -14 LUFS ±0.5、真峰值是否不超过 -1.5 dBTP?
输出格式:
- 列出具体问题的时间码和对应格子的位置,指出缺陷性质。
- 给出整改优先级(阻断发布 / 视觉瑕疵 / 建议优化)。
- 看不清、不确定的标“待核”,不要猜。
- 禁止给出一团和气的敷衍好评,如果认为可以发布,请明确给出你的质检打分(满分 10 分)与扣分点。
模板 3:全自动化每日选题雷达(定时任务)
每天早晨 8:30,检索过去 24 小时内 X 平台上包含以下关键词的高互动推文:<关键词 A>、<关键词 B>。
筛选规则:按转发与收藏总量降序排列,筛选出前 8 条包含原生视频的内容。
提取并汇总以下信息:
- 原推核心主张与视频前 3 秒的视觉形式拆解;
- 评论区讨论热度最高的技术争议点或小白提问;
- 基于这些争议点,为我拟定一个 30 秒短视频的反常识开头(包含前 3 秒文案与画面构思)。
注意:仅执行阅读与结构化整理分析,严禁进行任何互动操作。
先手动跑几次,结果稳定了再存成 Skill、建定时任务。每天 1000 次的读取额度,这个任务用不完。
模板 4:AI 素材二创
/ai-video-remix
这是一段网上的 AI 视频,不是我拍的。按流程做二创:
保留原水印,左上角加“AI生成”;写原创解说,28 秒约 130 字,第一句是钩子;
AI 男声配音,代码合成钢琴配乐;出 9:16 和 3:4 两张封面;
发布文案写明素材来源和 AI 声明。不要替我发布。
六、终局演进:当做视频变成“写软件”
当你完整跑通一次这套基于云电脑和纯函数渲染的流水线之后,你对“视频创作”这门手艺的理解会完全不一样。
在过去,做视频是一项典型的手工作坊劳动。你坐在剪辑软件前,拖拽轨道、对齐刀片、拉伸贝塞尔曲线、忍受风扇轰鸣导出。只要客户或你自己想改动前置的一句话,后面几十条轨道上的关键帧就得全盘推翻重调。
但在今天的 Grok Bot + 代码渲染的架构下:
- 文案变成了数据结构;
- 配音时间戳变成了驱动系统的绝对时钟;
- Canvas 与着色器变成了你的视觉渲染引擎;
- 无头浏览器和 ffmpeg 变成了持续集成(CI)的自动化构建工具;
- 而底层的模型,则是那个负责把自然语言需求编译成代码的编译器。
视频不再是一个被固化死掉的 MP4 文件,它变成了一套随时可以修改参数、随时可以重新构建的软件工程。我在《复利》里改一句口播,只需要重新生成配音和时间戳,再重渲一遍,画面就自己跟着新的词走了。
这条流水线也有还没打通的地方:Bot 听不了自己做的配音,也看不全自己的回放。最后那一遍,还得你戴上耳机自己看。
附:一条命令跑通最小工程
把文中的 index.html、render.py、tts_words.py、mix.sh、make_ass.py 和下面这个 run_all.sh 放进同一个文件夹,第一次运行前先执行 uv run --with playwright playwright install chromium,然后 bash run_all.sh:
我在 Grok Bot 的云电脑上从空目录跑了一遍,14 秒出片:一条 1080×1920、4 秒、带字幕和配乐的 final.mp4,外加一张联系表 contact.png。脚本里的配乐只是三个正弦波叠成的和弦,用来测闪避,正式做片时换成你自己的曲子。
全部代码和提示词原文在这里,可以直接复制:gist.github.com/threerocks