
讲任务: portrait image animation 涉及处理生成实时面部表达, 嘴唇移动, 头部pose流程, 基于portrait image. 应用广泛, 研究的人很多.
讲历史: 利用facial landmarks(key points)与三维参数化模型[受到重建精度, 结果表达精度的限制] -> GAN, Diffusion, 可以实现高分辨率, 高质量面部细节, 长时间保持 -> 一些最新的方法.
讲限制: 1) 非正面图像生成存在困难; 2) 头部配饰保持; 3) 动态背景生成困难.
讲成就: 首次将transformer-base预训练模型引入portrait image animation任务, 在身份保持, speech audio conditionVideo extrapolation三个方面提出了自己的方案.
讲评估.

Baseline Network. 基础模型是CogVideoX, 使用3D VAE压缩视频, 使用T5压缩文本. 为了处理文本和视频的discrepancies(差异?), 使用了一个adaptive layer normalization techniques. 3D RoPE被用来捕获帧间关系.
Conditioning in Diffusion Transformer. 增加了身份条件和音频条件. 总结了在diffusion中主要的4种条件注入方式, in-context conditioning, cross attention, adaLN, adaLN-zero. 然后说本论文主要用cross attention(条件作为k, v, latent 表示作为q)和adaLN(只适用于简单条件)这两种.
speech audio 嵌入. 使用wav2vec提取音频特征, 为了帧对齐, 用了3个线性层(MLP).
speech audio条件注入. 他们尝试了3种方案, self-attention, adaptive normalization和 cross attention, 最后发现cross attention的效果最好, 这里三种方案是怎么实现的值得学习, 我把图放在下面.

4种方法, 直接看图吧, 最后实验发现方案d最好.

zid就是上图中Identity Reference Network的输出, 与animate anyone中的ReferenceNet一样的思路.
为了长视频生成的能力, 把前n帧也作为条件输入, 这里用的EDGE中看到的方法, 假如要生成视频的长度是L, 然后latent表示长度为l, motion帧是N帧, latent表示后是n帧, 对(l-n)帧进行0填充, 与l帧高斯噪声连接.
第一阶段训练身份保持的能力, 这一阶段没有audio attention, 专门训练ReferenceNet的3D full attention和denosed network的3D full attention和face attention.
第二阶段训练audio驱动生成, 插入cross attention并训练cross attention.
HDTF数据集(8小时), YouTube数据(1200小时), 电影数据(2346小时). 发现脏数据很多, 设计了过滤流程.
提取单speaker, motion筛选(一些评估工具计算metric scores), 后处理(clip, face特征提取).
64个V100训练, 8个A100上conducted. 训练的1和2阶段都训练20000步, batch size为1, 学习率1e-5, 分辨率480x720, 视频49帧.
定量分析拿了几个数据集, 和几个相同的模型比较了一下, 达到SOTA效果.
消融实验包括: 音频调节, 身份参考网络, 时间运动帧, CFG 尺度.
感受
我发现我普遍会觉得自己熟悉领域的文章思路清晰, 结构明了.
直觉身份保持能力的实现参考的其他论文的实现, 加了个cross attention增加音频条件驱动.
其实第一阶段的训练包含一个很细微的问题, 在跑animate anyone任务中, 我使用了自己截取的图片作为参考图, 生成效果并不好, 我指出了一些可能原因, 然后师兄增加了一点, "因为这张图片未在训练集中, 模型没见过",
这段话放在这里没有任何含义, 仅是想到了, 于是从高层次总结作者的思路, 先处理身份保持(也让模型见过这批数据), 再增加cross attention处理音频驱动.