🤖 AI总结
主题
字节跳动开源AI视频生成与编辑框架Bernini
摘要
字节商业化技术团队开源AI视频框架Bernini,通过多模态大模型先理解指令再生成,实现精准可控的视频编辑与参考生成,已在Arena评测中达到第一梯队水平。
关键信息
- 1 Bernini采用’先理解再生成’的架构,由MLLM负责语义规划,DiT负责视觉渲染。
- 2 支持多种视频编辑任务,如改变天气、风格、动作,以及基于参考图/视频的生成。
- 3 已开源推理代码和权重,在Arena评测中进入第一梯队。
梦瑶 发自 凹非寺
量子位 | 公众号 QbitAI
大家都懂,视频生成这件事,最让创作者头疼的,不一定是画面不够清晰。
而是模型常常听不懂人话!!!(扎心.jpg)
想把晴天改成雪天,它可能只会往画面上撒雪花;想把一段动画植入商场LED大屏,它可能边界乱飘、透视不稳。
于是乎,问题来了:AI视频生成,能不能先理解创作者到底想改什么,再动手生成?
就在刚刚,字节商业化技术团队反手给出一个行业新解法——
开源面向视频生成与视频编辑的统一框架:Bernini。
主打一个先理解再生成~
![]()
Bernini的思路很直接,让多模态大模型先负责语义理解与规划,再交给diffusion模型完成高质量视觉渲染。
在能力上,Bernini覆盖了参考生成、视频编辑等多种任务,重点体现的就是两个字:「可控」。
比如改变整体视觉风格时,不只是把单帧画得好看,还能稳住前后帧的一致性,主打一个效果超级稳:
![]()
这下好了,AI视频生成也能从听prompt干活,往先理解、再动手再进一步了~
对了,目前,Bernini的推理代码和权重已经开放!!(欢呼.jpg)
一条指令改视频,Bernini轻松拿捏「可控编辑」!
如果说过去很多视频生成模型更像按提示词出片,那Bernini想解决的,是另一个更实际的问题——
生成之后,怎么继续改?
我们日常碰到的大多数调整需求听起来都很easy,但对视频模型来说并不简单!!!
因为视频编辑不是改一张图,而是在一段连续画面里,既要听懂指令,又要保住主体、结构、镜头和运动关系。
稍微处理不好,就会出现主体变形、背景漂移、动作断裂、帧间闪烁等问题。
而Bernini的核心思路,正是把这个过程拆得更清楚。
![]()
△AI生成
我们可以把Bernini理解成一个AI视频片场里的「导演+后期团队」。
前面负责导演的,是一个叫MLLM-based planner的多模态大模型规划器。
它会先看懂你的文本指令,也会一起理解源视频、参考图片、参考视频这些素材,判断目标画面应该变成什么样。
等这一步想清楚后,再交给diffusion模型DiT-based renderer来完成视觉渲染,把前面规划好的语义目标,真正变成连续、稳定、高质量的视频画面。
所以Bernini框架的妙处,就在于分工足够清楚:
多模态大模型负责想明白,Diffusion Transformer负责生成出来。
从文本到视频生成,到视频编辑,再到基于图像和视频参考的复杂控制生成都全部梭哈!
![]()
△Bernini在统一框架内支持多种视频生成任务
这套巧妙分工,也让Bernini在视频可控编辑上,展现出了一批相当直观的视频编辑能力。
最基础的,是一条指令改变天气、季节、材质和风格的能力。
比如同一段城市航拍视频,输入指令后,可以从晴天切到雾天、雨天、雪天。
最关键是,它处理的并不只是天上多几片雪、画面加一层滤镜,而是会连带调整天空、光照、路面、建筑表面和整体环境氛围,让这场天气变化看起来像真的发生在原场景里:
![]()
更进一步,Bernini的语义编辑已经开始进入「镜头语言」。
首先就是能控制画面关注区域的视角、焦点和动作。
在视角编辑上,Bernini能进一步理解场景里的三维关系,让部分视角调整结果更符合透视、结构和空间逻辑:
![]()
在焦点编辑能力上,Bernini还能够根据指令调整画面的关注区域,让视频叙事重心随之改变。
比如一个画面里有多个物体,我们可以让镜头更关注桌上的收音机,也可以让焦点从前景转到背景,so easy~
![]()
当然,视频创作里最容易卡bug的,还有动作。(doge)
毕竟很多AI视频静止看还行,一动起来就露馅:主体变形、动作断裂、背景漂移,镜头也跟着不稳!!
值得一提的是,Bernini在保留主体身份和场景结构的前提下,可以高精准度地改变主体动作行为。
我们来看下面这段棕熊视频,哪怕从普通状态改成起身跳舞、咆哮,环境、光照和镜头关系依然能保持稳定~
![]()
这就意味着,Bernini改视频不只是让主体「动起来」,还要让动作变化「自然嵌进」原来的画面里。
从反复抽卡到哪里不对改哪里,AI视频终于开始有点后期软件的味儿了???
参考素材上场,视频创作更可控、更一致
友友们日常做AIGC内容创作时,还会遇到一个问题,那就是——
我们真的很难用一句prompt,精确描述想要的视觉效果……
尤其是碰到具体材质、某个商品、某种电影色调,或者一段需要植入到屏幕里的视频素材,就更容易翻车…..
好巧不巧, Bernini除了编辑的本事很强外,还有一个贼实用的能力:支持图片和视频作为编辑参考。
不仅如此,它还能基于参考输入直接生成新视频,把物体、角色和场景的一致性问题狠狠拿捏!!
不只靠prompt:用图片和视频作为编辑参考
首先来看Bernini参考生成的第一个本事——编辑参考。
具体来说,Bernini可以让创作者直接用视觉样例控制结果,广告创意、电商展示、影视预演、二次创作友友狂喜!!
比如下面这个增加指定主体的案例,只需要放入一张狗狗参考图,视频里就能自然出现同款狗狗。
再输入一张雪人图片,雪人也能顺滑融进当前视频里,光照、透视、边缘关系都处理得非常自然:
![]()
除了参考主体,Bernini还能参考材质。
比如给它布料、朱砂壶、大理石、金属等不同材质参考,原视频里的盘子就可以被改成对应纹理视觉质感~
而且最重要的是,这种材质变化会跟着目标物体稳定存在,而不是播放几帧就漂移、错位或失真:
![]()
风格参考也不在话下!
哪怕参考图横跨卡通、写实、水墨、赛博朋克等完全不同的视觉风格,Bernini也能提取风格特征并迁移到视频里。
值得一提的是,原视频里的主体和运动关系也会高度保留,风格变化也会随着时间轴稳定延续:
![]()
此外在编辑参考中,Bernini还有一类很实用的能力,那就是:图像与视频植入。
大家都知道,街头灯箱、商场LED大屏、地铁电视,甚至镜头里任何一块屏幕,都可以变成展示位。
而Bernini能做的,就是把一张海报、一段视频精准填进目标区域里,还能跟着原片镜头一起移动,做到边界不破、透视不乱、时序不抖。
例如给一段街头实拍再提供一张油画图片,Bernini就能把油画自然贴进招牌里,画面融合度也非常强:
![]()
广告预览、影视预演、虚拟拍摄里,很多原本要反复抠帧、跟踪、校透视的工作,这下也能被收进了一次推理里了~
从参考图生成视频:更一致的物体、角色和场景
顺带提一嘴,除了编辑已有视频,Bernini还支持基于参考图直接生成「新视频」。
我们先来看大家日常需求比较多的单图参考生成。
比如只给一张香水产品图,再输入「生成一段产品展示视频」的提示词,模型就能生成真人手持香水转动的画面。
瓶身轮廓、金色液体、黑色标贴这些关键细节,都能和原图保持很高的一致性。
更有意思的是,换成一条运动头带,再让模型自由发挥,它还能生成一只羊驼戴着头带站在沙漠的画面:
![]()
同一个能力,既能做正经产品片,也能搞脑洞创意短片,属实有点666了啊??
再进一步,Bernini还能实现多元素组合参考生成。
在此我需要要大大点赞的一点是,我们喂进去的参考图不一定需要来自同一个物体!!!
比如一座大理石半身像、一副粉色猫耳耳机、一件的黑色T恤、一条热带印花短裤,再加一张落日海滩长椅。
几张图原本八竿子打不着,但Bernini却可以把它们组合成同一个视频角色:
![]()
(谁成想呢,NanoBanana当时大热的ootd玩法已经进阶到「视频」版本了!)
这类能力放到IP联名、虚拟人塑造、广告概念片里就很有用,素材库里原本分散的元素,可以被重新组合成一个全新的角色和场景~
此外,Bernini还有一个更关键的能力,那就是同一物体的多角度参考。
大家都知道,商品和角色很少只有一面,包有背带,车有尾灯,雕塑有侧脸和背面,模型如果只看过正面,镜头一转,很容易开始自由发挥。
而Bernini特殊就特殊在,它可以吃进同一物体的多张角度参考图——
比如喂给它大理石雕塑的五张多角度参考,再让它生成一段连续镜头,雕塑从不同角度出现时,五官、肌肉走向、衣袍褶皱都能保持高度一致:
![]()
最后想说的能力,是场景关键帧到连续镜头。
给到同一办公区休息廊的几张关键帧,比如沙发、绿植、走廊尽头的玻璃门,Bernini可以生成一段连续平移镜头:
![]()
说实话,这一步已经开始接近更长线的世界模型能力了。
因为它考验的已经不只是这一帧好不好看,还包括模型能不能理解同一个场景在连续镜头里的空间关系。
虚拟漫游、游戏关卡生成、影视预演,甚至具身智能模拟,往后都绕不开这种连续性。
从语义规划到视觉渲染,Bernini的关键是「先理解,再生成」
所以问题来了,Bernini为什么能同时吃文本、视频、参考图,还能把结果做得更稳?
就像前面提到的,其核心原因在于它没有让一个模型包办所有事情,而是把任务拆成了两步。
第一步是「语义规划」,让模型先理解目标。
具体来说,Bernini首先使用MLLM-based planner来理解文本、视频和参考视觉输入,并直接在ViT embedding space中预测目标语义表示。
这个目标语义表示,可以理解成生成前的一张「语义草图」。
它不直接规定每个像素长什么样,而是先描述清楚:目标视频应该包含什么内容、结构怎么变、哪些元素要保留、哪些地方要被编辑。
![]()
第二步是「视觉渲染」,把语义转化成高质量视频。
拿到语义规划后,DiT-based renderer会负责生成最终画面,对于视频编辑任务,它还会结合源视频的VAE features,尽量保留原视频里的细节和非编辑区域,避免一改就把整段画面带跑。
还有一个关键点,是「多参考输入」怎么处理。
当多个参考图、源视频、目标视频被串进同一个序列里时,不同素材可能会出现相同的时间和空间坐标,模型容易认混。
所以Bernini引入了Segment-Aware 3D Rotary Positional Embedding,也就是SA-3D RoPE。
它会给不同视觉片段加上各自的segment标记,让模型分清:哪个是参考图,哪个是源视频,哪个是目标输出;同时还能保留时间和空间位置关系。
值得一提的是,在字节商业化技术团队自建的Arena结果里,Bernini的位置也很有看头——
面对几款国内外主流闭源模型,这个开源框架没有被拉开差距,反而已经站进了第一梯队:
![]()
说到底,Bernini最让创作者有实感的地方,不只是画面更好看,而是它让AIGC创作少了一点「玄学」。
以前我们写了一大段prompt,AI未必懂;想改一个小地方,它可能整条视频都重来;给了参考图,它也可能只学到一点皮毛,最后主体、材质、风格全都跑偏。
而Bernini解决的,就是这种创作里的失控感。
它先理解用户想要什么,理解原视频里哪些内容要保留,也理解参考图片、参考视频到底提供了什么视觉信息。
然后,再把这种理解转成可以生成、可以编辑、可以稳定落地的视频结果。
少一点反复碰运气,多一点真正可控的创作空间,这也是Bernini最有价值的地方——
让大家用自己的素材、自己的想法,去探索AI视频创作还能怎么变得更好用、更听话、更接近真实创作流程。
对了,需要一提的是,目前率先开源的Bernini-R,对应Bernini三阶段训练流程中的第二阶段模型。
而包含MLLM Planner的完整版本也在代码整理中,预计近期将进一步开放,大家可以小小期待一下子!
(不管咋说,Bernini-R可以先狠狠安排上了~)
Bernini一箩筐参考链接:
[1]GitHub:https://github.com/bytedance/Bernini
[2]Hugging Face:https://huggingface.co/ByteDance/Bernini
[3]Project Page:https://bernini-ai.github.io