大家好,我是每天分享AI应用的萤火君!
在 SDXL基础模型1.0版本发布时,Stability AI 公司同时发布了一个名为SDXL Refiner的模型。这个Refiner模型是专门设计用来对基础模型生成的图像进行进一步优化和细化的,所以大家也经常称之为精炼器或者精修器。
Refiner模型的主要目的是提升图像的质量,使其在细节和整体视觉效果上更加出色。它可以对生成的图像进行额外的处理,修正一些可能存在的瑕疵,增强图像的锐度和清晰度,以及改进颜色和纹理的表现。
通过结合基础模型和Refiner模型,用户能够生成高质量、细节丰富的图像,适用于各种应用场景,如艺术创作、设计、广告等。这种两阶段的生成过程有助于克服单一模型可能存在的局限性,提供更为精细和高质量的图像输出。
这篇文章我们就来看下如何在ComfyUI中使用Refiner模型。
ComfyUI的安装部署
工欲善其事,必先利其器。要在ComfyUI中学习使用Refiner,大家至少也要有个ComfyUI环境吧。
我这里给大家提供两种使用方式:
一是本地部署 ,不过这需要你手里有一块牛X的Nvidia显卡,能访问外网,还要懂点技术能执行命令。原版ComfyUI手动安装的方法可以看我这篇文章:juejin.cn/post/736476...
二是使用云环境镜像 ,我在AutoDL和京东云上创建了两个镜像,可以一键开启,直接使用内置的若干常见工作流,618期间各个平台都有优惠活动,喜欢的同学不要错过了。镜像的使用方法可以看我这篇文章:mp.weixin.qq.com/s?__biz=Mzk...
使用Refiner模型
我们先来大概看下使用Refiner模型的工作流张什么样子(工作流下载见文末),如下图所示:
这个例子中的节点并不多,下边我给大家逐块分析下。
首先看左边这几个节点,这里边主要是Stable Diffusion基础模型的加载和提示词的编码。
Checkpoint加载器(简易) :这里使用了两个加载器,因为我们先要使用base模型生成一张差不多的图片,然后再使用refiner模型将这张照片细化。
Primitive元节点:这里我们使用两个元节点来承载正向提示词和反向提示词,之前我们都是在"CLIP文本编码器"中输入提示词,为什么现在要使用"Primitive元节点"呢?因为要使用两个模型来生成图片,而且是为了生成同一张图片,那提示词就得用相同的才对;同时为了避免重复编写提示词,我们就需要一种共享节点,这类节点可以输出字符串,我们可以把这类节点的输出连接到多个不同的"CLIP文本编码器",从而实现提示词的共享。
Primitive元节点怎么创建的? 有些同学可能还不理解Primitive元节点,这里做个简单介绍。Primitive元节点即可以承载字符串,也可以承载数字,我们可以在工作区域中空白的地方,使用鼠标左键双击,搜索"元节点"进行创建;或者点击鼠标右键,在"新建节点"->"实用工具"中找到它。
新创建的Primitive元节点比较寒酸,只有一个输出点,我们只要把它连接到其它节点的输入点,Primitive元节点就会华丽变身,根据连接点的数据类型,Primitive元节点会生成不同类型的输入框,如下图所示:
CLIP文本编码器:CLIP文本编码器是将提示词编码为Stable Diffusion模型生成图片时可以理解的数字格式的条件,默认情况下,这些节点是可以直接输入提示词的,我这里对它们进行了一个小的改造,将文本框变成了输入点,以便于共享提示词。因为不同SD模型中的CLIP编码方式存在差别,要实现精确的控制,我们就需要为提示词在每个模型下使用各自的文本编码器,所以这里有四个文本编码器,分别对应到两个模型的正、负提示词。
输入框转换为输入点:有些同学可能还不会,这里啰嗦一下。过程很简单,大家只需要在对应的节点上点击右键,在弹出菜单中找到"转换为输入",然后继续选择要转换为输入点的输入框即可。所有带输入框的节点都可以通过这种方式进行转换。
我们再来看下右边这几个节点,包括:Latent空间、采样器、解码器等。
空Latent :Stable Diffusion能够使用较小的资源(显存和计算量)生成图片,其中的功臣之一就是Latent。Latent是潜空间的意思,比如为了生成一张宽高为512512的图片,Stable Diffusion在内部会使用一个较小的空间来生成,比如6464,然后再解码到512*512,直接减小了64倍的空间使用。为了从文本生成图片,我们需要定义这样一个空的Latent,宽度和高度设置为最终的图片宽高,真正生成时程序内部会选择合适的潜空间大小。
K采样器:这里用了两个,并且把它们连接了起来。前边我们说过,使用Refiner模型时,先使用基础模型生成大部分,然后再使用Refiner模型精修。Stable Diffusion所谓的生成,就是采样,最开始是一张随机噪音的图片(就像电视没有信号时的雪花图像),然后通过不断的采样,保留需要的内容,去除不要的内容,最终产生一张清晰的图片。
注意两个地方:
- 两个采样器中的开始降噪步数和结束降噪步数的值的设置,总共30步,前边24步使用基础模型,后边6步使用Refiner模型。
- 前边采样器的"返回噪波"设置为enable,这样采样器就不会完全去噪,输出的Latent就保留了部分噪音,把它连接到后一个采样器的Latent输入,继续去噪(采样)。不过后边的采样器采样时也可以继续添加噪音,大家可以试试"返回噪波"设置为disable。
VAE解码: 前边已经提过,Stable Diffusion是在潜空间中去噪采样的,最终输出像素图片时还需要解码,一般SD基础模型都自带解码器,看这里模型加载器会输出一个VAE。
我们也可以手动设置一个解码器,注意解码器需要和SD基础模型匹配。
解码之后,我们就可以把图片保存和展示出来了。
资源下载
为了方便大家入门,我整理了一批工作流,包括基本的文生图、图生图、ControlNet的使用、图像的处理、视频的处理等等,发消息"工作流"到公众号"萤火遛AI",即可领取。
另外,我创建了一个AI绘画专栏,加入专栏,可以零门槛,全面系统的学习 Stable Diffusion 创作,让灵感轻松落地!如有需要请点击链接进入:xiaobot.net/post/033402...
以上就是本文的主要内容。
用好 ComfyUI:
- 首先需要对 Stable Diffusion 的基本概念有清晰的理解,熟悉 ComfyUI 的基本使用方式;
- 然后需要在实践过程中不断尝试、不断加深理解,逐步掌握各类节点的能力和使用方法,提升综合运用各类节点进行创作的能力。
我将在后续文章中持续输出 ComfyUI 的相关知识和热门作品的工作流,帮助大家更快的掌握 ComfyUI,创作出满足自己需求的高质量作品。
请及时关注,以免错过重要信息。