视频生成模型调研 – 人像视频/基础模型/可控编辑/DiT
2024-7-21
经常看见有一些视频生成的模型出来,类型还不太一样,简单学习和调研下这个领域和相关技术的情况。在我所看到的有限的范围里,可以把近期出现的视频生成能力分成两类:
- 一类是专门精细化控制人物表情动作的模型,驱动一张人像照片动起来。这类模型存在已久,老技术也能实现,近期不断有新模型出现,效果也越来越好,业界好像没针对这一类命个名,姑且叫它人像视频。
- 另一类是通用的视频生成基础模型,包括基于扩散模型的,以及 sora 出现后的 DiT 架构模型。另外跟 Stable Diffusion 图片生成的生态类似,也会有一些为视频生成基础模型配套的可控编辑扩展模型。
人像视频
先来看看人像视频,常见有两类:
- 表情控制:输入人物表情视频,让图片的人脸跟着做同样的表情。变种是输入音频,让图片人脸跟着音频的口型动,talking photo。
- 姿态控制:输入人物动作的视频,让图片的人跟着视频的动作动。火过的 case 是通义千问的全民舞王科目三。
表情控制(Vimi) | 姿态控制(Animate Anyone) |
这里的技术都不是这波大模型后才有的,上个时代已经有很多做得不错,上一波爆火的蚂蚁呀嘿已经是 2021 年的事了,相关论文也是 2019 年就有了:《First Order Motion Model for Image Animation》。后面不断有新的方案,包括基于和不基于扩散模型的方案。下面列几个近期出现,看起来还行的方案。
表情控制
基于扩散模型
基于扩散模型的方案,大体思路看起来是在原网络插入 pose/人脸点位 控制,跟 ControlNet 原理差不多,扩散模型本身除了 SD Unet 那套外,基本都会加入视频生成常见的 spatial-attention 和 temporal-attention。
|
|
还有几个不开源的:微软的VASA-1,阿里的EMO,都是语音对口型,朝着数字人方向做的。
非扩散模型
非扩散模型的方案,看起来基本也是先把人脸节点生成完,再用其他的网络结构去应用到图上生成视频。
|
|
|
姿态控制
|
|
|
还有其他很多,MimicMotion,MuseV,Follow Your Pose,DreaMoving 等,大同小异。
视频生成
视频生成模型业界除了最出名的 runway、pika、sora,也陆续有不少开源的方案出来,当前已有的开源方案基本都是基于 Latent Diffusion Model,核心是 UNet 降噪网络,基于这种网络还有不少做视频可控编辑扩展模型,DiT 架构还在路上。
基础模型
|
|
|
可控编辑
视频生成的可控编辑是指通过各种方式控制视频生成方向,例如运动方向、内容替换、风格迁移等,原理上跟图片生成的 ControlNet / IPAdatper 等机制差不多,基于上述视频生成基础模型,训练扩展模型插入原网络,控制生成方向。
图生视频控制
大部分视频生成是图生视频,在图片上圈选运动范围和运动轨迹是很自然的诉求,一代目 Runway 上的 Motion Brush 就是做这个,基本应该应该是后续正经视频生成模型的标配,也有开源模型基于 SVD 等基模做了这个能力。
|
视频内容编辑/风格化
这一类指 Video to Video,修改原视频上的元素,替换衣服、人物等,部分也包含了视频风格迁移能力。
|
|
|
DiT
DiT(Diffusion Transformer) 是视频生成基础模型的一个算法架构,应该放在基础模型部分的,但它太新了,想单独抽出来细看一下。
上面大部分模型,包括可控性的扩展模型,核心底层都是基于经典的 UNet 架构,但 Sora 出来后,业界公认 DiT 架构才是未来,毕竟效果太碾压了,最近可灵 / Luma 的出现也印证了这点。架构范式转移到 DiT 后,原先在 UNet 上做的各种可控雕花,看起来基本上是没法迁移到 DiT 架构的,一切得重来。
DiT 架构开源的只见到去年11月 sora 出来之前的 Latte,研究性比较多,效果一般。其他靠谱的开源模型还没见到,毕竟 Sora 还没见影,可灵和 luma 也刚出。(DiT架构的图片生成就有一些,比如腾讯混元)
DiT的架构图,与 LLM 的架构同源,核心是 transformer 模块,跟基于 UNet 的模型都不一样,我们尝试来看看在这个架构下视频生成的推理过程:
- 初始化一个噪声视频。
- 视频会先转换成潜空间的表示,后续的运算都在潜空间里运算,这点跟 Stable Diffusion 一类的扩展模型一致,视频应该是使用 VQ-VAE 进行编码到潜空间。
- 视频的表示会被分割成一个个 patch 块,每个 patch 块是一个 token,patch == token。
- 这些代表整个视频的 patch 块集合,一起进入 DiT Block。这个 DiT Block 就是个类 transformer 模块,与 LLM 一样核心也是多头注意力,在这里会计算每个 token 之间的注意力,加上引导词和步数条件,做相应计算。
- 按 LLM 模型的套路,这里 N 个 DiT Block 跑完,整个流程跑完,输出会是预测的下一个 token。但我理解这里的输出并不是下一个 token(一个 token 只是一个 patch),而是这里的 patch 合集经过这些 DiT Block 的注意力运算和条件引导,变换成离最终视频更近的一个表示,也就是对这里的噪声视频做了一次降噪。
- 如果是20次降噪,重复20次这个过程,一个纯噪声视频生成最终清晰的视频。
- 如果要垫图,首帧图尾帧图,只需要让图片跟输入的纯噪声视频做一些结合就可以。
可以看到跟其他的 UNet 为核心的架构有本质差别,像 ControlNet 各种可控性的研究没法迁移,需要另外找控制路径。从业界在这领域卷的程度看,预期发展还是会非常快,等下一个 DiT 架构的靠谱视频生成模型开源,也应该很快会有人在上面把相关可控能力不断研究补齐了。
感想
这个领域给我感受是模型超多,看不完跟不上,只能先了解个大概,在有具体应用场景时,再根据需求做相应深入的调研。
为什么这么多模型?看起来它训练的资源门槛没那么高(比 LLM 低),有公开训练数据集(WebVid 和 LAION),论文上都会把方法给出,width=甚至模型和代码也开源,各研究者很容易从中吸收学习做改进,再造一个模型,现在也没出现一个效果通用秒杀一切的模型,所以三天两头出个新模型是常态。
DiT 架构后,视频生成和视频编辑这些模型大概率要淘汰,而人像视频可能在较长一段时间内仍有应用空间,如果要做 AI 视频短片,人物表情动作精细控制挺重要,DiT 架构目前还没看到有能做到精细控制的技术,基于 Unet 的通用视频生成模型这么长时间也没法做好这块的可控性,可能一段时间内还得靠原有技术做这里的可控后编辑。