今天给大伙分享一下目前来看比较稳定的文本生视频的插件 AnimateDiff。
之前虽然小视频生成比较火,不过出的视频都不太稳定,目前来看 AnimateDiff 是相对比较稳定的,而且能同时支持和其他插件一起使用。
一 AnimateDiff 介绍
AnimateDiff 使用控制模块来影响 Stable Diffusion 模型。它通过各种短视频剪辑进行训练。控制模块可以对图像生成过程进行调节,以生成一系列看起来像它学习的视频剪辑的图像。
简单来说,SD 模型的训练是通过大量的图片进行训练。而 AnimateDiff 则是通过大量的短视频来进行训练图片之间的衔接(视频帧的流畅性)
结合 SD 模型,在出图的时候就可以通过 AnimateDiff 模型对生成出的每一张图进行微调,最后拼接成短视频。
二 安装
使用 AnimateDiff 需要安装 SD 插件和 AnimateDiff 模型。
插件安装
如果你能科学上网,那么可以直接在扩展->从网址安装 中填入 https://github.com/continue-revolution/sd-webui-animatediff.git
如果你没办法通过网站安装,安装包也给大家准备好了,公众号回复 插件 获取 sd-webui-animatediff 压缩包,解压到你的 SD 安装目录下的 stable-diffusion-webui/extensions/
模型下载
安装好插件之后,将 AnimateDiff 模型下载放到 stable-diffusion-webui/extensions/sd-webui-animatediff/model/
下载链接:https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15_v2.ckpt
同样如果没办法下载的话,公众号回复 模型 找到 mm_sd_v15_v2.ckpt 放到本地的目录中即可。
安装成功之后,重启 Stable Diffusion,在文生图页面可以看到 AnimateDiff 插件配置
三 视频生成
第一步:先填写基础信息
模型:majicmixRealistic_v6
提示词:((pure
white background )),Best quality,masterpiece,ultra high res,raw photo,beautiful
and aesthetic,(photorealistic:1.4),1girl,full-body composition,striking
perspective
Danceing,
high-waisted shorts,,ruffled blouse
反向提示词:FastNegativeV2
EasyNegative
其它的先使用默认的
第二步:配置AnimateDiff
先介绍几个基础参数:
- Motion Module:AnimateDiff 使用的模型了,也就是前面下载的
- Enable AnimateDiff:启用
- FPS:每秒的帧数(每一帧一张图片)
- Number of frames:总帧数。总帧数/FPS = 视频的长度,上面的例子最后就会生成4秒钟的视频
第三步:生成视频
直接点击生成看看效果。
通过中间效果图来能看出来,一共生成了32张图(总帧数)
喝个咖啡☕️等待一会儿...
emmm.... 发现效果还是比较差的,连续性也一般般,虽然不会出现闪烁,不过这个画质、脸部细节太糟糕了。
下面接着做一些优化
四 细节优化
脸部细节优化
前面我们说了 AnimateDiff 支持结合其它插件一起使用,前面的文章我们讲过了使用 adetail 来解决崩脸 问题,这我们可以直接开启使用
连续性优化
启用 AnimateDiff 的 Frame
Interpolation,将 Frame
Interpolation 设置为 FILM,将 Interp
X 设置为 FPS 的乘数。例如,将其设置为 5 会使 8 FPS 视频达到 40 FPS。
也可以启动反向帧Add Reverse Frame,相当于是把视频正着播放一遍,在反着播放一遍(实际上只会看着更加流畅了)
调整完再生成一次看看效果
效果是不是嘎嘎上来了。脸部细节、连续性都有提升。
只要你的GPU扛得住,也可以直接启用高清修复,让画面更加清晰!
拉大FPS让视频的连续性更好!
五 坑坑坑
提示词长度问题
提示词的长度不能超过75。如果超过的话,那么最后的视频就会被切割然拼接。
多次生成视频时报错
如果多次生成视频的时候出现下面的错误信息
Expected weight to be a vector of size equal to the number of channels in input, but got weight of shape [1280] and input of shape [16, 2560, 9, 9]
那么你需要在启动SD的时候删除掉 --xformers 参数。