本教程是 2024 年最新的SD ComfyUI入门指南,专为初学者设计,详细讲解如何搭建放大工作量流。通过逐步指导,让您轻松掌握SD ComfyUI的高级功能,提升AI绘图的效率和规模。
我们以文生图后的图片进行放大,在开始之前我们打开之前搭建的文生图基础流程。
1. 模型放大:
模型放大是最简单,也是效果最差的放大方式,他就和我们在 Web UI 上使用后期处理进行放大一样,只是通过放大算法对图像直接放大(也就是图像空间放大),这也会导致我们放大的图片损失细节,甚至看起来会很腻很假;
虽然上面说的一无是处,但是使用他搭配在其他的放大方式上效果就大大增强,我们先看一下怎么使用模型放大吧;
“右键-新建节点-图像-放大-图像通过模型放大”
左侧的“放大模型”通过拖拽连接“放大模型加载器”(“右键-新建节点-加载器-放大模型加载器”进行连接也可以);
由于我们对标的是WebUI的后期放大,我们都知道后期放大是在图片生成完成后发送到后期处理再放大,所以我们自然的在ComfyUI中,把VAE解码后的图像链接到我们的模型放大,让后模型放大在输出到保存图像节点
所以在默认的文生图工作流中只有后面这一坨是我们修改的
模型放大是直接根据所选放大模型进行放大的,一般都是放大 4 倍。
对比放大效果
模型放大效果
2. 潜在放大:
在 Web UI 上我们进行高分辨率修复的时候,我们会看到在选择放大算法时,有 Latent 开头的几个算法可选择,这其实就是我们进行潜在放大所需要用到的流程;
所以潜在放大就是还原WebUI高分辨修复的过程
潜在放大就是在原图上进行缩放,然后对缩放后的图像进行重新采样,进而增加细节达到放大的目的;
由于我们对图片放大还需要进行“VAE 解码、图片放大、VAE 内补编码”这三个步骤,所以我们可以直接对 Latent 进行放大;
“右键-新建节点-Latent-Latent 缩放/Latent 按系数缩放”,可以看到我这边放了两个节点,这两个节点一个是需要设置宽高、一个是根据倍数放大,根据自己的需要选择就好;
我们只需要在原文生图K采样器输出的Latent连接我们的潜空间放大,然后按下图接上K采样——VAE解码——保存图像,下方是我连接好的工作流,这里我选择的是“Latent 按系数缩放”,这个比较方便一些,大家也可以选择“Latent 缩放”
注意:降噪数值一定要在 0.5 左右,数值过低会有崩坏的情况。放大倍数也不要太大,太大同样会有崩坏的情况
对比之前的效果,潜空间放大除了可以把画面修复的更清楚还会增加一些原来没有的细节,这也和我们在WebUI中的高分辨修复重绘幅度对照上了
3. 潜空间放大+模型放大
这相当于我们在WebUI中高分辨修复后再放到后期处理的过程
所以我们只要在刚刚潜空间放大的VAE解码后面再链接个模型放大
4. 分块放大:
①非潜在放大要得到一张 4K 图需要很高的显存,但是我们可以通过分块放大,使用较小的显存出更大的图。
②分块放大其实就是把一张图切成 n 个块,然后对小块进行重新采样,最后把小块拼接在一起。他的好处是可以使用更小的显存得到一张更大分辨率的图;
③分块放大是需要用到一个插件的: https://github.com/BlenderNeko/ComfyUI_TiledKSampler.git (压缩包解压安装、git 拉取、管理器安装都可以)
④我们需要用到这个插件中的“分块采样器”,“右键-新建节点-采样器-K 采样器(分块)”,他同样有一个高级采样器,这个我们要进行 refiner 模型细化的时候可以使用。
⑤来看一下和我们的普通采样器有什么区别吧,只多了三个操作,分块宽度、分块高度、无缝分块策略
【分块宽度、分块高度】
是指我们放大时每一次进行分块采样时绘制的宽高;
-
数值不要太小(根据你放的后图片的大小决定,比如我要放大成 2048*2048,我是设置为 1024*1024 的)
-
数值越小分的块越多,分的块越多也就越慢;也会增加出现伪影的几率(比如你生成猫,你会在某些小区域得到猫的影子,即使你降噪数值小也会出现不同程度的伪影)
【无缝分块策略】
是指在我们分块采样的每一块相接处会出现明显的拼接痕迹,而无缝分块策略就是通过不同的方式减少拼接痕迹的,有四种可选策略,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 放大):
除了以上介绍的放大方法我们还可以借助WebUI的插件再放大,我们在ComfyUI管理器中点击节点管理。如果没有管理器的小伙伴可以看我们之前的插件安装教程,有介绍如何安装ComfyUI管理器
搜索scale找到ssitu这个作者的插件,安装后重启comfyui即可
③“右键-新建节点-图像-放大-SD 放大”,这个插件有两个功能,一个是细节修复+放大(SD 放大),一个是细节修复(SD 放大(不放大))。我们主要用到的是 SD(放大),他们的区别只是是否连接放大模型;
我们可以看到有很多的参数,不过你如果有用过WebUI的分块放大是完全没有压力的。因为这就是我们之前的“模型放大+分块放大”进行了一个组合
我们可以看到这个节点和我们上面用的“K 采样器(分块)”很相似对吧,这个地方我们主要去关注以下几个操作就可以了
【mode_type(模式类型)】
Linear(直线):逐行进行拼接(更快,但是会有几率出现伪影,我们默认使用这个)Chess:棋盘拼接 ,可以理解成“X”形状的拼接样式(慢一些,出现伪影的几率小)
【mask_blur(模糊)】
拼接区域的羽化程度,默认 8 就可以,融合不好的情况下适当调高
【Tile_padding(分块区域)】
相邻融合像素,和我们上面说的 padded(填充)策略一样,不过这个插件我们可以设置融合像素的值
【 seam_fix_mode(接缝修复模式)】
有三种模式选择,Band Pass(速度快)、Half Tile(质量好)、Band Pass+Half Tile(速度和质量做一个折中)。默认选择None也可以
连接就更简单了,连接一个“放大模型加载器”,其他的就按照名字连接就可以;
当然实际使用中我们这些放大的放大不都一定是单独使用的,往往需要结合其他放大方法会有更好的效果
总结
-
“模型放大”最快也是效果最差,最不推荐的。我常用的是“非潜在放大”和“UltimateSDUpscale 插件放大”;
-
每个放大方式都有利弊,我们完全可以多种方式一起进行放大,比如:潜在放大/非潜在放大 + UltimateSDUpscale 插件放大,这样我们放大后的图片效果更好,细节更丰富;
-
我们 refiner 模型细化、图生图、还有我们以后要学习的 文/图生视频 等都可以用这几种方式进行放大;
-
我把这几种放大方法整合在一个工作流中,大家可以对比一下不同方式下的放大效果