tmp
tmp
animate anyone
我们从图片的角度看待animate anyone的思路, 我的输入是一种pose, 输出是和输入相同姿态的"人", 这人物IP是怎样的, 两个途径, CLIP和ReferenceNet, Spatial注意力, 交叉注意力交流IP和motion信息.
X-dancer
端到端的音乐到视频生成, 3D dance dataset的数据集, 几年了还在用AIST++, 于是作者转战2D单眼视频了.之前说过, codebook是Bailando的工作, 生成视频是animate anyone的工作.
上上周基本就认知到这里了, 当然也指出了一些不痛不痒的问题, 脸部提取粗糙导致模型生成的脸崩掉了, 没有考虑不同人物尺寸比例不同(再读论文发现它是考虑了)等等, 主要还是沉浸在对X-dancer的赞美和嫉妒, 具体要怎么改进, 是没有想法的.
后面又关注了两篇文章.
MMAudio
这篇是video to audio的论文, 就是为视频配音, 给定视频模型输出音频. conditional flow matching的方法, 主要创新点有两个.
- 多模态融合训练. 因为是Transformer的方法, 三模态输入都token 序列化了, 在Project层统一为h维度.
- 用了很多音画同步的技巧(研究了一下很难借鉴).
关注右侧joint attention部分, 三者拼接然后自注意力, 分开, 和animate anyone中的Spatial Attention神似, 而这里就是animate anyone用来控制姿态的技巧.
这篇论文给了我一个全新的角度看待Spatial Attention, 这上面是可以做文章的.
插曲
首先想到的是把pose和ReferenceNet的位置替换, 但是有一个很致命的问题"diffusion在时间步前期关注motion, 后期关注细节", 估计效果不会好.
接着很容易想到的是video, music, motion三者一起训练, 但是ReferenceNet只在timestamp=0采样一次, 而MMAudio的方法根据时间步多次采样, 这样很牺牲性能, 而MMAudio的方法生成质量真的比ReferenceNet更好吗, 存疑.
虽然有些疑问, 先看下一篇论文.
FlexiAct
这篇论文没有完全弄懂, 但是有一个结论觉得很合理, "diffusion前期关注motion, 后期关注细节"
计划
- 音乐表示. 使用MMAudio的方式, STFT转换成波形, 然后提取成波形后VAE编码, Project映射到和video一样的尺寸, 它能解码出高质量音频, 相信信息量够了.
- motion表示, 就使用pose序列图, 暂时不token化, Bailando使用它完全是因为Trandform回归需要, 不一定更好.
- video表示, 参考图片的复制, 当然和motion都用VAE编码.
- 模型结构. 以animate anyone为基础模型, 核心思想是motion可以直接驱动视频, music为什么不行. 我的修改如下:
- 输入是video, music和motion, music和motion我看做同种重要的控制信号, 都有一个ReferenceNet, 在Spatial Attention处连接并做自注意力, 输出只截取video的部分;
- CLIP注入cross attention这部分, 替换成music全局信息(和时间步的特征求和).
- 还能改动的太多了, 先实现前两步看看效果再考虑怎么改进, 比如motion表示考虑序列化, 训练motion和music嵌入同潜在空间; 全局配置信息增加motion和video信息; 节奏对齐相关损失.
安排
- 修改模型, 把pose和referenceNet的位置对调, 继续训练看看效果怎么样, 如果不行加了music控制也白搭.
- 如果可以下一步实现music特征提取.
- music加到模型中来继续训练, 三模态一起训练, 有些网络要冰冻.
- 训练music-video...