My App

tmp

tmp

animate anyone

animate-anyone-overview

我们从图片的角度看待animate anyone的思路, 我的输入是一种pose, 输出是和输入相同姿态的"人", 这人物IP是怎样的, 两个途径, CLIP和ReferenceNet, Spatial注意力, 交叉注意力交流IP和motion信息.

X-dancer

X-dancer-overview

端到端的音乐到视频生成, 3D dance dataset的数据集, 几年了还在用AIST++, 于是作者转战2D单眼视频了.之前说过, codebook是Bailando的工作, 生成视频是animate anyone的工作.

上上周基本就认知到这里了, 当然也指出了一些不痛不痒的问题, 脸部提取粗糙导致模型生成的脸崩掉了, 没有考虑不同人物尺寸比例不同(再读论文发现它是考虑了)等等, 主要还是沉浸在对X-dancer的赞美和嫉妒, 具体要怎么改进, 是没有想法的.

后面又关注了两篇文章.

MMAudio

MMAudio-overview

这篇是video to audio的论文, 就是为视频配音, 给定视频模型输出音频. conditional flow matching的方法, 主要创新点有两个.

  1. 多模态融合训练. 因为是Transformer的方法, 三模态输入都token 序列化了, 在Project层统一为h维度.
  2. 用了很多音画同步的技巧(研究了一下很难借鉴).

关注右侧joint attention部分, 三者拼接然后自注意力, 分开, 和animate anyone中的Spatial Attention神似, 而这里就是animate anyone用来控制姿态的技巧.

这篇论文给了我一个全新的角度看待Spatial Attention, 这上面是可以做文章的.

插曲

首先想到的是把pose和ReferenceNet的位置替换, 但是有一个很致命的问题"diffusion在时间步前期关注motion, 后期关注细节", 估计效果不会好.

接着很容易想到的是video, music, motion三者一起训练, 但是ReferenceNet只在timestamp=0采样一次, 而MMAudio的方法根据时间步多次采样, 这样很牺牲性能, 而MMAudio的方法生成质量真的比ReferenceNet更好吗, 存疑.

虽然有些疑问, 先看下一篇论文.

FlexiAct

FlexiAct-overview

这篇论文没有完全弄懂, 但是有一个结论觉得很合理, "diffusion前期关注motion, 后期关注细节"


计划

  1. 音乐表示. 使用MMAudio的方式, STFT转换成波形, 然后提取成波形后VAE编码, Project映射到和video一样的尺寸, 它能解码出高质量音频, 相信信息量够了.
  2. motion表示, 就使用pose序列图, 暂时不token化, Bailando使用它完全是因为Trandform回归需要, 不一定更好.
  3. video表示, 参考图片的复制, 当然和motion都用VAE编码.
  4. 模型结构. 以animate anyone为基础模型, 核心思想是motion可以直接驱动视频, music为什么不行. 我的修改如下:
    1. 输入是video, music和motion, music和motion我看做同种重要的控制信号, 都有一个ReferenceNet, 在Spatial Attention处连接并做自注意力, 输出只截取video的部分;
    2. CLIP注入cross attention这部分, 替换成music全局信息(和时间步的特征求和).
    3. 还能改动的太多了, 先实现前两步看看效果再考虑怎么改进, 比如motion表示考虑序列化, 训练motion和music嵌入同潜在空间; 全局配置信息增加motion和video信息; 节奏对齐相关损失.

安排

  1. 修改模型, 把pose和referenceNet的位置对调, 继续训练看看效果怎么样, 如果不行加了music控制也白搭.
  2. 如果可以下一步实现music特征提取.
  3. music加到模型中来继续训练, 三模态一起训练, 有些网络要冰冻.
  4. 训练music-video...

On this page