AnimateDiff简介
该插件主要用来制作动图,并不能用来生成比较长的视频,我体验着和pika差不多,效果上照着商用还有不小的距离。在githup的网址中有论文地址和许多示例。
githup:GitHub - guoyww/AnimateDiff: Official implementation of AnimateDiff.
作者还提出了MotionLoRA,以前的lora大都是画风方面的,MotionLoRA是动作类型的,作者发布了几个镜头方向变化的模型,比如内容左移。
论文中介绍的主要包含3部分,其中motion module是针对动作的,从效果上看动作确实能控制,但是前后帧的内容上总不太对应,作者的demo中,人物的衣服和饰品都发生变化。归根结底,一帧一帧的做视频还是不行,期待sora的开放。
安装
AnimateDiff有sd的插件版本:GitHub - continue-revolution/sd-webui-animatediff: AnimateDiff for AUTOMATIC1111 Stable Diffusion WebUI
使用秋叶大神的整合包的话,从这里搜索安装即可:
安装后是这样的:
安装后,还需要下载模型文件,模型放在stable-diffusion-webui/extensions/sd-webui-animatediff/model/下。模型从huggingface下载:https://huggingface.co/guoyww/animatediff/tree/main
我这里使用的是mm_sd_v15_v2.ckpt,sdxl也有对应的版本。
lora下载后放在stable-diffusion-webui/models/Lora,就想普通lora一样使用就行了。
使用
animatediff设置界面有许多参数,在githup上都做了详细的解释,我们一般只需要设置总帧数和帧率就行。闭环指的是第一帧和最后一帧是否相同和近似,应为gif是循环播放的话,第一帧和最后一帧差距大太会导致明显的卡顿。其余的还有视频控制等参数设置,我们后续再探索。
toonyou模型,animatediff的demo使用了这个模型,我们首选也是这个模型。该模型是动漫风格的,demo中可以看到动漫风格的效果更好些。
我们使用toonyou的样图来制作gif,
我解锁了随机种子,生产的gif效果如下,可以看到人物基本是没动的,仅仅只是头发有些飘动,后面加上lora在看有动作的。由于同时开了高分辨修复,耗时非常长,我3060的卡用了20多分钟:
添加了PanLeft的lora,效果如下。可以看到人物确实有了动作(方向不清楚是不是反的)。可以明显的看到衣服上的图案是不对应的,项链款式也在变化,身材和脸型变化都不大。关闭了高分辨率修复,10分钟内就可以搞定。
AnimateDiff可以配合controlNet,上传视频源后,直接启动ControlNet,ControlNet这边儿是不需要再输入数据的。我们以姿态控制为例生成一段科目三的视频,我这里只生成了16帧,帧率设置为8,太多的数据我这显卡处理不了,显存会溢出。
输入的视频转为gif如下:
生成的gif如下,没有开高分辨率修复,尺寸设置的也比较小,效果看起来并不好,如果使用大点的显卡效果应该会好点:
ControlNet有许多种控制方式,AnimateDiff和ControlNet的结合还有许多探索的空间,后续再实验。