GitHub:https://github.com/BadToBest/EchoMimic
论文: https://arxiv.org/pdf/2407.08136
comfyui: https://github.com/smthemex/ComfyUI_EchoMimic
相关工作
Wav2Lip
Wav2Lip是一个开创性的工作 ,但输出会出现面部模糊或扭曲的牙齿结构等伪影。
SadTalker
从音频生成 3D Morphable 模型的 3D 运动系数(头部姿势、表情),并隐式调制 3D 感知人脸渲染以生成说话头。为了学习真实的运动系数,SadTalker 明确地模拟了音频和不同类型运动系数之间的联系。然后将生成的3D运动系数映射到所提出的人脸渲染的无监督3D关键点空间,合成最终的视频。
AniPortrait
AniPortrait表示该领域的另一个显着步幅,在将音频信号映射到 2D 面部地标之前,熟练地将音频信号转换为详细的 3D 面部结构。随后的扩散模型,加上运动模块,将这些地标渲染成时间连贯的视频序列,丰富自然情绪的描绘,并实现细微的面部运动改变和重演。
V-Express
V-Express扩展视听对齐的范围,采用分层结构,将音频与嘴唇运动、面部表情和头部姿势的细微动态进行细致同步。它复杂的面部损失函数进一步细化模型对细微情感细微差别的敏感性和面部特征的整体审美吸引力。
Hallo
Hallo [23] 为肖像图像动画提供了一种分层音频驱动的视觉合成方法,解决了嘴唇同步、表情和姿势对齐的复杂性。通过将基于扩散的生成模型与UNet降噪器和交叉注意机制相结合,实现了对表情多样性和姿态变化的增强控制,证明了视频质量、唇形同步精度和运动多样性的改进。
然而,尽管基于图像的方法取得了相当大的进步,但仍有一些挑战。这些方法通常分别对音频或姿势输入进行条件合成,很少同时集成两者。此外,评估协议往往严重依赖图像级指标,如Fŕechet Inception Distance (FID)和Expression Fŕechet Inception Distance (E-FID),可能忽略了面部结构和动力学的关键方面。解决这些复杂性对于提高“说话头”动画的真实性和保真度至关重要,为更身临其境和类似生活的多媒体体验铺平了道路。
方法
网络结构
Echomimic的基础成分是Denoising UNet,为了网络吸收多样化输入的能力,Echomimic集成了三个模块:Reference UNet用于编码参考图片;Landmark Encoder用于使用脸部关键点引导网络;Audio Encoder用于编码声音输入。
Denoising UNet
去噪 U-Net 旨在增强在不同条件下由噪声破坏的多帧潜在表示,从完善的 SDv1.5 架构中汲取灵感,并在每个 Transformer 中加入三个不同的注意力层.最初的参考注意层促进了对当前帧和参考图像之间关系的熟练编码,而第二个音频注意层捕获视觉和音频内容之间的交互,在空间维度上运行。此外,Temporal-Attention 层部署了一种时间自注意力机制来破译连续视频帧之间的复杂时间动态和关系。这些增强对于跨网络的空间和时间关系的细微理解和集成至关重要.
Reference U-Net
参考图像对于在 EchoMimic 框架内保持面部身份和背景一致性至关重要。为了促进这一点,我们引入了专门的模块 Reference U-Net,它反映了 SDv1.5 的架构设计,并与去噪 U-Net 并行运行。在参考 U-Net 的每个 Transformer 块中,自注意力机制用于提取参考图像特征,随后用作去噪 U-Net 中相应 Transformer 块参考注意力层中的键和值输入。参考 U-Net 的唯一函数是对参考图像进行编码,确保没有引入噪声,并且扩散过程中只执行单独的前向传递。此外,为了防止引入无关信息,将空文本占位符输入 ReferenceNet 的交叉注意力层。这种细致的设计确保了参考图像的本质在生成过程中的准确捕获和无缝集成,促进了高保真输出的创建。
Audio Encoder
合成人物的动画主要是由语音中发音和音调的细微差别驱动的。我们通过使用预训练的 Wav2Vec 模型 [17] 的各种处理块连接从输入音频序列中提取的特征来导出相应帧的音频表示嵌入。字符的运动可能会受到未来和过去的音频片段的影响,需要考虑时间上下文。为了解决这个问题,我们通过连接相邻帧的特征来定义每个生成帧的音频特征。随后,我们在去噪 U-Net 中使用 Audio-Attention 层来实现潜在代码和每个参考注意层输出之间的交叉注意机制,有效地将语音特征集成到生成过程中。这确保了合成字符的运动被精细调整到伴随音频的动态微妙之处,从而增强输出的真实感和表现力。
Landmark Encoder
利用每个面部地标图像及其相关目标帧之间的鲁棒空间对应关系,集成了地标编码器在我们的 EchoMimic 框架中。地标编码器,实例化为流线型卷积模型,负责将每个面部地标图像编码为与潜在空间维度对齐的特征表示。随后,编码后的面部地标图像特征在摄取到去噪U-Net之前通过元素相加直接与多帧潜伏期集成。该策略能够无缝地结合精确的空间信息,这对于在生成过程中保持准确的解剖结构和运动至关重要,最终提高输出序列的保真度和连贯性。
Temporal Attention Layer
为了生成时间连贯的视频序列,EchoMimic 结合了时间注意层来编码视频数据中固有的时间动态。这些层通过重塑隐藏状态并沿帧序列的时间轴应用自我注意机制,熟练地捕获连续帧之间的复杂依赖关系。具体来说,给定一个隐藏状态 h ∈ Rb×f ×d×h×w,其中 b、f、d、h 和 w 表示批量大小、帧数、特征维度、高度和宽度。我们的 Temporal Attention 层擅长捕捉连续帧之间的复杂依赖关系。这是通过首先将隐藏状态重塑为 h ∈ R(b×h×w)×f ×d 来实现的,从而能够沿帧序列的时间轴应用自注意力机制。通过这个过程,时间注意层识别和学习细微的运动模式,确保合成帧中的平滑和谐过渡。因此,视频序列表现出高度的时间一致性,反映自然运动和流体运动,提高生成内容的视觉质量和真实性。
Spatial Loss
由于潜在空间的分辨率(512 * 512图像的64 * 64)相对较低,无法捕捉细微的面部细节,因此提出了一种时间步感知的空间损失,直接在像素空间中学习人脸结构。特别是,预测的潜在 zt 首先通过采样器映射到 z0。然后通过将 z0 传递给 vae 解码器来获得预测图像。最后,在预测图像及其对应的基本事实上计算 mse 损失。除了 mse 损失外,还采用了 LPIPS 损失来进一步细化图像的细节。此外,由于模型在时间步长 t 很大时很难收敛,我们提出了一个时间步感知函数来减少目标 t 的权重。详细的目标函数如下所示:
训练细节
我们在之前的工作之后采用了两阶段训练策略。我们提出了包括随机地标选择和音频增强在内的有效技术来促进训练过程。
第一阶段
在第一阶段,参考 unet 和去噪 unet 在单帧数据上进行训练以学习图像-音频和图像-姿势之间的关系。特别是,在阶段1中,时间注意层没有插入到去噪中。
第二阶段
在阶段2中,时间注意层被插入到去噪UNet中。整个管道是在12帧视频上训练的,用于最终的视频生成。只有时间模型的训练,而其他部分在阶段2被冻结。
随机关键点选择
为了实现鲁棒的基于地标的图像驱动,我们提出了一种随机地标选择(RLS)技术。特别是,脸被分成几个部分,包括眉毛、眼睛、瞳孔、鼻子和嘴巴。在训练过程中,我们随机地放弃面部的一个或几个部分。
空间损失和音频增强
在实验中,我们发现两个关键技术可以显著提高生成视频的质量。一是上述提出的空间损失,它迫使扩散模型直接从像素空间学习空间信息。另一种是音频增强,它在原始音频中插入噪声和其他扰动,以实现与图像类似的数据增强。
推理
对于音频驱动的情况,推理过程很简单。而对于姿势驱动或音频+姿势驱动的情况,重要的是根据以前的作品将姿势与参考图像对齐。尽管提出了几种运动对齐技术,但挑战仍然存在。例如,现有的方法通常采用全面透视的翘曲仿射,而忽略了面部部位的匹配。为此,我们提出了一个发展版本的运动校准称为部分感知运动同步。
部分感知运动同步
在实验中,我们发现两个关键技术可以显著提高生成视频的质量。一是上述提出的空间损失,它迫使扩散模型直接从像素空间学习空间信息。另一种是音频增强,它在原始音频中插入噪声和其他扰动,以实现与图像类似的数据增强。
实验
实验细节
硬件:8个NVIDIA A100GPU。训练分为两个过程,每个过程30000步。这些步骤在批处理大小为4的情况下执行,处理以512 × 512像素的分辨率格式化的视频数据。在第二阶段的训练中,每次迭代生成14个视频帧,将从运动模块导出的潜在变量与最初的2个实际视频帧进行整合,以确保叙事的一致性。在整个训练阶段,始终保持1e-5的学习率。运动模块使用来自Animatediff模型的预训练权重进行初始化,以加快学习过程。为了引入可变性并提高模型的生成能力,在训练过程中以5%的概率随机忽略参考图像、引导音频和运动帧等元素。在推理阶段,系统通过将被噪声干扰的潜在变量与运动模块中前一步最新的2个运动帧提取的特征表示合并来保持序列相干性。这种策略保证了连续视频序列之间的无缝过渡,从而提高了生成视频的整体质量和连续性。
数据
我们从互联网上收集了大约540小时(每个视频片段约15秒长,总计约130,000个视频片段)的说话头视频,并补充了HDTF[26]和CelebV-HQ[27]数据集来训练我们的模型。为了维护严格的训练数据标准,我们实施了细致的数据清理程序。这个过程的重点是保留那些以一个人说话为特征的视频,这些视频在嘴唇运动和伴随的音频之间有很强的相关性,同时丢弃那些有场景过渡、明显的镜头运动、过度表达的面部动作或完全以侧面为导向的观点的视频。我们使用MediaPipe[9]提取训练视频的面部地标。
评估指标
用于评估肖像图像动画方法性能的指标包括FID(初始距离),FVD(视频距离),SSIM(结构相似性指数测量)和E-FID(表达-FID)。FID和FVD衡量的是合成图像与实际数据的接近程度,分数越低,表现越逼真。SSIM指数衡量真实视频和生成视频之间的结构相似性。此外,E-FID利用盗梦空间网络的功能来严格评估生成图像的真实性,提供更精细的图像保真度标准。首先,E-FID采用人脸重构方法提取表情参数,详见[2]。然后,计算这些提取参数的FID,定量评估面部表情之间的差异
结果展示
总结
本文介绍了EchoMimic,一个先进的音频和视频驱动的肖像图像动画系统。EchoMimic通过集成多个精心设计的模块,显著提升了生成视频的真实性和保真度。文章首先回顾了相关领域的相关工作,如Wav2Lip、SadTalker、AniPortrait、V-Express和Hallo,指出了它们在生成“说话头”视频时的优势和存在的不足。**核心方法**:
- **网络结构**:EchoMimic的基础是Denoising UNet,融合了Reference UNet、Landmark Encoder和Audio Encoder三个模块,分别负责参考图像编码、面部关键点引导和声音输入编码。这种多任务学习模型能够实现不同输入源间的信息整合。
- **Denoising UNet**:采用Transformer结构,加入三种注意力机制(参考注意、音频注意、时间注意),以增强对网络在不同条件下输入数据的处理能力。
- **Reference UNet**:专用模块用于编码参考图像,确保在生成过程中保持面部身份和背景一致性。
- **Audio Encoder**:利用预训练的Wav2Vec模型提取音频特征,并通过连接帧特征来考虑时间上下文,有效集成语音特征到生成过程中。
- **Landmark Encoder**:将面部地标图像编码为特征表示,以提供精确的空间信息,提高生成视频的解剖结构和运动准确性。
- **Temporal Attention Layer**:用于捕捉视频数据中的时间动态,确保生成视频的时间连贯性。
- **训练细节**:使用两阶段训练策略,通过随机地标选择和音频增强等技术提升训练效果。在第二阶段引入时间注意层,训练整个pipeline以生成视频序列。
**关键技术和改进**:
- **空间损失**:提出时间步感知的空间损失,强迫模型直接从像素空间学习面部结构,细化细节。
- **音频增强**:在训练中使用音频增强技术,类似于图像数据增强,提升模型鲁棒性。
- **部分感知运动同步**:改进了运动校准技术,确保生成视频中的面部部件与参考图像更好地对齐。
**实验结果**:
- 使用大规模数据集训练,包括自行收集的约540小时的说话头视频和补充的数据集。
- 通过FID、FVD、SSIM和E-FID等评估指标量化模型的表现,表明EchoMimic在生成视频的真实性、结构相似性和表情保真度上都有显著提升。
总的来说,EchoMimic通过创新的网络结构和训练策略,成功实现了高质量的音频和视频驱动的肖像图像动画,为生成更具真实感和沉浸式体验的“说话头”视频铺平了道路。