StableDiffusionComfyUI基础教程(六):图片放大与细节修复
前言:
前几节课我们学习了文生图、图生图、局部重绘,但是生成的图片分辨率太小,我们可以通过模型放大、潜在放大、非潜在放大、分块放大多种方式对图像进行放大。
一、放大工作流我们以文生图后的图片进行放大,在开始之前我们打开之前搭建的文生图基础流程。
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 个块,然后对小块进行重新采样,最后把小块拼接在一起。他的好处是可以使用更小的显存得到一张更大分辨率的图;
③分块放大是需要用到一个插件的: /uploads/pic/20240108/ComfyUI_TiledKSampler (压缩包解压安装、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”插件会更简单。
②下载地址: /uploads/pic/20240108/ComfyUI_UltimateSDUpscale (压缩包解压安装、git 拉取、管理器安装都可以)
③“右键-新建节点-图像-放大-SD 放大”,这个插件有两个功能,一个是细节修复+放大(SD 放大),一个是细节修复(SD 放大(不放大))。我们主要用到的是 SD(放大),他们的区别只是是否连接放大模型;
④这个放大插件可以说是把上方的“模型放大+分块放大”进行了一个组合;
⑤我们可以看到这个节点和我们上面用的“K 采样器(分块)”很相似对吧,这个地方我们主要去关注几个操作就可以了
a. mode_type(模式类型):有两个可选择
Linear(直线):逐行进行拼接(更快,但是会有几率出现伪影,我们默认使用这个)Chess:棋盘拼接 ,可以理解成“X”形状的拼接样式(慢一些,出现伪影的几率小)b. mask_blur(模糊):拼接区域的羽化程度,默认 8 就可以,融合不好的情况下适当调高
c. Tile_padding(分块区域):相邻融合像素,和我们上面说的 padded(填充)策略一样,不过这个插件我们可以设置融合像素的值
d. seam_fix_mode(接缝修复模式):有三种模式选择,Band Pass(速度快)、Half Tile(质量好)、Band Pass+Half Tile(速度和质量做一个折中)
⑥连接就更简单了,连接一个“放大模型加载器”,其他的就按照名字连接就可以;
总结“模型放大”最快也是效果最差,最不推荐的。我常用的是“非潜在放大”和“UltimateSDUpscale 插件放大”;每个放大方式都有利弊,我们完全可以多种方式一起进行放大,比如:潜在放大/非潜在放大 + UltimateSDUpscale 插件放大,这样我们放大后的图片效果更好,细节更丰富;我们 refiner 模型细化、图生图、还有我们以后要学习的 文/图生视频 等都可以用这几种方式进行放大;我把这几种放大方法整合在一个工作流中,大家可以对比一下不同方式下的放大效果 文件名 如何下载使用 文件大小 提取码 下载来源 ComfyUI内容22GB6666 点此复制 登录下载- 免责声明
- 本文所包含的观点仅代表作者个人看法,不代表新火种的观点。在新火种上获取的所有信息均不应被视为投资建议。新火种对本文可能提及或链接的任何项目不表示认可。 交易和投资涉及高风险,读者在采取与本文内容相关的任何行动之前,请务必进行充分的尽职调查。最终的决策应该基于您自己的独立判断。新火种不对因依赖本文观点而产生的任何金钱损失负任何责任。