AnimateDiff 可以针对各个模型生成的图片,一键生成对应的动图。
配置要求
GPU显存建议12G以上,在xformers或者sdp优化下显存要求至少6G以上。
要开启sdp优化,在启动参数加上--sdp-no-mem-attention
实际的显存使用量取决于图像大小(batch size)和上下文批处理大小(Context batch size)。可以尝试减小图像大小或上下文批处理大小以减少显存使用量。
WebUI版本:v1.6.0
ControlNet版本:v1.1.410
下载运动模型
https://huggingface.co/guoyww/animatediffhttps://huggingface.co/guoyww/animatediff将模型权重放置在`stable-diffusion-webui/extensions/sd-webui-animatediff/model/`目录下。如果希望使用其他目录保存模型权重,请在“Settings/AnimateDiff”中进行配置。
安装AnimateDiff插件
插件地址:
https://github.com/continue-revolution/sd-webui-animatediff
1、在“Settings/Optimization”中启用“Pad prompt/negative prompt to be same length”,并点击“Apply settings”按钮。这一步是为了避免生成两个不相关的GIF图。选择是否启用“Batch cond/uncond”是可选的,这样做可以提高速度,但会增加显存的使用量。
2、不要禁用哈希计算,否则AnimateDiff将无法确定何时切换运动模块。
3、使用txt2img将文本转换为GIF,使用img2img将图像转换为GIF。为了避免出现画面较大的跳跃,建议在img2img界面进行。该插件生成的超短视频以GIF格式存储。
4、选择一个SD1.5 模型,编写提示词,设置配置(如图像宽度/高度)。如果想一次生成多个GIF,更改批处理数量,而不是批处理大小。
5、启用AnimateDiff扩展,设置参数,然后点击“Generate”按钮。
6、生成的GIF在`stable-diffusion-webui/outputs/{txt2img或img2img}-images/AnimateDiff`目录下。生成的中间图像帧在`stable-diffusion-webui/outputs/{txt2img或img2img}-images/{date}`目录下。可以在“Settings/AnimateDiff”中修改生成路径。
参数说明:
保存格式(Save format):
输出的文件格式。至少选择一个:"GIF"|"MP4"|"WEBP"|"PNG"。如果需要附加信息文本,勾选"TXT",它将与输出GIF文件保存在相同的目录下。
总帧数(Number of frames):
生成的超短视频的帧数,一般建议20帧以下。
帧率(FPS):
选择30-60为佳。
循环播放次数(Display loop number):
GIF播放的循环次数,值为0表示GIF永远不停止播放。
上下文批处理大小(Context batch size):
每次传入运动模块的帧数。SD1.5运动模块是基于16帧训练的,因此当帧数设置为16时,效果最好。
闭环(Closed loop):
闭环意味着该扩展会尝试使最后一帧与第一帧相同。选择不同的闭环选项(N|R-P|R+P|A)来确定如何实现闭环。
- N表示绝对没有闭环。如果帧数小于上下文批处理大小而不是0,则这是唯一可用的选项。
- R-P意味着扩展将试图减少闭环上下文的数量。提示行程不会被插值为闭环。
- R+P意味着扩展将试图减少闭环上下文的数量。即时行程将被插值为一个闭环。
- A意味着扩展将积极尝试使最后一帧与第一帧相同。即时行程将被插值为一个闭环。
步幅(Stride):
最大运动步幅,以2的幂表示(默认值:1)。由于无限上下文生成器的限制,此参数仅在帧数大于上下文批处理大小时有效。当Stride为1时,"Absolutely no closed loop"(绝对不进行闭环)才可能实现。
重叠(Overlap):
上下文中重叠的帧数。如果重叠设置为-1(默认值),重叠将为上下文批处理大小的四分之一。由于无限上下文生成器的限制,该参数仅在帧数 > 上下文批处理大小时有效。
帧插值(Frame Interpolation):
使用Deforum的FILM实现在帧之间进行插值。需要Deforum扩展。
插值倍数(Interp X):
将每个输入帧替换为X个插值输出帧。