上一期,我在ubuntu上部署了comfyui:http://x521.top/index.php/2023/12/28/comfyui-ubuntu/下面详细讲解一下如何使用comfyui。
上期忘记讲一点,在使用AMD显卡运行时需要根据AMD显卡的不同型号使用不同命令运行,否则comfyui会出现无法出图的情况。
对于 6700、6600 和其他 RDNA2 或更早版本:
HSA_OVERRIDE_GFX_VERSION=10.3.0 python main.py
对于 AMD 7600 和其他 RDNA3 卡:
HSA_OVERRIDE_GFX_VERSION=11.0.0 python main.py
因为我这里是6000系显卡所以采用10.3版本,如下图:
直到出现链接:http://127.0.0.1:8188/,在上篇文章最后中我推荐安装了常用的插件,包括模型下载,插件管理,汉化补丁等,汉化在点击设置按钮进入后选择语言,切换即可(建议还是使用英文界面):
下面用初始的模块跑一张图,输入正反提示词后点击【queue prompt】:
基本上512×512分辨率下为3秒一张图,生成的效果看起来还是不错的。
为了方便后续的介绍,我先简单介绍下里面的一个个方块。这个方块后续会称其为 Node(节点),其左侧端点是 Input(输入)端,右侧是 Output(输出)端,节点里还会有一些配置项,这些配置项我会称其为 Parameter(参数):
初始 Workflow 上的这些块块(后续我会用「节点」来称呼这些块块),其实就是前面一章中提到的 Stable Diffusion 包含的三大组件,只是这些组件在 ComfyUI 里名字不太一样而已:
然后两端各有两个上一章没有提到的东西:
Save Image:顾名思义,就是保存输出后的图片。
Load Checkpoint:这个你可以理解为图片模型加载器。比如 Stable Diffusion 就有 1.5、XL、XL-Turbo 等版本,要切换或载入不同的模型,就需要用到这个节点。
介绍完整个 Workflow 之后,你可以点击右侧面板上的 Queue Prompt 按钮,就可以生成图片了。
节点介绍
看完整个 Workflow 后,我们再来详细介绍下每个节点的配置。我们从左往右开始介绍各个节点。
Load Checkpoint【checkpoint加载器】
第一个是 Load Checkpoint,从节点的右边输出端点可以看出,Checkpoint 包含了三个部分:MODEL、CLIP 还有 VAE,这三部分其实就是之前介绍的 Stable Diffusion 的模型三大步骤。可以说这个节点是所有 Workflow 的起点。
点击节点里的选项按钮可以切换模型,这里只能切换你已经下载好的模型。
说到模型,我想再强调下,一般你会看到两种后缀的模型:
safetensors:这种模型一般用的是 numpy 格式保存,这就意味着它只保存了数据,没有任何代码,加载这类文件会更安全和更快。
ckpt:这种文件是序列化过的,这意味着它们可能会包含一些恶意代码,加载这类模型就可能会带来安全风险。
我建议各位优先下载和使用 safetensors 后缀的模型文件。
另外,你还可能看到有些模型在名字里会标注为 fp16,这是什么意思呢?
这个是 half-precision floating point format,即半精度浮点格式。这种格式相比标准的 32 位浮点数,占用的存储空间更小,且运算速度更快。但它生成图片的精度,以及多样性相较完整版会稍微差一些。所以如果你想要更快得出结果,可以考虑 fp16 版本的模型。
CLIP Text Encode(Prompt)【空文本编辑器】
接着是 CLIP Text Enocde 节点,CLIP 全称是 Contrastive Language-Image Pre-training,即对比文本图像预训练。这个节点主要是输入 Prompt。一般会有两个这样的节点,一个是正向的 Prompt,列你希望在图片中看到的内容;另一个是负向的 Prompt,列你不希望在图片中出现的内容。
一般说来,写 Stable Diffusion 的 prompt 有几个原则:
Prompt 并不是越长越好,尽量保持在 75 个 token(或约 60 个字)以内。
使用逗号分隔。Stable Diffusion 并不懂语法,所以你需要将画面中的关键词罗列出来,并用逗号分隔。
越重要的词放在靠前的位置。比如你想要生成一张美丽的风景图,那么你可以将 beautiful scenery nature 放在最前面。
另外,还有个小技巧,你可以输入(keyword:weight)方式来控制关键词的权重,比如(hight building: 1.2 )就意味着 hight building 的权重变高,如果填写的权重数小于 1,则意味着这个词的权重会变低,生成的图与这个词更不相关。
Empty Latent Image【图像设置】
然后是空的潜空间图像节点。如果你需要调整最终生成的图片的大小,就需要调整 width(宽)、height(高)这两个值。而 batch_size 则是设置每次运行时生成的图片数量,比如你将这个设置成了 4,就意味着每次会生成 4 张图。
如果你使用的是 SD v1.5 模型的话,最优的大小是 512×512,部分基于 SD v1.5 微调的版本也支持 768×768。所以其常见宽高比有:
1:1(正方形):512×512、768×768
3:2(横向):768×512
2:3(纵向):512×768
4:3(横向):768×576
3:4(纵向):576×768
16:9(宽屏):912×512
9:16 (竖屏): 512×912
如果你使用的是 SDXL 模型的话,最优的大小是 1024×1024,其常见宽高比有:
1:1(正方形):1024×1024、768×768
3:2(横向):1152×768
2:3(纵向):768×1152
4:3(横向):1152×864
3:4(纵向):864×1152
16:9(宽屏):1360×768
9:16(竖屏):768×1360
最后,需要注意宽度和高度必须能被 8 整除。
你可能会好奇,为何有些模型图片大小设置成 512X512,生成的效果会非常诡异(比如两个人头),而有一些模型,比如 SDXL 默认大小就是 1024×1024 呢?主要的原因是这些模型在训练的时候,训练的图片大小不同,像 SDXL 训练用的就是更大的图片。如果拿雕刻做类比的话,这些模型就像是雕刻家,他们需要通过训练学习的方式学会雕刻大理石。而有一些雕刻家在学的时候,用的就是 1024×1024 的大理石,没有学过 2048×2048,所以雕刻大的大理石效果反而不好。
Save Image【保存图片】
完成图片生成后,对着图片点击右键,会看到「Save Image」的选项,点击此按钮就可以下载生成好的图片。节点里的输入框,则是设置图片名称的前缀。比如默认是 ComfyUI,那就意味着你保存的图片的文件名是 ComfyUI 开头,后面跟着一串数字。
KSampler【K采样器】
最后是 KSampler,Sampler 中文名称是采样器,如果你想详细了解采样器,可以阅读相关进阶教程,而基础教程只会告诉你如何使用。KSampler 包含以下参数:
seed:这个是随机种子,它主要用于控制潜空间的初始噪声。如果你想重复生成一模一样的图片。就需要用到这个随机种子。需要注意种子和 Prompt 都要相同,才能生成一模一样的图。举个例子,你可以使用 Default Workflow 的默认 Prompt(beautiful scenery nature glass bottle landscape, purple galaxy bottle),生成一张图片。接着将这个随机种子 copy 下来比如 156680208700286,然后将 Prompt 里的 purple 改成 green,生成一张新的图片,再将之前复制的种子 156680208700286 覆盖黏贴到新种子上,然后将 Prompt 改回原来的 purple,重新生成图片。你会发现此时生成的图片与第一次生成的图片是一模一样的。
control_after_generate:每次生成完图片后,上面的 seed 数字都会变化,而这个配置项,则是设置这个变化规则:randomize(随机)、increment(递增 1)、decrement(递减 1)、fixed(固定)。
step:采样的步数。一般步数越大,效果越好,但也跟使用的模型和采样器有关。
cfg:全称 Classifier Free Guidance,我在 SD 基础一章中有介绍过,这个值设置一般设置为 6~8 之间会比较好。
sampler_name:采样器名称。你可以通过这个来设置采样器算法。如果你对它感兴趣,可以阅读相关的进阶教程。
scheduler:调度器主要是控制每个步骤中去噪的过程。你可以通过它选择不同的调度算法,有些算法是选择每一步减去相同数量的噪声,有些则是每一步都尽可能去掉多的噪声。
denoise:表示要增加多少初始噪声,1 表示全部。一般文生图你都可以默认将其设置成 1。
最佳实践
在各个配置项中,除了模型会影响出图的结果外,其次就是 KSampler 的几个配置项,进阶教程会分享各个采样器的特点,下面分享下最佳效果设定:
补充说明下,KSampler 的配置跟模型(checkpoint)比较强相关,比如 SDXL-Turbo 因为对图片生成过程进行了压缩,其最佳 cfg 反而不能太大,实验下来,可能 1 或 4 最好。另外,你在下载别人的模型的时候,作者一般会在模型介绍中写明最佳的参数配置。你可以按照这个配置去设置参数。
下面是web界面操作的快捷键
上面功能和设定,同学可以在web界面尝试一下。
领取专属 10元无门槛券
私享最新 技术干货