Opus5.5 做视频太贵,国产开源平替来了!

大家都还在为 Claude Opus 5.5 写代码做一条 15 秒视频花掉近百美元而感到心疼的时候,开源社区已经把写代码生成视频的底座给掀了 商汤开源的 SenseNova 6.8 Code2Video ,是一个专门通过编写和修改代码来生成视频的模型,27B 参数 本次公开了全量参数模型权重和配套的创作 Skill ,还支持对生成结果进行多轮自然语言精细修改,甚至能把一段没有任何源码的参考视频直接逆向重构为可编辑的代码工程,还挺 impressive 的 项目地址: https://github.com/OpenSenseNova/SenseNova-6.8-Code2Video 一、SenseNova 6.8 Code2Video 是怎么做出视频的? 和 Sora 、Runway 等传统视频生成模型不同,SenseNova 6.8 Code2Video 不会去猜每一帧的像素,而是用代码将创意转化为视频,核心工作机制可以拆解为:

  1. 底座:27B 专精模型 + 512K 超长上下文的代码生成 传统像素扩散模型在做科普视频、动态图形( Motion Graphics )或排版动画( Typography )时,经常出现文字拼写乱码、数学公式变形、物理碰撞穿模等问题,如果要精准渲染,这就不是模型能力或者参数的问题了,而是底层实现原理不一样

代码即画面:SenseNova 6.8 Code2Video 拥有 270 亿参数与 512K 上下文窗口,它通过编写可执行的前端与图形代码(涵盖 HTML/CSS 、Canvas 、SVG 、Three.js 、Manim 、p5.js 等)来构建视频

绝对精准:在代码的世界里,文字是原样排版的字符,公式和数据直接源自输入,坐标、时长、节拍和运镜路径都是精确的数字,运动、碰撞和光影则由物理与数学方程严格计算得出。

2.渲染机制:基于纯时间函数 f(t) 的确定性逐帧捕获 和 Opus 5.5 类似,它并不是靠 [录屏] 来抓画面,而是遵循一套严谨的渲染 workflow ,大概的原理是: 1.将画面写为时间的纯函数: 模型编写的代码中,每一帧画面都是时间参数 t 的纯函数,给定任意时间点 t ,程序就能唯一计算出那一毫秒所有元素的位置、形变与色彩。因为完全不依赖系统实时时钟,同一份代码无论运行多少次,渲染出的视频都分毫不差。 2.无头浏览器逐帧截图 + FFmpeg 合成: 后台通过 Playwright 启动无头 Chromium 浏览器,按设定的帧率依次步进调用时间函数并截取高清画面,最后交由 FFmpeg 将成百上千张序列帧与音轨合成为最终的 MP4 视频文件。 3. 程序化音频与卡点 配乐、环境音和动作音效同样可以通过 Python 脚本合成或对齐节拍,实现画面切镜与音乐节拍的严丝合缝

  1. 用 spec.md 来驱动代码生成,而不是抽卡 为什么普通模型一句话生成的代码动画往往粗糙简陋,而 SenseNova 6.8 Code2Video 能产出完整成片?关键在于它与官方开源的 code video Skill 以及你的 coding agent 规定了一个严格的检验流程:

先写规格书( SPEC.md ):接到需求后,模型不会上来就瞎写代码,而是先根据任务类型读取对应的 guide ,将需求转化为一份可核查的技术规格文档 SPEC.md ,确定构图、配色、缓动曲线与分镜时间轴。

这个 spec.md 简直太重要了,我们用自然语言修改的内容,本质上都是修改 spec 文件,而不是直接改代码 一个项目有了一个统一的 spec ,就能确保每次改动后的生成风格一致性,上下逻辑连贯 吴恩达在他的最新的 vibe coding 课里也提到了这一点的重要性 Spec.md 大概长这样:(有点长)

看缩略图挑刺( Contact Sheets 自检):模型写出初版代码并渲染后,会自动抽取关键帧生成“分镜缩略图联系表( Contact Sheets )”,模型会像真正的导演一样审阅这些预览画面,检查文字有没有重叠、元素有没有出画、动效节奏是否合理,然后自己改代码、重新渲染

超长程耐力:一条精品短片的打磨往往包含成百上千次“写代码 \rightarrow 渲染预览 \rightarrow 视觉检查 \rightarrow 修复问题”的循环。SenseNova 6.8 Code2Video 针对长程任务进行了专门训练,单次任务可稳定支撑 10 小时以上、超过 2,000 轮( Turns ) 的工具调用与迭代,直到通过全部验证并输出验证报告 VERIFY.md 与最终成片 out/final.mp4

二、环境搭建 在动手制作科普视频前,需要准备好本地渲染环境、模型推理服务以及官方的 code-video Skill

  1. 安装基础依赖环境 确保你的机器上已安装以下 5 样基础工具(建议提前装好,避免 Agent 在首次运行时花费大量时间安装环境):

Codex (或者 Claude Code 等编程 agent ) Node.js ( 18 及以上版本) Python 3 (用于音频处理与辅助脚本,需安装仓库 requirements.txt 中的依赖) FFmpeg / FFprobe (用于视频合成与媒体流校验) Playwright (含 Chromium ) 及视频对应语言的系统字体

  1. 部署模型服务(或接入 API ) 官方已在 Hugging Face 开源了 SenseNova 6.8 Code2Video 的全量参数权重( INT4 与 INT8 量化权重计划在后续发布,具体时间请以官方更新为准) Bash

    1. 从 Hugging Face 下载模型权重

    huggingface-cli download sensenova/SenseNova-6.8-Code2Video --local-dir /path/to/SenseNova-6.8-Code2Video

2. 使用 vLLM 启动 OpenAI 兼容接口(示例采用 4 卡张量并行,开启 512K 上下文)

docker run --rm --gpus all --ipc=host -p 8000:8000 \ -e VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 \ -v /path/to/SenseNova-6.8-Code2Video:/model \ vllm/vllm-openai:latest \ --model /model \ --tensor-parallel-size 4 \ --max-model-len 524288 \ --reasoning-parser qwen3 \ --enable-auto-tool-choice \ --tool-call-parser qwen3_coder

  1. 安装官方 code-video Skill 官方的 code-video Skill 包含了完整的制作工作流、验证脚本以及 8 大领域的工艺指南( Craft Guides ):

crafts/explainer-diagrams.md:教学与科普讲解(数学、科学、历史、流程图、数据可视化) crafts/stylized-looks.md:特定艺术与视觉风格(水墨、像素风、剪纸风、水彩等) crafts/simulations-and-generative.md:粒子系统、物理模拟、细胞自动机、Shader 生成艺术 crafts/character-and-creature-motion.md:人物、动物或生物动作动画 crafts/threejs-scenes-and-cameras.md:3D 场景、产品展示与三维运镜 crafts/motion-graphics-and-promos.md:动态字体排版、UI 动效、Logo 演绎与品牌宣传片()
crafts/sound-design-and-narration.md:旁白配音、音乐、音效与环境音设计 crafts/music-and-beat-sync.md:音乐驱动短片与节拍卡点

Bash

1. 克隆官方 GitHub 仓库

git clone https://github.com/OpenSenseNova/SenseNova-6.8-Code2Video.git

2. 创建你的视频任务文件夹(注意:Agent 会自动执行 Shell 命令,建议在独立隔离目录中运行)

mkdir -p ~/video_tasks/methane_explainer/.claude/skills

3. 将官方 code-video Skill 完整复制到任务目录的 .claude/skills 下

cp -r SenseNova-6.8-Code2Video/skills/code-video ~/video_tasks/methane_explainer/.claude/skills/code-video

  1. 配置 Codex 长程运行参数 因为 Codex 默认通常将未识别的自定义模型按默认上下文(如 128K 或 200K )处理。为了充分利用 SenseNova 6.8 的 512K 超长上下文并支撑上千轮的长程自检迭代,需要在配置文件(如 ~/.codex/config.json 或 settings.json )或环境变量中显式声明 512K 上下文、自动压缩与单次最大输出: 环境变量配置:

CODEX_MAX_CONTEXT_TOKENS=524288 (显式开启 512K 上下文窗口) CODEX_AUTOCOMPACT_PCT=80 (上下文占用达到 80% 时自动执行历史摘要压缩,防止长程交互爆显存) CODEX_MAX_OUTPUT_TOKENS=64000 (单次最大输出 64K tokens ,保证单次生成完整代码工程)

三、实战,如何制作一个科普视频 假设我们要制作一条 12 秒的化学科普短片:微观视角拆解“甲烷燃烧( Methane Combustion )”的原子重组与质量守恒定律。 整个创作过程分为三个标准阶段:

创意扩写 自动生产 多轮原位精修

阶段一:从一句话出发,先让模型完善你的想法,把你的一句话变成整段的 prompt 做科普视频最忌讳提示词过于简略,不过你可以把 codex 当作工作台,从一个宽泛的想法出发,利用配套 Skill 引导模型与你探讨细节,将其转化为具体的视频 Brief 和视觉概念; 也可以使用官方仓库 prompts/ 目录下的 Enhance Prompt 模板,把一句话想法扩写成详尽的 dense_prompt.md

我们的初始想法(一句话): 做一个 12 秒的化学科普动画,展示 1 个甲烷分子和 2 个氧气分子燃烧反应生成二氧化碳和水,并体现原子个数守恒。

转化为结构化科普 Brief:

Markdown Make a 12-second chemistry explainer video titled "Methane Combustion: Atom by Atom" (1920x1080, 30fps, with procedural sound effects).

Core Pedagogical Idea: Show how chemical reactions rearrange atoms without creating or destroying them.

Visual Structure & Timeline:

  1. [0.0s - 3.0s] Introduce reactants on a dark slate background: one methane molecule (CH4: 1 central Carbon atom in charcoal-grey bonded to 4 Hydrogen atoms in white) and two oxygen molecules (2 O2: double-bonded Oxygen atoms in vibrant red).
  2. [3.0s - 7.0s] Activation & Bond Breaking: A subtle thermal pulse triggers the molecules to vibrate. The C-H and O=O bonds smoothly stretch and snap with crisp acoustic clicks, pulling the molecules apart into free-floating individual atoms (1 C, 4 H, 4 O).
  3. [7.0s - 10.0s] Atomic Rearrangement: The free atoms smoothly gravitate to new positions and form new bonds—creating one linear carbon dioxide molecule (CO2) and two bent water molecules (2 H2O).
  4. [10.0s - 12.0s] Final Equation: Resolve into the balanced chemical equation at the bottom: "CH4 + 2O2 → CO2 + 2H2O".

Key Explainer Constraint: Place a clean HUD "Atom Counter" in the top-right corner showing "C: 1 | H: 4 | O: 4". This counter must stay locked at the exact same values (1, 4, 4) across the entire 12 seconds to visually prove conservation of mass.

阶段二:agent 自动化生产第一版视频 准备好详细的 prompt 之后,进入任务目录启动 Codex ,调用 SenseNova 6.8 Code2Video 与 code-video Skill 开始制作: 此时 SenseNova 6.8 Code2Video 会在后台自动完成以下动作:

加载科普专属工艺指南:模型识别到这是一个科学讲解任务且包含音效,自动读取 .codex/skills/code-video/crafts/explainer-diagrams.md 与 crafts/sound-design-and-narration.md 。

编写 SPEC.md:规划 12 秒内每一秒的分子坐标、化学键断裂的缓动函数( Easing )、配色色号以及右上角原子计数器的固定布局。

编写代码并生成粗渲染版本:遵循 Skill 中“先尽早跑通全长粗渲染,再逐步打磨细节”的原则,用代码精准画出的 CH4 正四面体投影结构与 CO2 的直线型结构,并用 Python 合成化学键断裂与结合的清脆音效

多轮缩略图自检与修正:模型自动截取各时间节点的分镜图进行视觉审查——比如发现第 8 秒水分子的标签和化学键有轻微重叠,便自动修改坐标偏移量重新渲染,直到确认画面干净、右上角 C: 1 | H: 4 | O: 4 全程清晰无误,最终在 out/final.mp4 输出首版成片

首版成片大概长这样:

阶段三:用自然语言修改成片 首版视频生成出来后,往往只是创作的起点。SenseNova 6.8 Code2Video 最大的优势在于你可以直接用自然语言对现有工程进行多轮修改,而不用推倒重来,哪里错了改哪里,其他内容不变 官方示例中将“暗黑风机场翻页屏”改为“明亮马卡龙色系酒店大堂风”,再追加“飞过的小飞机与行人”一样,我们可以在同一个任务文件夹下使用 --continue 参数,对刚才生成的化学科普视频连提两轮修改需求:
第 1 轮修改:重构视觉风格与音效(暗黑实验室 -> 复古教科书) 提出需求: Keep the molecular coordinates, bond-breaking timing, atom counter logic, and balanced equation unchanged. Restyle the video into a bright vintage science-textbook look: a warm cream paper background with a subtle dot grid, matte pastel spheres for the atoms (terracotta red for Oxygen, navy blue for Carbon, soft mint for Hydrogen) with clean dark-ink outlines, and serif typography for the chemical labels. Swap the harsh clicks for warm wooden marimba notes when bonds form. Edit the existing source in place and overwrite out/final.mp4.

效果:

第 2 轮修改:增补教学组件与物理细节(能量释放波纹 + 阶段进度条) 提出需求: Keep the current textbook style, colors, timing, atom counter, and audio. Add two pedagogical details: 1) At 3.5s when bonds break, show a subtle inward blue ripple around the molecules labeled "Energy In"; at 7.5s when new bonds form, emit an expanding warm amber glow wave labeled "Heat Released (Exothermic)". 2) Add a minimalist step-progress bar along the very bottom edge indicating the three phases (Reactants → Transition → Products) without obscuring the equation. Edit the existing source in place and overwrite out/final.mp4.

效果

编写 Code2Video 精修 Prompt 的 3 个核心技巧

第一句必须“锁死不变项”: 在官方《 Departures 》翻页屏案例中,每次修改开头的句式都是 Keep the messages, timing and flip mechanics... 或 Keep the current design, messages, timing, flip mechanics, and audio 。必须先明确告诉模型哪些动画逻辑已经达标,防止 Agent 在改样式时重新生成时间轴,导致原有逻辑丢失

给时间点打上精确的时间戳: 对于动效增加需求,尽量指明具体的秒数(如 At 3.5s when bonds break...、at 7.5s when new bonds form...)。因为底层代码是基于时间函数 t 进行渲染的,带有具体秒数的指令能让模型精准插值入帧

句尾锁定原地改写指令: 务必带上官方标准结束语:Edit the existing source in place and overwrite out/final.mp4.这行指令会强行约束 Agent 只能在原有代码文件上做增量补丁,避免 Agent 另起炉灶新建一份空白 HTML/JS ,从而实现几分钟内快速重渲染

进阶玩法:没有源码?丢个参考视频直接“扒片二创” 如果你在网上看到一段排版和动效极其惊艳的科普视频或产品演示片,想做成自己科目的科普视频,但手头只有一个成品.mp4 文件、没有任何工程源码怎么办? 你可以直接利用 SenseNova 6.8 Code2Video 的参考视频重构( Reference-video reconstruction )能力:

将参考视频放入项目目录,不需要提供原代码
让模型逐帧分析参考视频的画面布局、转场节奏与组件运动轨迹,从零编写代码将其重构为可编辑的代码工程 在指令中直接要求它替换主题内容

我用了一段库克把苹果的库存周期缩短为 6 天的案例 原片:⬇️

要求把其中的故事替换成 costco 卖 1.5 美金热狗的故事,效果是:⬇️

官方开源地址汇总:

GitHub 仓库 & Creation Skill: https://github.com/OpenSenseNova/SenseNova-6.8-Code2Video Hugging Face 模型权重: https://huggingface.co/sensenova/SenseNova-6.8-Code2Video