Bernini:字节跳动用语义规划重新定义视频生成

Bernini:字节跳动用语义规划重新定义视频生成

Seven

视频生成领域从来不缺选手——Sora、Runway、可灵、Wan 各显神通。但大多数模型的思路都一样:给一段文字,直接出视频。编辑已有视频?那得另起炉灶,用专门的编辑模型。

字节跳动最近开源的 Bernini 换了个思路:先用大语言模型「想清楚」要生成什么语义,再交给渲染器去画。这个「先规划、再执行」的两阶段架构,让它在视频编辑任务上直接冲进了第一梯队,和 Sora、Runway 这些闭源商业模型同台竞技。

一、Bernini 是什么

Bernini 官方 Logo

Bernini 全称「Latent Semantic Planning for Video Diffusion」,由字节跳动 Bernini 团队开发,2026 年 5 月 22 日发布 arXiv 论文,6 月 1 日开源推理代码和模型权重,6 月 9 日进一步开源了 1.3B 轻量版权重。

它的核心卖点是统一——一个框架同时搞定文本生图(T2I)、图像编辑(I2I)、文本生视频(T2V)、视频编辑(V2V)、参考图引导视频编辑(RV2V)、参考图生视频(R2V)六种任务。不需要为每种任务训练不同的模型。

二、架构:先想后画

Bernini 架构图

传统视频生成模型(如 Wan2.2、Sora)是端到端的:文本输入 → 噪声 → 去噪 → 视频。Bernini 在中间插入了一个「语义规划」步骤:

MLLM 语义规划器

基于 Qwen2.5-VL-7B-Instruct 微调,负责理解多模态输入(文本、源图像、源视频、参考图),然后预测出目标视频的语义嵌入(semantic embeddings)。

这一步的关键创新是 Segment-Aware 3D RoPE(SA-3D RoPE)——一种位置编码机制,能让模型区分来自不同视觉片段(源视频、参考图、目标占位符)的 token,避免信息混淆。

用人话说:MLLM 先在「语义空间」里把视频「想」出来,输出的不是像素,而是一组语义向量。

DiT 视频渲染器

基于 Wan2.2-T2V-A14B 微调,接收 MLLM 输出的语义嵌入,在 VAE 潜空间里做 flow matching 去噪,最终渲染出视频帧。

渲染器采用 high-noise / low-noise 双阶段设计:先用 high-noise 权重处理大结构,再用 low-noise 权重细化细节。

为什么这种架构更好?

传统端到端模型在做视频编辑时,需要同时理解「源视频是什么」和「要改成什么」,这两个任务在同一个网络里互相干扰。Bernini 把理解(MLLM)和生成(DiT)分开,各司其职:

对比维度 端到端模型 Bernini
语义理解 隐式,藏在噪声里 显式,MLLM 先规划
编辑精度 容易「改崩」原视频 语义引导,改动可控
多任务 通常需要不同模型 统一框架
计算效率 视频越长越吃力 序列并行,可扩展

三、支持的六种任务

Bernini 的统一框架支持六种任务,覆盖了视频创作的主要场景:

3.1 文本生图(T2I)和图像编辑(I2I)

最基础的能力。单 GPU 即可运行,生成单帧图像。图像编辑支持风格迁移、物体替换、色调调整等操作。

3.2 文本生视频(T2V)

给一段文字描述,生成对应的视频。需要 8 GPU + 序列并行(Ulysses),默认输出 480p / 16fps。在 VBench 基准上拿到 84.69 分,和 Wan2.2 基座模型(84.64)基本持平。

3.3 视频编辑(V2V)

这是 Bernini 最亮眼的能力。给一段源视频和编辑指令,输出编辑后的视频。支持的编辑类型非常丰富:

  • 风格和场景编辑:把战争场景变成黏土动画定格风格
  • 物体增删:在视频里添加或移除物体
  • 天气变换:把晴天变成雪景
  • 背景替换:把森林换成山脉
  • 镜头视角:从仰视变成俯瞰
  • 色调调整:转为赛博朋克霓虹色调
  • 时间推理:展示草莓放十天后的样子
  • 表情修改:让人物变成笑脸
  • 焦点转移:把焦点从前景移到后方

3.4 参考图引导视频编辑(RV2V)

除了文字指令,还可以用参考图来引导编辑。比如用一张白菊花的照片,替换视频里的紫花;或者用参考图的材质替换视频里信封的材质。

3.5 内容插入(VV2V)

把一张图片或另一段视频「插入」到目标视频中。比如把一张海报贴到视频里的广告牌上。

3.6 参考图生视频(R2V)

给最多 5 张参考图,生成一段融合了这些参考图元素的视频。

四、视频编辑 Arena:和商业模型同台竞技

Bernini Arena 对比结果

Bernini 团队做了一件很有说服力的事——自建了一个视频编辑 Arena 平台,让人工标注者对不同模型的编辑结果进行盲评投票,然后用 Bradley-Terry 模型计算排名。

结果:Bernini 在视频编辑任务上达到了第一梯队,和 Sora、Runway Gen-3 等闭源商业模型的编辑能力相当。

这不是自说自话的 benchmark 跑分,而是真实的人类偏好投票。团队公开了投票数据和排名方法,可复现。

五、模型权重与部署

Bernini 提供了两个尺寸的开源权重:

模型 参数量 HuggingFace 适用场景
Bernini-R 14B 14B ByteDance/Bernini-R-Diffusers 全功能,最佳质量
Bernini-R 1.3B 1.3B ByteDance/Bernini-R-1.3B-Diffusers 轻量版,简单任务接近 14B

14B 模型基于 Wan2.2 基座,需要 8 GPU 做序列并行推理(视频任务)。1.3B 模型基于 Wan2.1 微调,在风格迁移、字幕去除、水印去除等简单任务上表现接近 14B。

部署要求

  • Python 3.11.2
  • CUDA 12.4(推荐 H100/H800/H200 + FlashAttention-3)
  • PyTorch 2.5.1+cu124
  • diffusers 0.35.2, transformers 4.57.3

单 GPU 可以跑图像任务(T2I/I2I),视频任务需要 8 GPU。团队还提供了 Gradio Demo,可以一键启动 Web UI。

Prompt 增强:Bernini 支持通过 OpenAI 兼容接口调用视觉大模型来增强输入 prompt,推荐开启以获得最佳生成质量。

六、技术亮点解读

6.1 自监督视觉-文本推理

传统视频编辑模型要么纯靠文本指令(容易丢失视觉细节),要么纯靠视觉特征(难以表达抽象编辑意图)。Bernini 的 MLLM 规划器同时处理文本和视觉输入,在语义空间里做推理,兼顾了两者的优势。

6.2 Flow Matching 去噪

Bernini 的渲染器使用 flow matching 而非传统的 DDPM/DDIM 去噪。Flow matching 在理论上更优雅,训练更稳定,生成质量也更好。这也是 Wan2.2 采用的方法。

6.3 序列并行

视频生成的计算量和帧数成正比。Bernini 使用 Ulysses 序列并行,把长序列拆分到多个 GPU 上并行处理,使得生成高分辨率长视频成为可能。

6.4 基座模型选择

Bernini 没有从零训练,而是站在巨人肩膀上:

  • 渲染器:基于 Wan2.2-T2V-A14B 微调。Wan2.2 是阿里开源的视频生成模型,在 VBench 上排名前列
  • 规划器:基于 Qwen2.5-VL-7B-Instruct 微调。Qwen2.5-VL 是阿里开源的多模态大模型,视觉理解能力强
  • 序列并行:使用字节自研的 VeOmni 框架

这种「微调开源基座」的策略,既保证了质量,又降低了训练成本。

七、局限性

Bernini 并非完美:

  1. 硬件门槛高:视频任务需要 8 GPU + H100 级别,普通开发者难以复现
  2. 1.3B 模型有差距:在复杂任务(如人体生成)上,1.3B 和 14B 的差距明显
  3. 默认分辨率有限:默认 480p / 16fps,720p / 24fps 需要更多计算资源
  4. 编辑精度依赖 prompt:编辑指令的措辞直接影响结果质量,需要一定的 prompt 工程经验
  5. Arena 评估局限:虽然用了人工评估,但评估平台是自建的,不是独立第三方

八、和同类项目对比

能力对比表

项目 机构 核心思路 开源 视频编辑
Bernini 字节跳动 MLLM 规划 + DiT 渲染 ✅ Apache 2.0 ✅ 第一梯队
Wan2.2 阿里 端到端 DiT ❌ 需要额外模型
CogVideoX 智谱 端到端 DiT 部分支持
Sora OpenAI DiT
Runway Gen-3 Runway DiT

Bernini 的差异化在于:统一框架 + 语义规划 + 开源。其他开源模型(Wan、CogVideoX)主要做文生视频,编辑能力需要额外适配;闭源模型(Sora、Runway)编辑能力强但不开源。

九、上手指南

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 克隆仓库
git clone https://github.com/bytedance/Bernini.git bernini && cd bernini

# 安装依赖
pip install -r requirements.txt

# 下载 14B diffusers 格式权重
pip install -U "huggingface_hub"
hf download ByteDance/Bernini-R-Diffusers --local-dir Bernini-R-Diffusers

# 单 GPU 图像生成
python infer_single_gpu.py --config Bernini-R-Diffusers \
--case assets/testcases/t2i/t2i.json --num_frames 1

# 8 GPU 视频编辑
torchrun --nproc-per-node 8 infer_multi_gpu.py \
--config Bernini-R-Diffusers --ulysses 8 \
--case assets/testcases/v2v/v2v_case1.json

# 启动 Gradio UI
python gradio_demo.py --config Bernini-R-Diffusers --port 7860

案例文件在 assets/testcases/ 目录下,每种任务类型都有示例。替换 --case 参数指向不同的 JSON 文件即可切换任务。

十、相关链接

  • 标题: Bernini:字节跳动用语义规划重新定义视频生成
  • 作者: Seven
  • 创建于 : 2026-06-09 10:00:00
  • 更新于 : 2026-07-14 00:18:14
  • 链接: https://blog.oneiseven.top/2026/06/09/Bernini-字节跳动用语义规划重新定义视频生成/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论