(本篇内容适用于对ComfyUI感兴趣的小伙伴,如果已经学会了在WebUI里实现同等操作的可以跳过)
自从五一假日结束到现在有一段时间没碰Stable Diffusion了,就有点那种双方分隔太久了后重逢的陌生感,这种东西很难讲的清楚毕竟我也没经历过。
所以接下来这段时间,就有点像重回故地一样,只不过在我身边的不是WebUI而是ComfyUI了。
当然也可以当做我是没活了,毕竟接下来要讲的东西都是在WebUI里面学习过的了,只不过是通过ComfyUI的方式来实现。
而我们今天重游的第一个地方就是曾在WebUI里学习过的高清放大,学过的小伙伴也知道高清放大不仅仅只是让图片变得更加清晰,还能让AI给图片增加许多细节。
这个在WebUI里面实现很容易,而在ComfyUI里面就会需要用工作流的方式来实现。
高清放大
在AI绘画中给生成出来的图片通过高清修复或者超分辨率的手段放大尺寸是非常常见的,在之前学习过的WebUI中就有文生图的高清修复(Hi-res fix)、图生图的SD放大(SD Upscale)以及后期处理中的算法放大。
在ComfyUI中也有类似的工作流,加载工作流的方法也很简单:
https://comfyanonymous.github.io/ComfyUI_examples/
来到这个开发者提供的网页中,选择第一个”Hires Fixaka 2 Pass Txt2Img”,点开后鼠标右键将第一个图片另存为:
然后直接将图片拖拽到ComfyUI中,系统就会自动导入工作流:
这样就是一个非常标准的文生图高清修复工作流了,这个工作流由几个不同的节点组成。
文生图放大:
上图这个就是一个文生图的节点组合,从左到右分别是:Load Checkpoint模型加载器、CLIP Text Encode提示词编码器(上正下负)、KSampler,最下面的Empty Latent(空白潜空间图像)节点可以设定基础的生成尺寸。
提示词参考(正面):
((masterpiece,best quality)),1girl, solo,solo focus,upper body, ultra-detailed ,( beautiful woman ),(idol), extremely detailed CG unity 8k wallpaper,red eyes, brown hair , black thighhighs,outdoors,blue sky,cityscape, street, building,
在输入完提示词之后点击Queue Prompt后就会先在KSampler里生成一张低分辨率的图片,然后输出的Latent信息(潜空间)会被VAE Decode和Save Image两个节点解码保存为图像。
然后再被输入到Upscale Latent组件里,这个Upscale Latent是一个在潜空间里对图像进行缩放的基本节点。
初始图像生成出来是768*768,导入到Upsacle Latent后就会按照设置的尺寸放大到1152*1152。
当然还有一个类似的组件叫做Upscale Latent By,可以按照填入的倍数缩小或放大图片:
而上述的这两种放大都只是单纯的拉伸图片的尺寸,并不会添加任何细节,所以在放大之后Latent还要放进后续的KSampler里进行加工。
Ksampler会再进行一次采样,然后输入到最终的Save Final Image里进行解码成图:
细节上的差距还是很明显的
而在这个过程中最重要的参数是Denoise,这个参数直接决定了第二次生成时去噪的“力度”
在之前的笔记中将高清修复比喻是将文生图的图片“打回来”重新图生图一次,而这个Denoise可以看作是第二次“图生图”时的重绘幅度,这个重绘幅度越大,第二次生成的结果就和第一次越不像,数值到1.0就相当于是一张新的图了(推荐在0.5-0.8)。
最低0.5是因为如果重绘幅度太低的话会容易出现去噪没去干净的情况:
当然有的时候画面太复杂的话0.5的重绘幅度可能导致画面出现多手多脚的情况出现,这里就可以用到另一个工作流。
还是上面网页的第二张图
这个工作流机会稍微复杂一些,在最左侧紫色框中第一次采样的结果会先经过一次解码输出成一张图片,然后再把图片输出到ESRGAN upscale with 4x model使用模型放大的节点里进行放大。
不过在此之前会先用Load Upscale Model放大模型加载器,用这个节点加载一个专门用于图片放大的传统超分辨率模型,进过这个放大器处理之后,输出的图片会再经过Upscale Image的节点调整到最终的尺寸。
其实这个东西的作用和刚刚的Upscale Latent差不多,不过严格上来讲一个操控的是潜空间的数据,另一个则是像素空间里的图片数据。之后得到的图片再进入到下图的VAE编码节点里重新转化为Latent数据进行采样。
在这个工作流中即使是以0.2-0.3这样的低去噪幅度进行二次采样都不会出现噪声痕迹,究其原因是因为先把图片内容给固定了,然后再用专门的超分放大模型进行放大,这些模型不会轻易改变图片原有的内容。
当然这个工作流对于配置较低的设备容易爆显存导致加载速度很慢,而且这个传统模型放大很难给图片增加细节,所以并不是无脑选择这个放大方式就好,还得根据实际情况做决定。
图生图放大:
其实图生图放大只需要对原有的工作流进行些许修改即可,像是刚刚使用的传统工作流:
只需要双击空白地方,输入Load Image后将Image的节点与Upscale Image的image节点相连接即可。
而第一个用的工作流就更简单了:
选择KSampler删除掉,然后还是创建一个Load Image的节点和一个VAE Encode节点,之后按照下图连接即可。
后期处理:
其实还有最后一种放大方式,后期处理就相当于是不带二次采样的放大模型放大。
=
这个就更简单了,搜索加载Load Image、Upscale Image(using Model)、Load Upscale Model和Save Image节点。
-
将Load Image的IMAGE与Upscale Image的image链接起来
-
Upscale Image的upscale_model与Load Upscale Model的UPSCALE_MODEL连接起来
-
Upscale Image的IMAGE与Save Image的images连接起来
如果要设置放大倍数的话还可以添加一个Upscale Image By的节点:
在熟练运用以上的功能之后就可以把高清放大当做零件一样塞进任意一个工作流中啦。
如果自己的设备条件不是很好的小伙伴可能会遇到爆显存的问题,这里可以看一下文末的原教程视频中9:25-11:06部分,之所以我没在这里将是因为这个插件我这会下载不了。
今天的内容就到这里结束啦!
其实还是蛮有趣的,当然我都学完一部分了不有趣我也得接着学。
那么大伙下篇笔记见,拜了个拜!
masterpiece, best quality, 1girl, solo, girls und panzer,medium breasts, straw hat,(sundress:1.4), looking at viewer, :d, blush, cowboy shot, grass field, landscape, blue sky <lora:Takebe Saori:0.6>
Negative prompt: EasyNegative, (worst quality:1.4), (low quality:1.4)
- Steps: 30
- Sampler: DPM++ 2M Karras
- CFG scale: 7
- Seed: 964816728
- Size: 512×512
- Model hash: f27c78faa6
- Model: tmndMix_tmndMixVIPruned (1)
- Denoising strength: 0.7
- Clip skip: 2
- Hires upscale: 2
- Hires upscaler: R-ESRGAN 4x+ Anime6B
- Version: v1.8.0
文章部分素材来源:
https://comfyanonymous.github.io/ComfyUI_examples/
评论0