“DreaMoving: A Human Video Generation Framework based on Diffusion Models”
论文地址:https://arxiv.org/pdf/2312.05107.pdf
Github地址:https://github.com/dreamoving/dreamoving-project
摘要
DreaMoving是一个扩散控制视频生成框架,可以生成高质量的定制人类视频。给定目标身份和姿势序列,DreaMoving可以生成目标身份在任何地方移动或跳舞的视频。为此,提出了一个运动控制的Video ControlNet和一个内容指南者Content Guider。该模型易于使用,可以适应大多数风格化扩散模型以生成多样化的结果。
简介
本文介绍了一个基于扩散模型的人类舞蹈视频生成框架DreaMoving。该框架解决了人类舞蹈视频生成中的个性化和可控性问题,提供了更精确的运动模式控制。该框架的优点在于可以生成具有帧内一致性、更长的长度和多样性的视频。该框架的缺点在于需要更多的人类舞蹈视频数据集和相应的精确文本描述。
架构
为了提高时间一致性和运动保真度,作者在Denosing U-Net和ControlNet中加入了Motion Block。Motion Block是从AnimateDiff扩展而来的,时间序列长度为64。作者首先从AnimateDiff中初始化Motion Block的权重,然后在私人人类舞蹈视频数据上进行微调。
Content Guider
Content Guider用于控制生成视频的内容,包括人物外貌和背景。为了更精确地指导人物外貌,该方法使用图像提示来编码面部特征,可选地使用衣服/身体图像来编码身体特征。同时,使用文本提示来生成背景。最终,将文本和人物外貌特征拼接成内容嵌入,并通过交叉注意力层进行人物外貌和背景表示。
模型训练
Content Guider训练
Content Guider是一个独立模块,用于基础扩散模型。它使用SD v1.5进行训练,并使用OpenCLIP ViT-H14作为图像编码器。为了更好地保留参考脸的身份,我们使用Arcface模型提取面部相关特征。在训练过程中,我们从LAION-2B收集人类数据,并过滤掉没有面部的图像。Content Guider在单台机器上使用8个V100 GPU进行100k步的训练,每个GPU的批量大小为16,使用AdamW优化器,固定学习率为1e-4,权重衰减为1e-2。
Long-Frame预训练
预训练阶段,将Motion Block的序列长度从16扩展到64。在这个阶段中,只训练了Denoising U-Net的Motion Block,并冻结了网络的其余部分。没有使用ControlNet和图像引导。训练停止后,使用批量大小为1的256×256分辨率的验证集(5k个视频剪辑)。学习率设置为1e-4。
视频ControlNet训练
在Long-Frame预训练阶段,使用大量的视频数据对Motion Block进行预训练。在视频ControlNet的训练阶段,使用人类舞蹈视频数据对网络进行训练,输入为人体姿态或深度信息。训练过程中,使用去噪U-Net对网络进行优化。最终的网络能够实现对视频的控制。
Expression微调
通过在收集的6k人类舞蹈视频数据上训练视频ControlNet,进一步微调Denoising U-Net中的Motion Block,以获得更好的人类表情生成性能。在此阶段,仅更新Denoising U-Net中的运动块权重,学习率设置为5e-5,分辨率为512×512。训练停止后,批量大小为1,共进行了20k步。
模型推理
使用文本提示、参考图像和姿态或深度序列作为输入,在推理阶段控制视频ControlNet的比例为1.0。该方法还支持多个ControlNet的形式,深度和姿态Video ControlNets可以同时使用。通过调整公式1中的αf和αc来控制Content Guider中面部/身体指导的强度。如果αf = αc = 0,则内容完全由文本提示控制。
结果
评论0