写了一个让 StableDiffusion 的 ControlNet 支持序列帧的插件

1,315 阅读1分钟

前言

之前用 Stable Diffusion 批量绘制图片,基本上都得用视频作为 ControlNet 的输入,比如 M2M ,这对于批量生图,或者序列帧生序列帧来说,比较麻烦,于是自己写了一个让 Stable Diffusion 的 ControlNet 支持序列帧的插件。

项目地址

仓库地址:github.com/ningbonb/st…

主要功能

  • 一个 Stable Diffusion WebUI 支持的脚本;
  • 让 ControlNet 支持序列帧(批量多图);
  • 与 ControlNet Movie2Movie 类似,只是 M2M 上传视频时会压缩图片质量,损失细节,而 Frame2Frame 不会。

screenshot.png

用法

  1. 下载 frame2frame.py 文件,复制到 ./extensions/sd-webui-controlnet/scripts/ 文件夹下;
  2. 设置-ControlNet-勾选【允许其他脚本控制此扩展】;
  3. 重载前端;

视频演示

点击查看视频演示

思路

这个插件的实现借鉴了 sd-webui-controlnet 多个脚本的实现方式。

全局 UI

起初想参考 sd-webui-controlnet/scripts/controlnet.py 做一个全局的 UI ,但是后来发现如果放到全局,则拿到 controlnet 的回调比较费劲,后来这种思路就放弃了。

脚本

最终参考 sd-webui-controlnet/scripts/movie2movie.py 完成了脚本模式的开发。

源码

链接:github.com/ningbonb/st…