【ComfyUI插件】ComfyUI-SUPIR插件
前言:
本插件是由 Kjiai开发的插件,专注于提供图像超分辨率(Super-Resolution)增强功能。SUPIR(Super-Resolution Image Processing in Real-time)插件使用先进的深度学习模型,能够通过智能算法对低分辨率的图像进行修复和增强,提升图像的分辨率和细节,确保图像在放大时能够保持清晰度和质量。
关于具体更详细的高清放大细节:高清放大工作流进行测试和分享(二)
本期使用的示例工作流在网盘:小黄瓜知识星球资料分享/插件节点讲解视频/SUPIR文件夹中
目录
先行:安装方法
一、SUPIR Model Loader(Legacy)/SUPIR Model Loader(v2)/SUPIR Model Loader(v2)(Clip)节点
二、SUPIR Upscale(Legacy)节点
三、SUPIR First Stage(Denoiser)节点
四、SUPIR Encode节点
五、SUPIR Decode节点
六、SUPIR Conditioner节点
七、SUPIR Sampler节点
八、SUPIR Tiles Preview节点
安装方法
1、在manager里搜索SUPIR,然后点击安装即可
2、在custom_nodes目录下调用cmd
然后输入git clone https://github.com/kijai/ComfyUI-SUPIR.git ,回车后即可完成安装
项目地址:https://github.com/kijai/ComfyUI-SUPIR.git
模型下载地址
通过网盘分享的文件:Super图片修复模型
链接: https://pan.baidu.com/s/1sg4CvKRALWOE_5ufQt2ppA?pwd=dv4y 提取码: dv4y
下载完成后将文件夹放到__ComfyUI\models\checkpoints__目录下即可
一、SUPIR Model Loader(Legacy)/SUPIR Model Loader(v2)/SUPIR Model Loader(v2)(Clip)节点
节点功能:SUPIR_model_loader 是一个加载和合并 SUPIR 模型与 SDXL 模型的节点。而SUPIR Model Loader (v2)节点只加载SUPIR 模型,需要另外使用Load Checkpoint节点来搭配使用。SUPIR Model Loader (v2)(Clip)节点则将clip模型分为clip_l、clip_g模型进行分开加载。
SUPIR Model Loader (v2)
SUPIR Model Loader (v2)(Clip)
上面这三种加载模型的方式功能都一样。
二、SUPIR Upscale(Legacy)节点
节点功能:该节点是一个使用supir修复模型和sdxl模型组合进行放大的封装节点,功能是放大图片,且能较好保持图片放大细节(注意:这是一个已经停止更新的节点,如果想用最新功能还是使用后面的节点组合更好)
参数:
image: 输入的准备放大的图片
captions: 可选输入项,目的是添加对输入图片的主体描述,使放大更符合预期,这个会和后面的正面提示词框内提示词组合形成最终的正面提示词
- supir_model: 选择想要使用的supir修复模型,这里有两种可以选择:
- supir-v0F模型,这个模型适用于光衰减的图片放大情况
sdxl_model:选择合适的sdxl模型进行放大,如果想要在较小的步数下完成放大效果,可以使用sdxl lightning模型
seed: 种子数
control_before_generate: 选择种子的生成方式,可以随机、固定、增加或者减少种子数
resize_method: 缩放的方法,按需选择,一般选择bicubic或者lanczos效果较好
scale_by: 想要放大的图片比例,默认是1.00,也就是和原图大小一样
steps: 图片采样的步数,越高步数下效果越好,但是生成速度也越慢,可以根据自己需要选择合适的步数
restoration_scale: 修复范围,默认是-1,参数范围从-1到6;提升修复范围,画面在放大后修复会有轻微的差别,提升修复效果,但是也并不是一定越大越好,选择适当即可
cfg_scale: 引导提示词作用效果的数值,默认是4,根据自己需要选择,一般默认即可
a_prompt框: 正面提示词框,一般选择默认即可
n_prompt框: 负面提示词框,一般选择默认即可
s_churn: 搅动参数,EDM采样器下的参数,默认是5,参数范围从0到6,这个参数调大会增加一定细节,但增加的细节并不一定是我们想要的,所以还是需要根据实际使用进行调节,一般默认即可
s_noise: 噪声参数,默认值:1.003, 参数范围从1.000到1.100,这个参数增大会增加图片纹理感,但注意的是纹理不是越大越好,所以还是需要根据实际使用进行调节,一般默认即可
control_scale: 控制范围,从0到10,默认是1,小于1会受提示词影响比较多,大于1会受原始图片影响比较多,大于2之后基本就不可用了,一般使用默认即可
cfg_scale_start: cfg起始权重,默认是4,也就是和cfg_scale相同权重,如果设置不同,则会在生成图片过程,权重线性变化,比如cfg起始权重是1,cfg权重是4,那么生成过程就会从1到4线性增加cfg权重。(注意,设置cfg起始权重为0,则会默认等同于前面cfg权重设置值)
control_scale_start: 控制范围起始权重,默认是0,和1.0设置效果一样,如果设置不为0或者1,则权重会线性变化,比如控制范围起始权重是0.3,那么生成过程则会从0.3向1.0进行权重的线性变化
color_fix_type: 颜色矫正方式,默认是Wavelet ,一共3个选择:None, Wavelet,Adain, 选择需要的方式即可
keep_model_loaded: 是否保存加载模型到显存
use_tiled_vae: 是否使用tiled vae,默认是,可以节省显存
encoder_tile_size_pixels: 编码器的分块编码像素大小设置,默认512,如果输入图片比较大,可以根据自己需要适当提高,缺点是会增加显存使用,但可能会节省一定编码时间
decoder_tile_size_pixels: 解码器的分块解码的潜空间大小设置,默认64,如果前面编码器的分块像素大小设置比较大,这里也可以适当加大,缺点是会增加显存使用
diffusion_dtype: 扩散模型数据类型,分为fp16、bf16、fp32、auto,一般选择auto,进行自动选择即可
encoder_dtype: 编码器类型,分为bf16、fp32、auto。一般选择auto,进行自动选择即可
batch_size:一批生成的图片数量,默认是1
use_tiled_sampling: 是否使用分块采样
sampler_tile_size:分块采样大小设置,在前面使用分块采样为true时生效,默认1024
sampler_tile_stride:分块采样步长设置,在前面使用分块采样为true时生效,默认512
fp8_unet:是否使用fp8的unet模型,默认false,使用会降低显存,但生成图片质量也会略有下降
fp8_vae:是否使用fp8的vae,默认false,使用会降低显存,但生成图片质量也会略有下降
sampler: 采样器,一共两种采样器:RestoreEDMSampler、RestoreDPMPP2Msampler, 默认是RestoreEDMSampler采样器,根据需要选择就行
upscaled_image: 输出的放大图片
其中,__s_noise__参数和纹理细节有关,如下图,当__s_noise__调大至1.1后,图像出现了更多的纹理细节。
其他参数有一些细微的细节变化,大家可以使用__Image Comparer (rgthree)__节点对两张图进行对比(对两张图合成的图片进行左右滑动)。
三、SUPIR First Stage(Denoiser)节点
节点功能:SUPIR_first_stage 是 SUPIR 模型的“第一阶段”处理节点,主要负责对输入图像进行编码和解码操作。其主要目的是通过 SUPIR 模型的“denoise_encoder”来修复图像中的压缩伪影(如噪点、模糊等),从而改善图像质量。这个过程通常会导致一定程度的模糊,属于图像处理中的去噪和修复阶段。
参数:
use_tiled_vae: 是否启用分块 VAE 处理。在大图像时,分块处理可以减少内存消耗,提升处理效率。
encoder_tile_size: 编码器在分块模式下每个块的大小。用于分块 VAE 模式时,每个图像块的尺寸。
decoder_tile_size: 解码器在分块模式下每个块的大小。用于分块 VAE 模式时,每个图像块的尺寸。
encoder_dtype: 编码器使用的浮动点精度。auto 会根据硬件自动选择精度,或者可以手动指定。
如下图所示,该节点主要对图片进行降噪处理
四、SUPIR Encode节点
节点功能:该节点负责将输入图像通过 SUPIR 模型的编码器转化为潜在空间表示。这个过程将图像从其原始空间映射到一个潜在空间,在该空间中,图像的高级特征(如形状、纹理、颜色等)被表示为更紧凑的向量或张量。编码后的潜在空间可以用于后续的图像生成、修改或其他任务。
参数:
use_tiled_vae: 是否启用分块 VAE 处理。在大图像时,分块处理可以减少内存消耗,提升处理效率。
encoder_tile_size: 编码器在分块模式下每个块的大小。用于分块 VAE 模式时,每个图像块的尺寸。
encoder_dtype: 编码器使用的浮动点精度。auto 会根据硬件自动选择精度,或者可以手动指定。
该节点相比于传统的__VAE Encode__节点增加了图片分块以及精度计算方法,在显存上会占用少一些,但处理速度会变慢,功能是一样的。
五、SUPIR Decode节点
节点功能:该节点负责将潜在空间中的表示(通常来自 SUPIR Encode)解码回图像空间。它通过 SUPIR 模型的解码器,将潜在向量转换为图像。这个过程通常用于图像重建或生成任务。
参数:
use_tiled_vae: 是否启用分块 VAE 处理。在大图像时,分块处理可以减少内存消耗,提升处理效率。
decoder_tile_size: 解码器在分块模式下每个块的大小。用于分块 VAE 模式时,每个图像块的尺寸。
六、SUPIR Conditioner节点
__节点功能:主要用于根据给定的正向和负向提示(prompt)生成相应的条件(condition),以便在后续的图像生成过程中作为输入。
__
输入:
SUPIR_model: 指定使用的SUPIR模型。此模型将用于生成条件和无条件的输出。
latents: 输入的潜在图像数据,包含图像的“样本”数据。样本可以是从一个已训练模型中提取的图像潜在表示。
captions: 为每个输入图像提供的标题或文本描述。此输入是可选的,若没有提供则默认为空字符串。
从输出项可以看到,一般需要搭配Sampler采样器使用。
七、SUPIR Sampler节点
节点功能:SUPIR_conditioner 用于生成条件(positive 和 negative)以供后续采样过程使用,而 SUPIR_sample 则实际执行图像生成的过程,使用条件化的提示进行采样。这两个节点联合工作,SUPIR_conditioner 为 SUPIR_sample 提供条件化数据(即正向和负向提示),SUPIR_sample 使用这些条件和潜在噪声生成最终的图像样本。
参数:
seed: 种子数
control_before_generate: 选择种子的生成方式,可以随机、固定、增加或者减少种子数
steps: 图片采样的步数,越高步数下效果越好,但是生成速度也越慢,所以可以根据自己需要选择合适的步数
cfg_scale_start: cfg起始缩放权重,默认是4
cfg_scale_end: cfg结尾缩放权重,默认是4
EDM_s_churn: 搅动参数,EDM采样器下的参数,控制扩散过程对噪声水平变化的适应率,默认是5,参数范围从0到6,这个参数调大会增加一定细节,但增加的细节并不一定是我们想要的,所以还是需要根据实际使用进行调节,一般默认即可
s_noise: 噪声参数,默认值:1.003, 参数范围从1.000到1.100,这个参数增大会增加图片纹理感,但注意的是纹理不是越大越好,所以还是需要根据实际使用进行调节,一般默认即可
DPMPP_et: 影响DPMPP采样的参数,通过调整去噪方式来影响扩散过程的比例因子,其过程会随着时间推移而适应噪音水平的变化,默认是1,参数范围从0到10,这个参数调大会增加画面细节变化,会使画面变得更平滑,但也不是越大越好,如对照片类,调节的过大会使图片变得油腻
control_scale_start=: 控制范围起始权重,默认是1,注:小于1会受提示词影响比较多,大于1会受原始图片影响比较多,大于2之后基本就不可用了,一般使用默认即可
control_scale_end: 控制范围结尾权重,默认是1,注:小于1会受提示词影响比较多,大于1会受原始图片影响比较多,大于2之后基本就不可用了,一般使用默认即可
restore_cfg: 控制扩散过程中对原始图像的恢复程度,默认是1
keep_model_loaded: 是否保持模型是否处于加载状态
sampler: 采样器,一共两种采样器:
RestoreEDMSampler、RestoreDPMPP2Msampler(EDM 取样器需要很多步骤,但通常具有更好的质量;DPMPP 采样器适用于较低步长,适用于闪电模型)
sampler_tile_size: 采样器分块大小设置,默认1024
sampler_tile_stride: 采样器分块步长设置,默认512
latent: 输出的潜空间图片
八、SUPIR Tiles Preview节点
节点功能:节点的功能是将输入图像切分为多个小块(tiles),以便用于逐块处理。
参数:
tile_size: 每个分块的大小(宽度和高度),单位为像素。默认值为 512,最小为 64。制每个瓦片的尺寸,影响切分后的图像块大小。
tile_stride: 每次滑动的步幅,单位为像素。控制切分过程中的重叠度。步幅越大,分块之间的重叠部分越少;步幅越小,重叠部分越多。
其中__分块数目= [(w-tile_size)/tile_stride+1 ] * [(h-tile_size)/tile_stride+1 ]__