经验分享
共同学习

StableDiffusion多帧渲染

Multi-frame Rendering

这是最新的StableDiffusion多帧渲染插件,它可以让StableDiffusion 生成的动画效果更流畅且闪烁问题减少很多,但是算力将会增高3倍左右的时间。

基本原理

多帧渲染的原理是用扩散模型做image2image的impainting时,
impainting mask以外的区域实际上会影响impainting区域的结果

在具体介绍工具之前,我要先介绍一下原理,因为这关系到工具很多选项的作用。

首先是第一帧的渲染,和普通的control net image-to-image没有区别。

从第二帧开始,就会进入到所谓的多帧渲染模式。

在原作者发布的版本中,第二帧的原图汇合,以生成的第一帧横向拼接在一起,然后利用impainting单独转换第二帧画面的区域。

而从第三帧开始,往后的所有图片都会由三张图片拼接而成,一张参考图片,当前帧的前一帧和当前帧,排列顺序如下图所示。

然后使用impainting单独转换当前帧。

在使用了一阵子之后,我总结了这种多帧渲染法的优缺点。

  • 优点:图像闪烁大为改善,搭配人物的Lora使用效果更佳
  • 缺点:渲染所需算力大幅提高到3倍
  • 限制:连续的单人画面最佳,途中切镜可能需要另起炉灶(待实验,或可以结合ebsynth)

我对原作者的脚本稍加修改,主要有几点。
1.支持文件直接保存
2.支持读取CSV或Text作为prompt
3.改进第二帧渲染方法,改为和D,N帧一样的手法
排列顺序,第一帧,第二帧,第一帧

脚本下载后,直接放在Web UI根目录下/scripts,文件夹下即可。

功能介绍

1.输入目录:保存有所要转换的图片序列的文件夹

2.输出目录:保存图片序列文件夹

3.Initial Denoise Strength/初始降噪强度:第一帧的降噪强度

  • 分别设置第一帧降噪强度和其余帧数降噪强度
  • 其余帧数的降噪强度是通过img2img主界面进行控制的

4.自动识别prompt

  • 不推荐使用,

5.Loopback Source/第三帧图片:

  • None:只使用两张图片,即前一帧和当前帧,不是用用第三张参考图片
  • FirsGen:使用第一帧图片作为参考图片
  • Historical:使用当前帧前倒数第二帧作为参考图片
  • 推荐使用FirstGen

6.Enable Color Correction/颜色校正:使用非FirstGen作为参考图片时开启,以减少褪色现象

7.Unfreeze Seed/种子值解冻:勾选后每次生成图片会自动在基础种子值加1

8.Loopback Source/回送源:也就是中间图片,有三种模式:

  • PrevionsFrame:从前一帧生成当前帧
  • InputFrame:从当前帧生成当前帧
  • FirstGen:从第一帧生成当前帧
  • 推荐使用InputFrame

9.Read tags from text files/从文本文档读取Prompt:勾选后,默认从输入目录读取和图片相同文件名的txt文件。

  • 如果输入了特定的文件夹地址,则会从该文件中读取

 

10.Read tabular commands/从csv表格读取prompt:从表格中读取prompt,每行一帧。

实际操作

我准备了6张图片,并且把它放入了此文件夹。

第一步批量识别prompt。

当然你可以跳过此步骤,全程使用一个prompt

如果你没有此插件请复制如下网址下载

https://github.com/toriato/stable-diffusion-webui-wd14-tagger

生成后,可以看到在每张图片旁边都有一个名称对应图片的txt文件

接着我们切换图生图/img2img界面,这里我们要确定第一帧,也就是参考图像的渲染效果。

将第一帧图片导入后输入Prompt,这里我直接用识别到的Tag了

调整尺寸和降噪强度等参数,开启Control Net 这里我选择了HED和法线贴图,两者强度均设为0.6,分辨率均设为832。
我们生成一张看看

在不使用Laura的条件下,想要完美复原特定人物还是很困难的。
这里我调用了lora,和Tag to Image不同,Lora强度可以设低一些,我设了0.6,效果已经很不错了。

你还可以搭配其他画风Laura来达到自己想要的效果。

在找到想要的效果后,将种子值填入,然后开始设定多帧渲染的参数。

注意,你应该将之前测试时粘贴在Prompt栏中检测到的文本删去,只保留你自己写的部分。

向下找到脚本一栏,选择Multiframe Video Rendering,填入输入输出文件夹。调整第一帧,降噪强度,到和之前测试时相同。

选择First Gen作为Third Frame Image,Into Frame作为Loopback Source,然后勾选,从文件读取Prompt。
注意,由于Web UI底层代码实现的问题,在运行Image to Image脚本时,左侧的图片栏应该有一张站位图,否则就会报错。

这张图在这个例子中实际上并不参与生成。接着如下拖进一张图占位,

 

-=||=-收藏赞 (0)

评论 抢沙发

评论前必须登录!

立即登录   注册

登录

找回密码

注册