【视频生成模型】——Hunyuan-video 论文及代码讲解和实操

🔮混元文生视频官网 | 🌟Github代码仓库 | 🎬 Demo 体验 | 📝技术报告 | 😍Hugging Face

文章目录

论文详解

基础介绍

HunyuanVideo 是一款全新的开源视频生成基础模型,其生成性能可与业内顶尖的闭源模型媲美。拥有超过 130 亿个参数,是当前规模最大的开源视频生成模型
该模型集成了数据精选(data curation)、高级架构设计(architecture design)、渐进式模型扩展与训练(progressive model scaling and training),以及高效的基础设施 (efficient infrastructure),以支持大规模模型训练与推理。
HunyuanVideo 在视频生成的四个关键方面表现出色:视觉质量运动动态视频-文本对齐语义场景切换
专业评测显示,HunyuanVideo 的表现优于 Runway Gen-3、Luma 1.6 以及其他三款顶尖的中文视频生成模型。
通过开源模型代码和应用,HunyuanVideo 致力于缩小开源与闭源社区之间的性能差距,推动更具活力和创新的视频生成生态体系。

数据预处理 (Data Pre-processing)

HunyuanVideo 采用了图像-视频联合训练策略,将训练数据精细划分为不同类别,以满足各自的训练需求。视频数据被划分为五个不同组别,图像数据则被划分为两个组别,以确保在训练过程中充分发挥数据的特性和优势。本节将重点介绍视频数据的精细化筛选和准备过程。

原始数据池涵盖多个领域,包括人物动物植物风景交通工具物体建筑动画等多种类别的视频。所有视频采集均设定了基本的阈值要求,如视频的最小时长等。此外,还针对部分数据设定了更高的筛选标准,包括空间分辨率特定宽高比构图色彩曝光等专业要求,确保数据在技术质量和美学品质上均达标。

数据过滤 (Data Filtering)

HunyuanVideo:分层数据筛选与高质量训练数据构建

(1) 数据采集与预处理
针对质量参差不齐的原始数据,采用一系列预处理技术:

  1. 使用 PySceneDetect 将视频分割为单镜头片段。
  2. 利用 OpenCV 的拉普拉斯算子提取清晰帧作为视频片段的起始帧。
  3. 通过内部 VideoCLIP 模型计算视频嵌入向量,用于去重(基于余弦距离)和 k-means 聚类(生成约 1 万个概念中心)。

(2) 分层数据筛选管道
构建了一个分层数据筛选管道,通过多维度的筛选技术来提升数据质量,包括:

  • 使用 Dover 评估视频片段的美学和技术质量。
  • 通过自研模型检测清晰度,剔除模糊视频。
  • 预测视频的运动速度,过滤掉静态或低速运动视频(基于光流估计)。
  • 使用 PySceneDetectTransNet v2 获取场景边界信息。
  • 利用内部 OCR 模型 移除带有过多文本或字幕的片段。
  • 采用类似 YOLOX 的视觉模型检测并去除水印、边框和标志等遮挡或敏感信息。

通过小规模模型实验验证筛选器的有效性,并据此逐步优化数据筛选管道。

(3) 视频与图像训练数据构建
通过分层数据筛选,为不同训练阶段构建了五个视频训练数据集,视频分辨率从 256 × 256 × 65 逐步提升到 720 × 1280 × 129,并根据训练阶段动态调整筛选阈值。

在最终微调阶段,构建了一个包含约 100 万个样本高质量微调数据集。该数据集通过人工标注,确保视频在以下两个维度表现优异:

  1. 视觉美学(色彩和谐、光照、主体强调、空间布局)
  2. 动态内容(运动速度、动作完整性、运动模糊程度)

此外,为图像数据建立了类似的分层筛选管道,排除了与运动相关的筛选器,构建了两个图像训练数据集:

  1. 初始训练数据集:数十亿样本,用于第一阶段文本到图像预训练。
  2. 优化训练数据集:数亿样本,用于第二阶段文本到图像预训练。

通过分层数据筛选管道精细化微调数据集的构建,HunyuanVideo 确保了在视觉质量、动态细节、文本对齐和语义场景切割等方面的卓越表现,为开源视频生成模型树立了新的标杆。

在这里插入图片描述

上图展示了分层数据过滤管道。采用各种过滤器进行数据过滤,并逐步增加其阈值以构建4个训练数据集,即,256p,360p,540p和720p,而最终的SFT数据集是通过手动注释构建的。此图突出显示了在每个阶段使用的一些最重要的过滤器。每个阶段都会删除很大一部分数据,从上一阶段数据的一半到五分之一不等。这里,灰色条表示每个过滤器过滤出的数据量,而彩色条表示每个阶段的剩余数据量。

数据标注 (Data Annotation)

(1) 结构化标注技术(Structured Captioning
为了提升生成模型的提示响应能力和输出质量,开发了内部视觉语言模型(VLM),为所有图像和视频生成结构化标注。这些标注采用 JSON 格式,从多维度提供全面的描述信息,包括:

  • 短描述(Short Description):概述场景的主要内容。
  • 密集描述(Dense Description):详细描述场景内容,包括与视觉内容结合的场景转换和相机运动。
  • 背景(Background):描述主体所处的环境。
  • 风格(Style):如纪录片、电影感、现实主义、科幻等。
  • 镜头类型(Shot Type):如航拍、特写、中景、长景等。
  • 光照(Lighting):描述视频的光照条件。
  • 氛围(Atmosphere):如温馨、紧张、神秘等。
    此外,在 JSON 结构中加入了元数据标签(如来源标签、质量标签等),以增强信息的全面性。

为生成多样化的标注,引入了随机丢弃机制排列组合策略,合成不同长度和模式的描述,提升生成模型的泛化能力并防止过拟合。

(2) 相机运动类型标注(Camera Movement Types)
训练了一个相机运动分类器,能够预测 14 种相机运动类型,包括:

变焦:放大、缩小
平移:上移、下移、左移、右移
俯仰:上仰、下俯、左倾、右倾
绕拍:绕左、绕右
静态镜头
手持镜头
高置信度的相机运动预测结果被集成到 JSON 格式的结构化标注中,从而赋予生成模型对相机运动的控制能力。

模型结构设计(Model Architecture Design)

3DVAE (3D Variational Auto-encoder Design)

3DVAE压缩与视频图像编码

训练了一个3DVAE模型,将像素空间的视频和图像压缩到紧凑的潜在空间。为了同时处理视频和图像,采用的事CausalConv3D

对于一个形状为 ( T + 1 ) × 3 × H × W (T + 1) \times 3 \times H \times W (T+1)×3×H×W的视频, 3DVAE 将其压缩为形状为 ( T c t + 1 ) × C × ( H c s ) × ( W c s ) (\frac{T}{c_t} + 1) \times C \times (\frac{H}{c_s}) \times (\frac{W}{c_s}) (ctT+1)×C×(csH)×(csW)的潜在特征。在实现中,设定 c t = 4 c_t = 4 ct=4, c s = 8 c_s = 8 cs=8, C = 16 C = 16 C=16

T + 1 T+1 T+1的原因是,对视频的第一帧进行单独的编码,作为后续帧的参考帧。

这种压缩方法显著减少了后续扩散变换器模型所需的令牌数量,使其能够以原始分辨率和帧率训练视频,同时保持较高的效率和质量。模型结构如下图所示。
在这里插入图片描述
(1) 训练阶段

训练与损失函数
与以往的大多数研究 不同,并未依赖预训练的图像VAE进行参数初始化,而是从零开始训练模型。为了平衡视频和图像的重建质量,我们按照4:1的比例混合了视频数据和图像数据。
在使用常规的 L 1 L_1 L1重建损失和 KL 损失 L k l L_{kl} Lkl 的基础上,我们还引入了感知损失 L l p i p s L_{lpips} Llpips和对抗损失 L a d v L_{adv} Ladv,以增强重建质量。完整的损失函数如下所示:
Loss = L 1 + 0.1 L l p i p s + 0.05 L a d v + 1 0 − 6 L k l \text{Loss} = L_1 + 0.1L_{lpips} + 0.05L_{adv} + 10^{-6}L_{kl} Loss=L1+0.1Llpips+0.05Ladv+106Lkl

训练策略
在训练过程中,我们采用了课程学习策略,逐步从低分辨率短视频训练到高分辨率长视频。为了改善高运动视频的重建效果,我们在采样帧时随机选择了 1 至 8 范围内的采样间隔,确保从视频剪辑中均匀地抽取帧。

(2) 推理阶段
高分辨率长视频的编码与解码
在单块GPU上编码和解码高分辨率长视频可能会导致显存不足 (OOM) 错误。为了解决这一问题,采用了一种时空切片策略,将输入视频在空间和时间维度上划分为重叠的切片。每个切片单独编码/解码,最终再将输出拼接在一起。对于重叠区域,我们使用线性组合进行平滑融合。这一切片策略使我们能够在单块GPU上处理任意分辨率和时长的视频。

训练与推理的一致性
直接在推理时使用切片策略可能会由于训练和推理的不一致性而导致明显的伪影问题。为了解决这一问题,我们引入了额外的微调阶段,在此阶段随机启用/禁用切片策略进行训练。这种方法确保模型在使用或不使用切片策略时都能够保持训练和推理的一致性。

性能对比
在下表中,将所提出的VAE与开源的最先进VAE进行了比较。在视频数据上,Hunyuan的VAE在PSNR指标上显著优于其他视频VAE。在图像数据上,其性能也超越了视频VAE和图像VAE。
在这里插入图片描述

下图展示了多个在256 × 256分辨率下的例子,显示Hunyuan提出的VAE在处理文本、人脸和复杂纹理方面具有显著优势。
在这里插入图片描述

统一图像视频生成架构 (Unified Image and Video Generative Architecture)

HunyuanVideo 中的 Transformer 设计,其采用了统一的全注意力机制 (Full Attention),并基于以下三大理由:

  1. 性能优越:全注意力机制相较于分离的时空注意力方法, 展现了更卓越的性能。
  2. 统一生成:该机制支持图像和视频的统一生成,简化了训练过程,并提升了模型的可扩展性。
  3. 高效加速:全注意力机制能够更有效地利用现有的大型语言模型(LLM)相关的加速能力,进一步增强训练和推理效率。

模型的具体结构如下:
在这里插入图片描述

(1)输入设计

对于给定的视频-文本对,模型在3D潜在空间中运行。具体地:

  1. 视频分支 (对应上图的橙色小方块)

    • 输入首先被压缩为形状为 T × C × H × W T \times C \times H \times W T×C×H×W 的潜在表示。
    • 为统一输入处理,模型将图像视为单帧视频。
    • 这些潜在表示通过一个 3D 卷积(核大小为 k t × k h × k w k_t \times k_h \times k_w kt×kh×kw)被划分为补丁并展开为 1D 序列,令序列长度为 T k t ⋅ H k h ⋅ W k w \frac{T}{k_t} \cdot \frac{H}{k_h} \cdot \frac{W}{k_w} ktTkhHkwW
  2. 文本分支 (对应上图的绿色小方块)

    • 首先使用一个先进的LLM模型将文本编码为嵌入序列,以捕获细粒度的语义信息。
    • 同时利用 CLIP 模型提取一个包含全局信息的池化文本表示。

随后,这个文本表示会通过扩展维度后与时间步嵌入相加,再输入模型。

(2)模型设计

为了有效融合文本和视觉信息,模型采用“双流到单流”的混合设计策略,专注于视频生成任务:

  1. 双流阶段

    • 视频和文本的 token 通过多个 Transformer 块分别独立处理。
    • 这种独立处理方式使得每种模态能够学习其专属的调制机制,避免互相干扰。
  2. 单流阶段

    • 将视频和文本的 token 进行拼接,并输入后续的 Transformer 块。
    • 通过这种方式,实现对多模态信息的高效融合,捕获视觉信息和语义信息之间的复杂交互。

这一设计显著增强了模型对多模态信息的理解能力,从而提升了整体性能。

(3) 位置嵌入

为了支持多分辨率、多宽高比以及不同时长的生成任务,模型在每个 Transformer 块中使用了 旋转位置嵌入(Rotary Position Embedding, RoPE)。以下是关键设计点:

  1. RoPE的基本优势

    • RoPE通过对嵌入应用旋转频率矩阵,增强了模型捕获绝对位置相对位置关系的能力。
    • 在大型语言模型(LLM)中,RoPE表现出一定的外推能力。
  2. 扩展至视频的三维嵌入

    • 由于视频数据中增加了时间维度的复杂性,RoPE被扩展到三维空间:时间 (T)、高度 (H)、宽度 (W)。
    • 对于每个维度分别计算旋转频率矩阵,进一步提升时空建模能力。
  3. 具体实现

    • 将查询 (query) 和键 (key) 的特征通道划分为三个段: d t , d h , d w d_t, d_h, d_w dt,dh,dw
    • 每个段分别与对应维度(时间、高度、宽度)的旋转频率矩阵相乘。
    • 最后,将这些处理后的段进行拼接,生成包含位置信息的查询和键嵌入。
  4. 效果

    • 该位置感知的查询和键嵌入在注意力计算中发挥作用,使模型能更好地捕获三维空间中的复杂时空关系。

此设计显著提升了模型对视频生成中不同分辨率、宽高比和时长变化的适应能力。

模型的具体超参数设置如下表
在这里插入图片描述

文本编码器(Text Encoder)

在文本生成图像和视频的任务中,文本编码器通过提供潜在空间中的指导信息起到关键作用。以下是 HunyuanVideo 模型在文本编码方面的创新设计:

(1) 采用多模态大型语言模型(MLLM)作为文本编码器
与传统方法相比,HunyuanVideo 采用了一种基于 Decoder-Only 架构的预训练多模态大型语言模型 (MLLM) 作为文本编码器。这种选择具有以下优势:

  • 与 T5 的对比

    • T5 使用的是 Encoder-Decoder 结构,而经过视觉指令微调的 MLLM 在特征空间中的图文对齐能力更强,能够降低扩散模型中指令跟随的难度。
  • 与 CLIP 的对比

    • CLIP 使用 Transformer Encoder 架构,MLLM 在图像细节描述复杂推理方面表现更优。
  • 零样本学习能力

    • MLLM 可通过在用户提示语前添加系统指令,作为一个零样本学习者,帮助文本特征更关注关键信息。

在这里插入图片描述
(2)双向注意力增强
虽然 MLLM 使用基于因果注意力的 Decoder-Only 结构,而 T5-XXL 使用的是双向注意力,这使 T5 能为扩散模型提供更好的文本指导。因此:

  • HunyuanVideo 引入了双向 Token 精炼器 (bidirectional token refiner),用于增强文本特征,结合了因果注意力和双向注意力的优点。

(3)灵活配置的多种 MLLMs
根据不同任务需求,HunyuanVideo 配置了一系列 MLLMs,在各种设置下均表现出比传统文本编码器更优的性能。

(4)CLIP 特征的全局指导作用
尽管 MLLM 是主要的文本编码器,CLIP 文本特征作为文本信息的摘要也很有价值:

  • 全局指导:HunyuanVideo 采用 CLIP-Large 文本特征的最终非填充 token 作为全局指导信息,集成到双流和单流的 DiT(Diffusion Transformer)块中。

综上,HunyuanVideo 通过结合 MLLM 和 CLIP 的特性,在文本指导和生成任务中实现了更高的对齐能力、更细致的图像生成和更强的多模态推理能力。

模型缩放(Model Scaling)

Neural Scaling Laws为理解和优化机器学习模型的性能提供了一种强有力的工具。通过揭示模型大小 ( N N N)、数据集大小 ( D D D) 和计算资源 ( C C C) 之间的关系,这些规律推动了更高效和更强大模型的开发,从而提升了大规模模型训练的成功率。以下是其在 HunyuanVideo 的应用:

(1) 传统扩展规律的局限性
尽管此前已有关于大语言模型和图像生成模型的扩展规律研究,视频生成模型通常依赖于预训练的图像模型。这种依赖性为视频生成任务引入了独特的挑战,因为视频数据比静态图像具有更高的维度和复杂性。

(2) 基础扩展规律的建立
为了克服上述挑战,研究的第一步是针对文本到图像生成模型建立基础扩展规律:

  • 确定文本到图像任务中的模型大小、数据集大小和计算需求之间的关系。
  • 这一基础规律为视频生成模型的扩展提供了参考框架。

(3) 从文本到图像到文本到视频的扩展
在文本到图像扩展规律的基础上,进一步推导了适用于文本到视频模型的扩展规律:

  • 考虑到时间维度的复杂性,结合了视频生成所需的额外资源和模型调整。
  • 推导结果为视频生成任务提供了数据集规模、模型容量和计算资源的最优配置方案。

(4) 两种扩展规律的集成
通过将文本到图像和文本到视频的扩展规律相结合,研究团队能够系统性地确定:

  • 模型的设计与规模:视频生成任务的最佳模型架构和大小。
  • 数据和资源的配置:数据集规模与计算资源的平衡,最大限度提高生成性能。

总结
HunyuanVideo 的研究以神经扩展规律为指导,系统地设计了文本到视频生成模型的配置方案。通过整合图像生成和视频生成的扩展规律,不仅优化了模型的训练效率,还推动了视频生成任务性能的显著提升。


扩展规律在视觉生成模型中的应用
1. 研究背景
Kaplan 等人和 Hoffmann 等人 研究了语言模型的经验扩展规律,尤其是交叉熵损失与模型规模的关系。在视觉生成领域:

  • Li 等人研究了基于扩散的生成模型(如 UNet)的扩展性质。
  • 基于 Transformer 的方法(如 DiT, U-ViT, Lumina-T2X, SD3)则关注采样质量与网络复杂性的关系,但未探索计算资源与均方误差(MSE)损失的幂律关系。

2. DiT-T2X 模型家族
为填补这一研究空白,作者开发了一个 DiT-like 模型家族,命名为 DiT-T2X

  • 模型特点
    • T5-XXL作为文本编码器。
    • 前述 3D VAE 作为图像编码器。
    • 文本信息通过交叉注意力层注入模型。
  • 模型规模
    • 包括 7 种规模,从 92M 到 6.6B 参数不等。
  • 训练设置
    • 使用 DDPM 和 v-prediction训练。
    • 数据集为分辨率 256px 的一致数据集,保持一致的超参数设置。

3. 实验方法与扩展规律
作者借鉴 Hoffmann 等人的实验方法,构建了神经扩展规律:

  • 公式定义
    N opt = a 1 C b 1 , D opt = a 2 C b 2 N_{\text{opt}} = a_1 C^{b_1}, \quad D_{\text{opt}} = a_2 C^{b_2} Nopt=a1Cb1,Dopt=a2Cb2
    • N opt N_{\text{opt}} Nopt:最优模型规模。
    • D opt D_{\text{opt}} Dopt:最优数据集大小。
    • C C C:计算资源(以 Peta FLOPs 为单位)。
    • 参数 a 1 , a 2 , b 1 , b 2 a_1, a_2, b_1, b_2 a1,a2,b1,b2 从实验中拟合得到。
  • 实验结果
    • a 1 = 5.48 × 1 0 − 4 , b 1 = 0.5634 a_1 = 5.48 \times 10^{-4}, b_1 = 0.5634 a1=5.48×104,b1=0.5634
    • a 2 = 0.324 , b 2 = 0.4325 a_2 = 0.324, b_2 = 0.4325 a2=0.324,b2=0.4325
    • 表明模型规模和数据规模与计算资源之间遵循幂律关系。

4. 模型优化

  • 在不同计算预算下,通过扩展规律计算出模型和数据集的最优配置。
  • 下图显示了不同规模模型的损失曲线,证明 DiT-T2X(I)家族符合幂律关系。
    在这里插入图片描述

DiT-T2X 家族的研究填补了扩散模型在计算资源与 MSE 损失扩展规律方面的空白。通过建立神经扩展规律,作者系统地优化了文本到图像/视频生成任务的模型和数据配置,推动了视觉生成领域的进一步发展。


视频模型扩展规律(Video Model Scaling Law)

1. 基于图像扩展规律的初始化

  • 本研究以 T2X(I) 模型的扩展规律为基础,选择每个规模模型对应的最优图像检查点(即损失曲线包络线上的模型)作为视频扩展规律实验的初始化模型。
  • 通过这种方式,T2X(V) 模型的训练能够充分利用图像模型的性能优势。

2. 视频扩展规律结果

  • 实验结果
    • 如上图(d,e,f)展示了 T2X(V) 模型的扩展规律,拟合得到以下参数:
      • a 1 = 0.0189 , b 1 = 0.3618 a_1 = 0.0189, b_1 = 0.3618 a1=0.0189,b1=0.3618
      • a 2 = 0.0108 , b 2 = 0.6289 a_2 = 0.0108, b_2 = 0.6289 a2=0.0108,b2=0.6289
    • 模型规模 N opt N_{\text{opt}} Nopt和数据规模 D opt D_{\text{opt}} Dopt 与计算资源 C C C的幂律关系:
      N opt = a 1 C b 1 , D opt = a 2 C b 2 N_{\text{opt}} = a_1 C^{b_1}, \quad D_{\text{opt}} = a_2 C^{b_2} Nopt=a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zyw2002

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值