HunyuanVideo: A Systematic Framework For Large Video Generative Models
- 前言
- 引言
- Overview
- 数据预处理
- 模型架构设计
-
- [3D Variational Auto-encoder Design](#3D Variational Auto-encoder Design)
- 统一的图像和视频生成架构
- [Text encoder](#Text encoder)
- [Model Scaling](#Model Scaling)
-
- [Image model scaling law](#Image model scaling law)
- [video model scaling law](#video model scaling law)
- 模型预训练
- [prompt rewrite](#prompt rewrite)
- 高性能模型微调
- 模型加速
- 基础模型性能
- 应用
-
- 音频生成
- [Image to video](#Image to video)
- [Avatar Animation](#Avatar Animation)
-
- [Upper-Body Talking Avatar Generation](#Upper-Body Talking Avatar Generation)
- 完全控制的全身化身生成
- Demo
- 相关工作
前言
"弥合封闭源视频基础模型和开源视频基础模型之间的差距,以加快社区探索。"------混元基础模型团队
project:https://github.com/Tencent/HunyuanVideo/tree/main
不愧是大组,下游任务刷了个遍,也做了非常丰富的实验
引言
基于扩散的视频生成模型仍然相对不活跃。我们认为,这种停滞的主要原因之一是缺乏稳健的开源基础模型
由此本报告介绍了我们的开源基础视频生成模型 HunyuanVideo。该系统框架包括训练基础设施、数据管理、模型架构优化和模型训练。通过我们的实验,我们发现随机缩放一个简单的基于transformer的生成模型的训练数据、计算资源和模型参数,使用流匹配(flow matching)进行训练并不够有效。因此,我们探索了一种有效的缩放策略,可以在实现所需的模型性能的同时将计算资源需求减少多达 5 倍 。通过这种最佳缩放方法和专用基础设施,我们成功地训练了一个包含 13 亿个参数的大型视频模型,在互联网规模的图像和视频上预训练它。经过专门的渐进式微调策略,HunyuanVideo 在视频生成的四个关键方面表现出色:视觉质量、运动动力学、视频-文本对齐和语义场景切割。我们对 HunyuanVideo 与领先的全局视频生成模型进行了全面比较,包括中国 Gen-3 和 Luma 1.6 和 3 个表现最佳的商业模型,使用了一组 60 人访问的超过 1,500 个具有代表性的文本提示。结果表明,HunyuanVideo 实现了最高的整体满意度,尤其是在运动动力学方面表现出色。
Overview
数据预处理
- 我们使用图像-视频联合训练策略。视频被精心划分为五个不同的组,而图像分为两组,每组都量身定制以适应各自训练过程的具体要求。
- *我们的原始数据池最初包括跨越广泛领域的视频,包括人、动物、植物、风景、车辆、物体、建筑物和动画。**每个视频都是通过一组基本阈值获得的,包括最小持续时间要求。
- 此外,数据的一个子集是根据更严格的标准收集的,例如空间质量、遵守特定纵横比以及组成、颜色和曝光方面的专业标准。这些严格的标准确保我们的视频具有技术质量和审美吸引力。我们通过实验证明,结合高质量的数据有助于显着提高模型性能。
数据过滤
我们来自不同来源的原始数据表现出不同的持续时间和质量水平。
- 首先,我们利用PySceneDetect将原始视频分割成单镜头视频片段。
- 接下来,我们使用OpenCV中的拉普拉斯算子来识别清晰的帧,作为每个视频剪辑的起始帧。使用内部VideoCLIP模型,我们计算这些视频剪辑的嵌入。这些嵌入有两个目的:(i)我们根据嵌入的余弦相似度对相似的剪辑进行重复数据删除; (ii)我们应用 k-means 来获得 ∼10K 概念质心以进行概念重采样和平衡。
- 为了不断增强视频美学、运动和概念范围,我们实现了一个分层数据过滤管道来构建训练数据集,如图 4 所示。该管道包含各种过滤器,以帮助我们从我们接下来介绍的不同角度过滤数据。我们使用Dover从美学和技术角度评估视频片段的视觉美学。
- 此外,我们训练了一个模型来确定清晰和消除带有视觉模糊视频剪辑。
- 通过使用估计的光流预测视频的运动速度,我们过滤掉静态或慢动作的视频。
- 我们将PySceneDetect和Transnet v2的结果结合起来,得到场景边界信息。
- 我们利用内部 OCR 模型去除文本过多的视频片段,以及定位和裁剪字幕。
- 我们还开发了类似YOLOX的视觉模型来检测和删除一些闭塞或敏感信息,如水印、边界和标志。
为了评估这些过滤器的有效性,我们使用较小的 HunyuanVideo 执行简单的实验
这些数据集(除了最后一个微调数据集)是通过逐步改进上述过滤器的阈值来管理的。视频空间分辨率从256 × 256 × 65逐渐增加到720×1280 × 129
为了提高模型在最终阶段的性能,我们构建了一个包含约 1M 个样本的微调数据集 。该数据集通过人工注释 精心策划。注释者被分配了识别表现出高视觉美学和令人信服的内容运动的视频剪辑的任务。每个视频剪辑根据两个角度进行评估:(i)分解美学视图,包括颜色和和谐、照明、对象强调和空间布局 ; (ii) 分解的运动视图,包括运动速度、动作完整性和运动模糊 。最后,我们的微调数据集由视觉上吸引人的视频剪辑组成,这些视频剪辑具有复杂的运动细节。我们还通过重用大多数过滤器(不包括与运动相关的过滤器)为图像建立了一个分层数据过滤管道。类似地,我们通过逐步增加应用于数十亿个图像-文本对的图像池的过滤阈值来构建两个图像训练数据集。第一个数据集包含数十亿 个样本,用于文本到图像预训练的初始阶段。第二个数据集包含数亿个样本,用于文本到图像预训练的第二阶段。
数据注释
结构化字幕。如研究所示,字幕的精度和全面性在提高生成模型的提示跟随能力和输出质量方面起着至关重要的作用。以前的大多数工作都专注于提供简短的字幕或密集的字幕 。然而,这些方法并非没有缺点,存在信息不完整、冗余话语不准确等问题。为了追求具有更高全面性、信息密度和准确性的标题,我们开发并实现了一个内部视觉语言模型(VLM),旨在为图像和视频生成结构化标题 。这些以 JSON 格式的结构化字幕从不同的角度提供多维描述性信息,包括:
1)简短描述:捕捉场景的主要内容。
2)密集描述:详细介绍场景的内容,特别是包括与视觉内容集成的场景转换和相机运动 ,如相机遵循一些主题。
-
背景:描述主题所在的环境。
-
风格:表征视频的风格,例如纪录片、电影、现实或科幻。
-
镜头类型:识别突出或强调特定视觉内容的视频镜头类型,例如航拍、特写镜头、中镜头或长镜头。
6)照明:描述视频的照明条件。
- 大气:传达视频的大气,例如 cozy、时态或神秘。
此外,我们扩展了 JSON 结构,以合并额外的元数据派生元素,包括来自图像和视频元信息的源标签、质量标签和其他相关标签 。通过实现精心设计的 dropout 机制以及排列和组合策略,我们通过为每个图像和视频组合这些多维描述来合成长度和模式多样化的字幕,旨在提高生成模型的泛化能力并防止过度拟合(应该指可以随机将一段长的caption组合为多组长度的 caption)。我们利用这个标题器为训练数据集中的所有图像和视频提供结构化标题。
相机运动类型 。我们还训练了一个相机移动分类器,能够预测14种不同的相机移动类型 ,包括放大、放大、平移、平移、平移、向左平移、平移、向右倾斜、倾斜、向左倾斜、向右倾斜、左右、左右、左右、左右、静态镜头和手持镜头。摄像机移动类型的高置信度预测被集成到JSON格式的结构化字幕中,以实现生成模型的摄像机运动控制能力
模型架构设计
3D Variational Auto-encoder Design
我们训练一个3DVAE将像素空间视频和图像压缩成一个紧凑的潜在空间。
对于形状视频 (T + 1) × 3 × H × W ,我们的 3DVAE 将其压缩为形状为 (T ct + 1) × C × (H cs ) × (W cs ) 的潜在特征。在我们的实现中,ct = 4、cs = 8 和 C = 16。
training
与大多数以前的工作 [67, 11, 104 ] 相比,我们不依赖预训练的图像 VAE 进行参数初始化 ;相反,我们从头开始训练我们的模型。为了平衡视频和图像的重建质量,我们以4:1的比例混合视频和图像数据。除了常规使用的L1重建损失和KL损失Lkl外,我们还加入了感知损失Llpip和GAN对抗损失Ladv[22]来提高重建质量。
L o s s = L 1 + 0.1 L l p i p s + 1 0 ( − 6 ) L k l Loss=L_1+0.1L_{lpips}+10^(-6)L_{kl} Loss=L1+0.1Llpips+10(−6)Lkl
在训练期间,我们采用循环学习策略,从低分辨率短视频逐渐训练到高分辨率长视频。为了提高高运动视频的重建,我们从1 ~ 8范围内随机选择一个采样间隔,在视频片段中均匀地采样帧
inference
在单个 GPU 上编码和解码高分辨率长视频可能会导致内存不足 (OOM) 错误。为了解决这个问题,我们使用时空平铺策略,将输入视频沿空间和时间维度分割成重叠的瓦片 。每个瓦片分别编码/解码,输出拼接在一起。对于重叠区域,我们利用线性组合进行混合。这种平铺策略允许我们在单个 GPU 上以任意分辨率和持续时间对视频进行编码/解码 。我们观察到,在推理过程中直接使用平铺策略会导致可见的伪影,因为训练和推理之间的不一致。为了解决这个问题,我们引入了一个额外的微调阶段,其中在训练期间随机启用/禁用平铺策略。这确保了模型与平铺和非平铺策略兼容,保持训练和推理之间的一致性。
表 1 将我们的 VAE 与开源最先进的 VAE 进行了比较。在视频数据上,与其他视频 VAE 相比,我们的 VAE 显示出明显更高的 PSNR。在图像上,我们的性能超过了视频 VAE 和图像 VAE。图 7 显示了几种分辨率为 256 × 256 的情况。我们的 VAE 在文本、小人脸和复杂的纹理方面表现出显着的优势。
统一的图像和视频生成架构
HunyuanVideo 中的 Transformer 设计采用统一的全注意力机制:
- 首先,与划分时空注意相比,它表现出了优越的性能。
- 其次,它支持图像和视频的统一生成,简化了训练过程,提高了模型的可扩展性。
- 最后,它更有效地利用现有的llm相关的加速能力,提高了训练和推理效率。模型结构如图8所示。
使用内核大小为 kt × kh × kw 的 3D 卷积将这些潜在物修补并展开为长度为 T kt · H kh · W kw 的 1D 令牌序列。
LLM捕捉细粒度的语义信息,clip 捕捉全局文本特征。
遗留问题:Gate 是什么机制?
模型设计 为了有效整合文本和视觉信息,我们遵循[47]中引入的类似的"双流"混合模型设计策略来生成视频。在双流阶段,视频和文本令牌通过多个Transformer块独立处理,使每个模态能够在不受干扰的情况下学习自己的适当的调制机制 。在单流阶段,我们将视频和文本标记连接起来,并将它们输入到后续的Transformer块中,以实现有效的多模态信息融合。这种设计捕获了视觉和语义信息之间的复杂交互,提高了整体模型性能。
位置嵌入 为了支持多分辨率、多方面比率和不同的持续时间生成,我们在每个 Transformer 块中使用旋转位置嵌入 (RoPE) [77]。RoPE 将旋转频率矩阵应用于嵌入,增强了模型捕获绝对位置和相对位置关系的能力,并展示了 LLM 中的一些外推能力。鉴于视频数据中时间维度的附加复杂性,我们将 RoPE 扩展到三个维度。具体来说,我们分别计算时间 (T)、高度 (H) 和宽度 (W) 坐标的旋转频率矩阵 。然后,我们将查询和键的特征通道划分为三个段(dt、dh、dw),将每个段乘以相应的坐标频率并连接段。这个过程产生位置感知查询和关键嵌入,用于注意力计算。
Text encoder
在文本到图像和文本到视频的生成任务中,文本编码器通过提供潜在空间中的引导信息起着至关重要的作用。一些有代表性的作品(SD3)通常使用预先训练的CLIP和T5-XXL作为文本编码器,其中CLIP使用Transformer Encoder,T5使用Encoder-Decoder结构。
相比之下,我们使用预先训练的多模态大型语言模型(MLLM)和仅解码器结构作为我们的文本编码器 ,具有以下优点:(i)与T5相比,视觉指令微调后的MLLM在特征空间中具有更好的图像-文本对齐,缓解了扩散模型中指令跟随的难度 ;(ii)与CLIP相比**,MLLM在图像细节描述和复杂推理方面表现出了优越的能力**;(iii) MLLM可以通过遵循用户提示之前的系统指令作为zero-shot学习者,帮助文本特征更加关注关键信息 。此外,如图9所示,MLLM基于因果注意,而T5-XXL利用双向注意,为扩散模型产生更好的文本指导 。因此,我们遵循(Exploring the Role of Large Language Models in Prompt Encoding for Diffusion Models)引入额外的双向令牌细化器来增强文本特征 。我们针对不同的目的配置了 HunyuanVideo,其中包含一系列 MLLM [78,17,26]。在每个设置下,MLLM 表现出比传统文本编码器更好的性能。
此外,CLIP 文本特征也很有价值,因为文本信息的摘要 。如图 8 所示,我们采用 CLIP-Large 文本特征的最终非填充标记作为全局指导,集成到双流和单流 DiT 块中。
Model Scaling
语言模型训练中的Scaling Laws (想不到合适的翻译)为理解和优化机器学习模型的性能提供了强大的工具。通过阐明模型大小 (N)、数据集大小 (D) 和计算资源 © 之间的关系,这些规律有助于推动开发更有效和更有效的模型,最终推进大型模型训练的成功。
与之前在大型语言模型[41,36,81,1,2]和图像生成模型[49,42]上的Scaling Laws相比,视频生成模型通常依赖于预先训练的图像模型。因此,我们最初的步骤涉及建立与文本到图像相关的基本Scaling Laws。基于这些基本的Scaling Laws,我们随后推导了适用于文本到视频模型的Scaling Laws。通过集成这两组Scaling Laws,我们能够系统地确定视频生成任务的适当模型和数据配置。
Image model scaling law
Kaplan等人[41]和Hoffmann等人[36]探索了交叉熵损失语言模型的经验标度律。在基于扩散的视觉生成领域,Li et al.al[49]研究了UNet上的缩放特性,而基于变压器的工作如DiT[65]、U-ViT[3]、Lumina-T2X[23]和SD3[21]只研究了样本质量和网络复杂度之间的缩放行为,使扩散模型使用的计算资源和MSE损失幂律未被探索。
为了填补这一空白,我们开发了一系列类似 DiT 的模型,称为 DiT-T2X 来区分原始 DiT,其中 X 可以是图像 (I) 或视频 (V)。DiT-T2X 应用 T5-XXL[71] 作为文本编码器,将上述 3D VAE 用作图像编码器。根据交叉注意力层向模型注入文本信息。DiT-T2X 家族有 7 个大小,范围从 92.M 到 6.6B。这些模型使用具有一致超参数的 DDPM [34] 和 v 预测 [73] 以及具有 256px 分辨率的相同数据集进行训练。我们遵循[36]引入的实验方法,建立neural scaling law来拟合
如图 10 (a) 所示,每个模型的损失曲线从左到右递减,并且总是通过与其相邻的更大尺寸模型的损失曲线 。这意味着每条曲线将形成两个与较大模型和较小模型的曲线的交点。在两个交点之间的相应计算资源下,中型模型是最优的(损失最低) 。在获得所有x轴值中损失最低的包络后,我们填充式(2),找出a1 = 5.48 × 10−4,b1 = 0.563, a2 = 0.324和b2 = 0.4325,其中a1, a2, Nopt, Dopt的单位是数十亿,而C的单位是Peta FLOPs的单位。图 10 (b) 和图 10 © 表明 DiT-T2X(I) 家族非常适合幂律。最后,给定计算预算,我们可以计算最优模型大小和数据集大小。
video model scaling law
**基于T2X(I)模型的标度律,我们选择与每个尺寸模型对应的最优图像检查点(即包络上的模型),作为视频标度律实验的初始化模型。**图 10 (d)、图 10 (e) 和图 10 (f) 说明了 T2X(V) 模型的标度律结果,其中 a1 = 0.0189, b1 = 0.3618, a2 = 0.0108 和 b2 = 0.62889。基于图 10 (b) 和图 10 (e) 的结果,考虑到训练消耗和推理成本,我们最终将模型大小设置为 13B。然后计算图像和视频训练的令牌数,如图10 ( c )和图10 (f)所示。
值得注意的是,图像和视频比例定律计算的训练令牌数量分别与图像和视频第一阶段的训练有关。
在未来的工作中将留下从低分辨率到高分辨率进行渐进式训练的缩放属性。
模型预训练
使用流匹配[52]进行模型训练,首先在 256px 和 512px 图像上预训练我们的模型,然后对 256px 到 960px 的图像和视频进行联合训练。
训练目标
在这项工作中,我们使用流匹配框架 [52, 21, 13] 来训练我们的图像和视频生成模型。流匹配通过一系列概率密度函数的变量变换将复杂的概率分布转换为简单的概率分布,并通过逆变换生成新的数据样本 。在训练过程中,给定训练集中的图像或视频潜在表示 x 1 x_1 x1。我们首先从logit正态分布[21]中采样t∈[0,1],并在Gaussion分布之后初始化噪声x0 ~ N (0, I)。然后使用线性插值方法[52]构造训练样本xt。该模型经过训练以预测速度 u t = d x t / d t u_t = dx_t/d_t ut=dxt/dt,引导样本 x t x_t xt 朝向样本 x 1 x_1 x1。通过最小化预测速度 v t v_t vt 和地面实况速度 u t u_t ut 之间的均方误差来优化模型参数,表示为损失函数
在推理过程中,最初绘制了噪声样本 x 0 ∼ N ( 0 , I ) x_0 ∼ N (0, I) x0∼N(0,I)。然后使用一阶欧拉常微分方程 (ODE) 求解器通过整合模型对 dxt/dt 的估计值来计算 x1。此过程最终生成最终样本 x1。
图像预训练
在早期的实验中,我们发现一个经过良好预训练的模型显着加速了视频训练的收敛性,提高了视频生成性能 。因此,我们引入了一种两阶段渐进图像预训练策略作为视频训练的预热 。图像阶段 1(256px 训练)。该模型首先使用低分辨率 256px 图像进行预训 练。具体来说,我们遵循之前的工作 [66] 来实现基于 256px 的多方面训练,这有助于模型学习生成具有广泛纵横比的图像,同时避免图像预处理中裁剪操作引起的文本图像错位。同时,使用低分辨率样本进行预训练允许模型从大量样本中学习更多的低频概念 。图像阶段 2(混合尺度训练)。我们引入了第二个图像预训练阶段,以进一步促进更高分辨率(例如 512px)的模型能力。一个简单的解决方案是直接对基于 512px 的图像进行微调。然而,我们发现在 512px 图像上微调的模型性能在 256px 图像生成上会严重下降,这可能会影响对 256px 视频进行以下视频预训练。因此,我们提出了混合尺度训练,其中每个训练全局批次包含两个或多个尺度的多方面桶。每个尺度都有一个锚点大小,然后根据锚点大小构建多方面桶。我们在锚大小为 256px 和 512px 的小规模数据集上训练模型,以学习更高分辨率的图像,同时保持低分辨率的能力。我们还为具有不同图像尺度的微批次引入了动态批量大小,使 GPU 内存和计算利用率最大化。
Video-Image joint training
多个纵横比和持续时间桶化 :
在第 3.1 节中描述的数据过滤过程之后,视频具有不同的纵横比和持续时间。为了有效地利用数据,我们根据持续时间和纵横比将训练数据分类为桶。我们创建了 BT 持续时间桶和 BAR 纵横比桶,总共产生了 BT × BAR 桶。由于令牌的数量因桶而异,我们为每个桶分配一个最大批量大小,以防止内存不足 (OOM) 错误,以优化 GPU 资源利用率。在训练之前,所有数据都分配给最近的桶。在训练期间,每个等级从桶中随机抽取批量数据。这种随机选择确保模型在每个步骤的不同数据大小上进行训练,这有助于通过避免在单个大小上训练的局限性来保持模型泛化。渐进式视频图像联合训练。直接从文本生成高质量、长持续时间的视频序列通常会导致模型收敛困难和次优结果。因此,渐进式课程学习已成为训练文本到视频模型的一种广泛采用的策略。在 HunyuanVideo 中,我们设计了一种全面的学习策略,从使用 T2I 参数的模型初始化开始,并逐步增加视频持续时间和分辨率
- 低分辨率、短视频阶段。该模型建立了文本和视觉内容之间的基本映射,保证了短期动作的一致性和连贯性。
- 低分辨率、长视频阶段。该模型学习了更复杂的时间动态和场景变化,确保了较长时间内的时间和空间一致性。
- 高分辨率、长视频阶段。该模型在保持时间一致性和管理复杂时间动态的同时提高了视频分辨率和细节质量。
在每个阶段,我们将不同比例的图像纳入视频图像联合训练 。这种方法解决了高质量视频数据的稀缺性,使模型能够学习更广泛多样的世界知识。它还有效地防止了由于视频和图像数据之间的分布差异而导致的图像空间语义的灾难性遗忘。
prompt rewrite
为了解决用户提供的提示的语言风格和长度的可变性,我们使用 Hunyuan-Large 模型[78] 作为我们的提示重写模型,将原始用户提示调整为模型首选提示。在无训练框架内利用,提示重写模型利用详细的提示指令和上下文学习示例来提高其性能。
- 多语言输入适应:该模块旨在处理和理解不同语言的用户提示,确保保留含义和上下文。
- 提示结构的标准化:该模块重新表述提示以符合标准化信息架构,类似于训练字幕。
- 复杂术语的简化:该模块将复杂的用户措辞简化为更直接的表达式,同时保持用户的原始意图。
高性能模型微调
在预训练阶段,我们使用大型数据集进行模型训练。虽然这个数据集的丰富信息,但它在数据质量方面表现出相当大的可变性。为了创建能够生成高质量、动态的视频并提高其在连续运动控制和角色动画方面的熟练程度的稳健生成模型,我们从完整数据集中精心选择了四个特定的子集进行微调。这些子集使用自动数据过滤技术进行了初始筛选,然后进行手动审查。此外,我们实现了各种模型优化策略来最大化生成性能。
模型加速
(a) 不同的时间步长调度器。对于我们的移位 stragty,我们为较低的推理步骤设置了更大的移位因子 s。(b) 生成只有 10 个推理步骤的视频。移位阻力导致视觉质量明显更好。
Inference Step Reduction
为了提高推理效率,我们首先考虑减少推理步骤的数量。与图像生成相比,具有较低推理步骤的生成视频保持空间和时间质量更具挑战性。
受先前观察的启发,即第一个时间步在生成过程中贡献了大部分变化 [101, 67, 98, 99],我们利用时间步移动来处理较低推理步骤的情况。具体来说,给定推理步骤 q ∈ {1, 2,..., Q}, t = 1 − q/Q 是生成模型的输入时间条件 ,其中噪声在 t = 1 处初始化,生成过程在 t = 0 处停止。我们不是直接使用 t,而是使用移位函数 t ′ = s ∗ t 1 + ( s − 1 ) ∗ t t' = \frac{s∗t}{1+(s−1)∗t} t′=1+(s−1)∗ts∗t 将 t 映射到 t′,其中 t′ 是输入时间条件,s 是移位因子。如果 s > 1,则流模型更多地以早期时间步长为条件 。一个关键的观察结果是,较低的推理步骤需要更大的移位因子 s。根据经验,对于 50 个推理步骤,s 设置为 7,而当推理步骤的数量小于 20 时,s 应该增加到 17。时间步长移动策略使生成模型能够将许多推理步骤的结果与减少的步骤数相匹配。
MovieGen[67]应用线性二次调度器(linear-quadratic scheduler)来实现类似的目标。调度器如图11a所示。然而,我们发现在推理步骤数量极低的情况下,我们的时间步长移动比线性二次调度器更有效,例如 10 步。如图11b所示,线性二次调度器导致视觉质量更差。
文本引导蒸馏
分类器自由引导(CFG)[35]显著提高了文本条件扩散模型的样本质量和运动稳定性。然而,它增加了计算成本和推理延迟,因为它需要在每个推理步骤对无条件输入进行额外的输出。特别是对于大型视频模型和高分辨率视频生成,同时生成文本条件视频和文本无条件视频时,推理负担非常昂贵**。为了解决这个限制,我们将无条件和条件输入的组合输出提炼为单个学生模型[60]**。具体来说,学生模型以引导尺度为条件,与教师模型共享相同的结构和超参数。我们用与教师模型相同的参数初始化学生模型,并使用从1到8随机抽样的引导尺度进行训练。我们通过实验发现,文本引导蒸馏近似地带来了1.9倍的加速。
高效和可扩展的培训
硬件基础设施
为了实现可扩展性和高效训练,我们在 AngelPTM [62] 上训练 HunyuanVideo,这是腾讯AngelPTM [62] 的大规模预训练框架。在这一部分中,我们首先概述了用于训练的硬件和基础设施,然后详细介绍了模型并行方法及其优化方法,然后是自动容错机制
并行策略
HunyuanVideo 训练采用 5D 并行策略,包括张量并行 (TP) [74]、序列并行 (SP) [45]、上下文并行 (CP) [63] 和数据并行以及零优化 (DP + ZeroCache [62])。张量并行性 (TP) 基于矩阵块计算原理。模型参数(张量)分为不同的 GPU,以减少 GPU 内存使用量并加速计算。每个 GPU 负责计算层中张量的不同部分。
序列并行性 (SP) 基于 TP。对输入序列维数进行切片,减少LayerNorm和Dropout等算子的重复计算,减少相同激活的存储,有效地减少了计算资源和GPU内存的浪费。此外,对于不满足 SP 要求的输入数据,支持工程等效 SP 填充能力。
上下文并行 (CP) 在序列维度上切片以支持长序列训练。每个 GPU 负责计算不同序列切片的注意力。具体来说,RingAttention [30] 用于通过多个 GPU 实现长序列的有效训练,突破单个 GPU 的 GPU 内存限制。
此外,利用数据并行性 + ZeroCache 通过数据并行性支持水平扩展,以满足增加训练数据集的需求。然后,基于数据并行性,使用ZeroCache优化策略进一步降低模型状态(模型参数、梯度和优化器状态)的冗余,并统一GPU内存的使用,以最大限度地提高GPU内存使用效率。
优化
注意力优化。随着序列长度的增加,注意力计算成为训练的主要瓶颈。我们使用 FusedAttention 加速了注意力计算。
重新计算和激活卸载优化。重新计算是一种将计算用于存储的技术。它主要由三部分组成:a) 指定某些层或块以进行重新计算,b) 在前向计算中释放激活,c) 通过在后向计算中重新计算来获得依赖激活,这显着减少了训练期间 GPU 内存的使用。此外,考虑到PCIe带宽和主机内存大小,采用了基于层的激活卸载策略。在不降低训练性能的情况下,GPU内存中的激活被卸载到主机内存中,进一步节省了GPU内存
自动容错
在HunyuanVideo的大规模训练稳定性方面,采用自动容错机制快速恢复常见硬件故障的训练。这避免了手动恢复训练任务的频繁出现。通过自动检测错误并快速替换健康节点拉起训练任务,训练稳定性为99.5%
基础模型性能
可视结果可以参考论文
我们总共使用了 1,533 个文本提示,在一次运行中生成具有 HunyuanVideo 的相同数量的视频样本,60名专业评价者进行评估,结果如表3所示。
应用
音频生成
我们的视频到音频(V2A)模块旨在通过结合同步的声音效果和上下文适当的背景音乐来增强生成的视频内容。在传统的薄膜生产管道中,Foley 声音设计构成了一个不可或缺的组成部分,显着促进了视觉介质的听觉现实主义和情感深度。然而,Foley 音频的创建既费时又需要大量的专业专业知识。随着越来越多的文本到视频 (T2V) 模型的出现,它们中的大多数缺乏相应的 foley 生成能力,从而限制了它们产生完全沉浸式内容的能力。我们的 V2A 模块通过自主生成针对输入视频和文本提示量身定制的电影级 foley 音频来解决这一关键差距,从而能够合成具有凝聚力和整体吸引力的多媒体体验。
数据
与文本到视频 (T2V) 模型不同,视频到音频 (V2A) 模型对数据有不同的要求。如上所述,我们构建了一个由视频-文本对组成的视频数据集。然而,并非该数据集中的所有数据都适合训练 V2A 模型。例如,一些视频缺乏音频流,其他视频包含大量语音覆盖内容或其环境音频轨迹已被删除并替换为不相关的元素。为了应对这些挑战并确保数据质量,我们设计了一个专门为 V2A 训练量身定制的稳健数据过滤管道。首先,我们过滤掉没有音频流的视频或静音率超过 80% 的视频。接下来,我们使用像[38]这样的帧级音频检测模型来检测语音、音乐和一般声音在音频流中。基于该分析,我们将数据分为四类:纯声音、带有语音的声音、带有音乐的声音和纯音乐。随后,为了优先考虑高质量的数据,我们训练了一个受 CAVP [54] 启发的模型来计算视觉-音频一致性分数,该分数量化了每个视频的视觉和听觉组件之间的对齐 。使用这个评分系统结合音频类别标签,我们系统地从每个类别中抽取部分数据,从原始数据集中保留大约 250,000 小时进行预训练 。对于有监督的微调阶段,我们进一步改进了我们的选择,策划了数百万个高质量剪辑的子集(80,000 小时)。对于特征提取,我们使用 CLIP [70] 以 4 fps 的时间分辨率获得视觉特征,然后重新采样这些特征以与音频帧速率对齐。为了生成字幕,我们使用 [29] 作为声音字幕模型,[20] 作为音乐字幕模型。当声音和音乐字幕都可用时,我们按照 [67] 中详述的方法将它们合并为一个结构化的字幕格式。
模型
就像上面提到的文本到视频模型一样,我们的视频到音频生成模型也采用了基于流的扩散转换器(DiT)作为其架构主干 。该模型的详细设计如图 18 所示,说明了从三流结构到单流 DiT 框架的转换。该模型运行在由在梅尔谱图上训练的变分自动编码器 (VAE) 编码的潜在空间中。
具体来说,首先将音频波形转换为二维梅尔谱图表示。该频谱图随后使用预训练的 VAE 编码到潜在空间中 。对于特征提取,我们利用预训练的CLIP[70]和T5[71]编码器分别独立提取视觉和文本特征。这些特征随后使用独立的线性投影和 SwiGLU 激活投影到 DiT 兼容的潜在空间中,如图 18 所示。为了有效地整合多模态信息,我们结合了堆叠的三流变换器块,它们独立处理视觉、音频和文本模态。这些后面跟着单流变压器块,以确保跨模式的无缝融合和对齐 。这种设计增强了音频视频和音频文本表示之间的对齐,促进了改进的多模态一致性。一旦扩散转换器生成潜在表示,VAE 解码器就会重建相应的梅尔谱图 。**最后,使用预先训练的HifiGAN声码器[44]将梅尔谱图转换回音频波形。**该框架确保了音频信号的高保真重建,同时保持强大的多模态对齐。
Image to video
预训练
Image-to-video (I2V) 任务是视频生成任务中常用的应用 。通常意味着给定图像和标题,该模型使用该图像作为第一帧来生成与标题匹配的视频。
虽然朴素的 HunyuanVideo 是一个文本到视频 (T2V) 模型,但它可以很容易地扩展到 I2V 模型。具体来说,如第4.2节所述,T2V模型的输入是一个形状为T × C × H × W的潜在X,其中T、C、H和W分别表示压缩视频的帧、通道、高度和宽度。
下游任务微调:肖像图像到图像到视频生成
我们在200万个肖像视频上对I2V模型进行有监督的微调 ,以增强人的运动和整体美学。除了第 3 节中描述的标准数据过滤管道外,我们还应用人脸和身体检测器过滤掉五个以上人的训练视频 。我们还删除了主要主题较小的视频。
最后,将手动检查其余视频以获得最终的高质量肖像训练数据集。对于训练,我们采用渐进式微调策略,逐步解冻各个层的模型参数,同时保持其余层在微调期间冻结。这种方法允许模型在不影响其大部分固有泛化能力的情况下在肖像领域实现高性能,保证自然景观、动物和植物领域的可喜性能。此外,我们的模型还支持通过使用第一帧和最后一帧作为条件的视频插值。我们在训练过程中以一定的概率随机丢弃文本条件,以提高模型的性能。一些演示结果如图21所示。
Avatar Animation
HunyuanVideo 以各种方式支持可控的化身动画。它能够使用显式驱动信号(例如语音信号、表达式模板和姿势模板)对字符进行动画处理。此外,它还使用文本提示集成了隐式驾驶范式。图 22 显示了如何利用 HunyuanVideo 的力量从多模态条件下动画字符。为了保持严格的外观一致性,我们通过将参考图像的潜在插入强指导来修改 HunyuanVideo 架构。如图 22 (b, c) 所示,我们使用 3DVAE obaining z r e f ∈ R 1 × c × h × w z_{ref} ∈ R^{1×c×h×w} zref∈R1×c×h×w 对参考图像进行编码,其中 c = 16。然后我们沿时间维度重复 t 次并与通道维度中的 zt 连接以获得修改后的噪声输入 z ^ t ∈ R t × 2 c × h × w \hat z_t ∈ R^{t×2c×h×w} z^t∈Rt×2c×h×w。为了实现可控的动画,采用了各种适配器。我们在下面描述它们。
Upper-Body Talking Avatar Generation
近年来,音频驱动的数字人类算法取得了重大进展,尤其是在说话头的性能上。早期的算法,如循环[94]、emo[80]和hallo[87]主要集中在头部区域,通过分析音频信号驱动数字人的面部表情和嘴唇形状。即使是早期的算法,如wav2lip[68]和DINet[97],专注于修改输入视频中的嘴部区域,以实现与音频的唇形一致性。然而,这些算法通常仅限于头部区域,而忽略了身体的其他部分。为了实现更自然和生动的数字人类表现,我们提出了一种扩展到上半身的音频驱动算法。在该算法中,数字人类不仅在说话的同时将面部表情和嘴唇形状与音频同步,而且还会与音频有节奏地移动身体。
音频驱动 基于输入音频信号,我们的模型可以自适应地预测数字人的面部表情和姿势动作信息。这允许驱动字符与情感和表达说话,增强数字人类的表达能力和真实性。如图22 (b)所示,对于单个音频信号驱动部分,音频通过耳特征提取模块获得音频特征,然后以交叉注意的方式注入到主网络中。需要注意的是,注入过程将乘以人脸掩码来控制音频的效果区域。在增强头部和肩部控制能力的同时,也会大大降低身体变形的概率。为了获得更实时的头部运动,引入头部姿势运动参数和表情运动参数,并以嵌入的方式添加到时间步长。在训练过程中,头部运动参数由鼻尖关键点序列的方差给出,表情参数由面部关键点的方差给出。
完全控制的全身化身生成
明确地控制数字角色的运动和表达一直是学术界和工业界长期存在的问题,扩散模型的最新进展为现实的化身动画迈出了第一步。然而,由于基础视频生成模型的能力有限,当前的化身动画解决方案存在部分可控性。我们证明了更强的 T2V 模型将化身视频生成提升到完全可控的阶段。我们在图 22 © 中展示了 HunyuanVideo 如何作为对一般 T2V 模型扩展到完全可控的化身生成模型的有限修改的强大基础。姿势驱动我们可以使用姿势模板明确地控制数字角色的身体运动。我们使用Dwpose[92]从任何源视频中检测骨骼视频,并使用3DVAE将其转换为潜在空间作为zpose 。我们认为这简化了微调过程,因为输入和驾驶视频都在图像表示中,并使用共享的 VAE 进行编码,从而产生相同的潜在空间。然后,我们通过元素添加为 z ^ t + z p o s e \hat z_t + z_{pose} z^t+zpose 将驱动信号注入到模型中。请注意,$\hat z_t $ 包含参考图像的外观信息。我们使用使用预训练的 T2V 权重进行微调作为初始化。
表情驱动 :我们还可以使用隐式表情表示来控制数字字符的面部表情。虽然人脸地标在这一领域被广泛采用[58,16],但我们认为,由于交叉id错位,使用地标会带来ID泄漏 。相反,我们使用隐式表示作为驱动信号,用于它们的 ID 和表达式解缠结能力 。在这项工作中,我们使用 VASA[88] 作为表达式提取器。
如图 22 © 所示,我们采用轻量级表达式编码器将表达式表示转换为潜在空间中的标记序列 aszexp ∈ Rt×n×c,其中 n 是每帧的标记数。通常,我们设置 n = 16。与姿势条件不同,我们使用交叉注意注入 zexp,因为 z ^ t \hat z_t z^t 和 z e x p z_exp zexp 在空间方面不是自然对齐的。我们在每个 K 个双流和单流 DiT 层添加交叉注意力层 Attnexp(q, k, v),以注入表达潜在。表示第 i 个 DiT 层之后的隐藏状态表示为 hi,表情 z e x p z_exp zexp 向 hi 注入可以推导出为: h i + A t t n e x p ( h i , z e x p , z e x p ) ∗ M f a c e h_i + Attnexp(hi, zexp, zexp) ∗ M_face hi+Attnexp(hi,zexp,zexp)∗Mface,其中 M f a c e M_face Mface 是引导应应用 z e x p z_{exp} zexp 的面部区域掩码,* 表示逐元素乘法。此外,还采用了全参数调整策略。
混合条件驱动: 结合姿势和表情驱动策略的混合条件驱动推导出混合控制方法。在这种情况下,身体运动由显式骨骼姿势序列控制,面部表情由隐式表情表示决定。我们联合微调 T2V 模块并以端到端的方式添加模块。在推理过程中,身体运动和面部动作可以通过单独的驱动信号来控制,从而实现更丰富的可编辑性。
Demo
好吧,驱动任务刷了一遍
相关工作
由于扩散模型在图像生成领域的成功[72,34],视频生成领域的探索[28,40,75,84,91,96,58,12,90,57]也变得流行。VDM[32]是最早将2D U-Net从图像扩散模型扩展到3D U-Net以实现基于文本的生成的人之一。后来的作品,如MagicVideo[103]和Mindscope[82],引入了一维时间注意机制,通过建立在潜在扩散模型的基础上来减少计算。在本报告中,我们不使用 2D + 1D 时间块方式进行运动学习。相反,我们使用与 FLUX [47] 中类似的双流注意块,用于处理所有视频帧。在Imagen之后,Imagen Video[33]采用级联采样管道,通过多个阶段生成视频。除了传统的端到端文本到视频(T2V)生成外,使用其他条件进行视频生成也是一个重要方向。这类方法生成具有其他辅助控制的视频,如深度图[27,31]、姿势图[89,37,83,56]、RGB图像[5,15,61]或其他引导运动视频[10,86]。尽管最近开源模型的性能非常好,如稳定视频扩散[5]、Open-sora[10]、Open-sora-plan[46]、Mochi-1[79]和Allegro[104],但它们的性能仍然远远落后于Sora[7]和MovieGen[67]等封闭源最先进的视频生成模型。