往期回顾:
补充:
①在开始之前推荐一个插件,ComfyUI-Manager(ComfyUI 管理器),下载地址: https://github.com/ltdrdata/ComfyUI-Manager.git
②安置方式除了可以应用我们第一节课上讲的 “git 拉取”外( 不要应用压缩包解压安置),还可以把“install-manager-for-portable-version.bat”文件放入”ComfyUI_windows_portable”目录双击安置(“install-manager-for-portable-version.bat”文件我会放在这节课的文件链接里面);
③安置好之后会在右侧菜单上显示一个“管理器”的按钮,点击就可以打开操作弹窗;
④我们可以通过这个插件安置、删除、禁用其他插件,也可以下载缩小模型,更新 ComfyUI 等功能;
⑤最主要的还是“安置节点”、“安置缺失节点”
a. 单击“安置节点”搜索我们需求安置的节点名字后点击“Install”等待安置成功就可以了;
b. 我们在应用别人分享的过程图时发现缺少插件(节点变成红色块),就可以点击“安置缺失节点”从事安置;
⑥采用“管理器”安置比 git 拉取更简单,也会解决插件需求手动配置环境的操作(部分插件不可以,具体需求看插件安置要求)
前言:
前几节课我们学习了文生图、图生图、局部重绘,但是生成的图片分辨率太小,我们可以通过模型缩小、潜伏缩小、非潜伏缩小、分块缩小多种方式对图象从事缩小。
一、缩小工作流
我们以文生图后的图片从事缩小,在开始之前我们打开之前搭建的文生图基础过程。
1. 模型缩小:
①模型缩小是最简单,也是动机最差的缩小方式,他就和我们在 Web UI 上应用后期处理从事缩小一样,只是通过缩小算法对图象直接缩小(也就是图象空间缩小),这也会导致我们缩小的图片损失细节,甚至看起来会很腻很假;
②虽然上面说的一无是处,但是应用他搭配在其他的缩小方式上动机就大大增强,我们先看一下怎么应用模型缩小吧;
③“右键-新建节点-图象-缩小-图象通过模型缩小”
④左侧的“缩小模型”通过拖拽连贯“缩小模型加载器”(“右键-新建节点-加载器-缩小模型加载器”从事连贯也可以);
⑤选择自己需求的缩小模型,我给大家准备好的 17 个缩小模型,都放在网盘里面了(管理器的安置模型也可以下载缩小模型),其中 BSRGAN、ESRGAN、SwinIR_4K、RealESRGAN_x4plus 动机不错;
⑥左侧的“图象”连贯“VAE 解码”输出的图象,右侧直接连贯保存图象就可以了;
⑦有没有发现我们没有设置图片缩小的倍数,其实模型缩小是直接根据所选缩小模型从事缩小的,一般都是缩小 4 倍。
2. 潜伏缩小:
①这时候我们插个知识点,在 Web UI 上我们从事高分辨率修复的时候,我们会看到在选择缩小算法时,有 Latent 开头的几个算法可选择,这其实就是我们从事潜伏缩小所需求用到的过程;
②潜伏缩小就是在原图上从事缩放,然后对缩放后的图象从事重新采样,进而增加细节达到缩小的目的;
③由于我们对图片缩小还需求从事“VAE 解码、图片缩小、VAE 内补编码”这三个步骤,所以,,,,我们可以直接对 Latent 从事缩小;
④ “右键-新建节点-Latent-Latent 缩放/Latent 按系数缩放”,可以看到我这边放了两个节点,这两个节点一个是需求设置宽高、一个是根据倍数缩小,根据自己的需求选择就好;
⑤如果前几节课学明白了,后面的就不用我多说了吧,再串联一个采样器就可以了;
⑥下方是我连贯好的工作流,这里我选择的是“Latent 按系数缩放”,这个比较方便一些,大家也可以选择“Latent 缩放”
注意:降噪数值一定要在 0.5 左右,数值过低会有崩坏的情况。缩小倍数也不要太大,太大同样会有崩坏的情况
3. 非潜伏缩小:
①非潜伏缩小可以理解成模型缩小和潜伏缩小的结合,先从事模型缩小后对模型缩小的图片从事重新采样;
②是不是有思路了?不过不要忘了对模型缩小后的图片从事缩放(因为直接对缩小 4 倍的图片从事重新采样会占用太多显存并且添加的细节不够);
③我们想要得到更高像素的图象可以多次叠加“非潜伏缩小”过程,只要你的显存够大,你想要多大的图都可以。
4. 分块缩小:
①非潜伏缩小要得到一张 4K 图需求很高的显存,但是我们可以通过分块缩小,应用较小的显存出更大的图。
②分块缩小其实就是把一张图切成 n 个块,然后对小块从事重新采样,最后把小块拼接在一起。他的好处是可以应用更小的显存得到一张更大分辨率的图;
③分块缩小是需求用到一个插件的: https://github.com/BlenderNeko/ComfyUI_TiledKSampler.git (压缩包解压安置、git 拉取、管理器安置都可以)
④我们需求用到这个插件中的“分块采样器”,“右键-新建节点-采样器-K 采样器(分块)”,他同样有一个高级采样器,这个我们要从事 refiner 模型细化的时候可以应用。
⑤来看一下和我们的普通采样器有什么区别吧,只多了三个操作,分块宽度、分块高度、无缝分块策略
a. 分块宽度、分块高度:是指我们缩小时每一次从事分块采样时绘制的宽高;
数值不要太小(根据你放的后图片的大小决定,比如我要缩小成 2048*2048,我是设置为 1024*1024 的)
数值越小分的块越多,分的块越多也就越慢;也会增加出现伪影的几率(比如你生成猫,你会在某些小区域得到猫的影子,即使你降噪数值小也会出现不同程度的伪影)
b. 无缝分块策略:是指在我们分块采样的每一块相接处会出现明显的拼接痕迹,而无缝分块策略就是通过不同的方式减少拼接痕迹的,有四种可选策略,random(随机)、random strict(随机严格)、padded(填充)、simple(简单),我建议应用 random 和 random strict。
random(随机):也是默认策略,它是通过在水平和垂直的分块图象之间随机交替采样来消除拼接痕迹(动机最好,与 uni 采样器不兼容);
random strict(随机严格):因为 random 很有可能会对有边框的图象产生不好的动机,所以 random strict 应用遮罩来确保不裁剪边框图块(动机和 random 类似,但不适用于 SDE 采样器)。
padded(填充):为每块图象在四周提供一定的范围从事叠加来减少拼接缝隙,正因为这样,他需求对多达 4 倍的图块从事采样(动机不如 random,速度慢,支持 uni 采样器)。
iv. simple(简单):看名字就知道,最简单的策略,就是直接一块块的去燥(动机最差,速度最快,不建议应用)
⑥是不是以为当成普通采样器连贯就可以了,,,,那当然不是,在“正面条件”中间要把 ControlNet 的 tile 连贯进去;
⑦ “右键-新建节点-加载器-ControlNet 加载器”,加载器选择“tile”的(tile 模型我会放在网盘里面,其他的 ControlNet 应用方法我会在第八节课讲给大家)
⑧ “ControlNet 加载器”连贯“ControlNet 应用”,直接拖拽连贯就可以(或:右键-新建节点-条件-ControlNet 应用)
⑨我们“ControlNet 应用”两边的“条件”连贯“正面条件/提示词”,图象连贯“VAE 解码”输出的图象;大模型连贯“K 采样器(分块)”上的模型;
⑩这时候我们就剩下设置出图大小了,我们可以在“VAE 解码的图象”连贯过来一个“图象缩放/按系数缩小”(或:模型缩小过程,我个人测试下来,模型缩小动机最好);
⑪然后对图象从事“VAE 编码”然后连贯到“K 采样器(分块)”上,这不用细说了吧,图生图的过程;
⑫注意:降噪同样不要太低,分块宽高根据情况设置,如果出现伪影就增大数值
5. UltimateSDUpscale(终极 SD 缩小):
①我们应用时每次都要搭建一遍“非潜伏缩小或分块缩小”等过程会很麻烦,应用“ComfyUI_UltimateSDUpscale”插件会更简单。
②下载地址: https://github.com/ssitu/ComfyUI_UltimateSDUpscale.git (压缩包解压安置、git 拉取、管理器安置都可以)
③“右键-新建节点-图象-缩小-SD 缩小”,这个插件有两个功能,一个是细节修复+缩小(SD 缩小),一个是细节修复(SD 缩小(不缩小))。我们主要用到的是 SD(缩小),他们的区别只是是否连贯缩小模型;
④这个缩小插件可以说是把上方的“模型缩小+分块缩小”从事了一个组合;