Stable Diffusion WebUI使用AnimateDiff插件生成动画

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/animatedifficon-default.png?t=N7T8https://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”按钮。

Stable Diffusion WebUI使用AnimateDiff插件生成动画_第1张图片

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个插值输出帧。

你可能感兴趣的:(AI,stable,diffusion)