ComfyUI上手合辑 | 更新中
00 分钟
2024-1-13
2024-2-18
/* */
URL
type
status
date
slug
summary
tags
category
icon
password
😀
ComfyUI补充ing
 

01 下载 ComfyUI

ComfyUI
comfyanonymousUpdated Sep 7, 2024
此步需要你将 ComfyUI 代码拉到本地。如果你会 Git 请在 Terminal 运行以下代码,复制粘贴进去,即可完成此步骤:
notion image

02 安装依赖

02-01 进入ComfyUI文件夹

通过Terminal进去下载好的ComfyUI文件夹,复制以下代码到Terminal
看见terminal顶部显示ComfyUI,就表示成功了。

02-02 安装依赖包

复制以下代码到Terminal,如果第一次安装一般需要下载一会。这个时候可以关注下看Terminal有没有报错。

03 启动服务

在 Terminal 里运行,继续输入以下代码
当你看到「To see the GUI go to: http://127.0.0.1:8188」,(opens in a new tab) 就意味着你已经完成了 ComfyUI 的安装,并成功运行。此时你只需要在浏览器里复制黏贴下方地址即可:
http://127.0.0.1:8188/
 
但如果你和我一样不够幸运,报错显示
那就说明你不是M芯片,不能用GPU来运行,只能换成cpu,我们需要改下代码。
现在你可以在浏览器里输入下面这个地址了。
http://127.0.0.1:8188/
你应该能看见这个ComfyUI的默认工作流界面。
notion image
恭喜你完成了最难的第一步。
接下来,我们要给ComfyUI安装各种插件和模型,让它更好用。

04 安装插件

04-01 ComfyUI Manager

ComfyUI 有不少好用的插件可以显著提升你的使用效率。ComfyUI Manager是必须要安装的一个插件,当你正兴奋的看见大佬发了🐂🍺的工作流,想要自己上手复现时,会被满屏的报错红框节点给吓退。
ComfyUI Manager能帮你一键补齐红框缺失的模型和节点,所以必须装上。
 
如果刚刚你还停留在ComfyUI启动的页面。
那就打开terminal按 control+c 先把ComfyUI关闭。
再在terminal里输入
然后和安装ComfyUI一样,terminal 复制粘贴下面这个代码。多试几次,网络有时候不好会失败。
重新启动ComfyUI,需要注意你不能直接输入启动的命令,而是要先将 Terminal cd 到上一个目录(即 ComfyUI 的目录)。
然后就是老办法:
First of all you have to go where the venv folder located. then you should run this -> pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu, activate the venv folder with this -> source venv/bin/activate and start ComfyUI with this command -> PYTORCH_ENABLE_MPS_FALLBACK=1 PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0 python3 main.py --use-split-cross-attention
 
这次会哐哐安一堆包,就耐心的等待,以及观察会不会报错。
当你再次看见 To see the GUI go to: http://127.0.0.1:8188
那就是成功了。此时你可以看见右侧菜单下方,多了一个manager。
notion image
下次加载别人工作流时,可以点manager直接安装缺失的模型和节点。

04-02 Workspace-manager

comfyui-workspace-manager
11cafeUpdated Sep 7, 2024
Workspace-manager可以让用户将工作流集中在ComfyUI界面上,使用起来非常方便。用户只需点击侧边栏切换即可,无需来回在本地保存和替换,还可以通过修改名称快速创建新的工作流程。
安装ComfyUI Workspace Manager非常简单。只需将存储库克隆到ComfyUI根文件夹中,然后重新启动ComfyUI。
 
打开terminal按 control+c 先把ComfyUI关闭。
在terminal里输入
然后和安装ComfyUI一样,terminal 复制粘贴下面这个代码。多试几次,网络有时候不好会失败。
重新启动ComfyUI,需要注意你不能直接输入启动的命令,而是要先将 Terminal cd 到上一个目录(即 ComfyUI 的目录)。
然后就是老办法:
该扩展具有轻松切换工作流程、创建新工作流程和重命名现有工作流程的功能。未来的增强功能包括一键模型安装和工作流程共享,如果工作流的模型在本地没有,将会自动从Huggingface和Civitai下载装载的模型。

04-03 comfy runner

一个帮助你更好的使用 ComfyUI 作为后端服务的项目。可以自动下载所有必要的节点和模型并执行提供的工作流程。具体功能有: ◆自动安装缺失的节点; ◆自动下载工作流程模型。 (检查数据文件夹以了解支持的型号); ◆执行工作流而不启动 UI 服务器; ◆如果工作流程中未找到类似模型,则建议类似模型; ◆可以提供自定义节点和模型的链接以进行安装/设置;

05 安装模型

ComfyUI可以和Stable Diffusion共用一个模型库。所以我们可以先学习下SD有哪些基础模型。

Stable Diffusion v1.5

  • 这是 Stable Diffusion 的的早期版本,目前市场上的很多 Lora 模型以及 ContrlNet 模型都是基于它来构建的,所以在开始使用 ComfyUI 的时候为了少踩坑,建议围绕 1.5 版本进行学习。

Stable Diffusion v2.0

  • 这是 Stable Diffusion 的一个重大更新,相比于 v1.5 版本,它在图像生成质量和速度上都有所提升。
  • 2.0 版本采用了新的文本编码器 OpenCLIP,可以更好地理解文本提示,从而生成更高质量的图像。此外,2.0 版本还支持更高的图像分辨率,可以生成默认分辨率为 512x512 像素和 768x768 像素的图像。

Stable Diffusion XL

  • 这是 Stable Diffusion 的最新版本,它在 2.0 版本的基础上进行了进一步的优化和改进。
  • XL 版本的主要特点是其更大的模型大小,从 0.98B 扩大到 6.6B 参数,这使得它能够生成更高质量的图像。
  • XL 版本还引入了新的功能,如更有艺术感的图像,更真实的图像,以及更清晰可读的字体等。

模型安装位置

下载完模型文件,我们需要把模型放到对应位置
a. 大模型放入“ComfyUI/models/checkpoints”
b. VAE 模型放入“ComfyUI/models/vae”
c. Lora 模型“ComfyUI/models/loras”
 

模型文件共享

如果装有 Web UI 的小伙伴,我们可以使 ComfyUI 和 Web UI 共用一套模型,以防复制大量模型浪费空间。
在 ComfyUI 目录中找到这个叫做 extra_model_paths.yaml.example 的文件。
将此文件重命名为 extra_model_paths.yaml (去掉.example),修改完成后有文本编辑器打开(记事本就可以)。
把里面 base_path:的路径改成你需要共享的 webui 的安装地址。比如我的是“Users/rocket/sd-webui”
controlnet 是否修改取决于你的 controlnet 模型安装在哪个目录,如果和我一样是安装在 controlnet 插件下的,那就改成和我一样的“extensions/sd-webui-controlnet/models”。(如果你 a1111 还是遵循老目录 controlnet 的模型存放目录,还是放在 model/controlnet/ 下,那就不用改)

06 基础操作入门

ComfyUI 上的节点名称
在 SD 模型里对应的名称
解释
CLIP Text Encode
Text Encoder
Stable Diffusion 的 Text Encoder 用的是 CLIP里的Text Encoder 。其实这个组件和Text Encoder是一个东西。只是说这里有两个,但如果你沿着输出端的连线往下看,你会看到两个节点分别连接positive 和 negative 端,这就意味着它们一个是正向prompt,一个代表负向 prompt。
KSmapler
Image Information Creator
这个对应的就是我们的最核心的模型生成图片的部分,在 ComfyUI里名字差异比较大,且配置项很多。
Empty Latent Image
Image Information Creator
整个生图过程是在Latent Space里进行,所以在 ComfyUI里的这个节点叫 Empty Latent Image。
VAE Decoder
Image Decoder
整个生成过程都在Latent Space进行,该过程全称为 Variational Auto Encoder(变分自编码器)简称VAE,所以这个在 ComfyUI里就被称为VAE Decoder了。

07 Checkpoint

Checkpoint包含了三个部分:MODEL、CLIP 还有 VAE
一般你会看到两种后缀的模型:
  • 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 有几个原则:
  1. Prompt 并不是越长越好,尽量保持在 75 个 token(或约 60 个字)以内。
  1. 使用逗号分隔。Stable Diffusion 并不懂语法,所以你需要将画面中的关键词罗列出来,并用逗号分隔。
  1. 越重要的词放在靠前的位置。比如你想要生成一张美丽的风景图,那么你可以将 beautiful scenery nature 放在最前面。
另外,还有个小技巧,你可以输入 (keyword:weight) 方式来控制关键词的权重,比如 (hight building: 1.2 ) 就意味着 hight building 的权重变高,如果填写的权重数小于 1,则意味着这个词的权重会变低,生成的图与这个词更不相关。

Empty Latent Image

然后是空的潜空间图像节点。如果你需要调整最终生成的图片的大小,就需要调整 width(宽)、height(高)这两个值。而 batch_size 则是设置每次运行时生成的图片数量,比如你将这个设置成了 4,就意味着每次会生成 4 张图。
如果你使用的是 SD v1.5 模型的话,最优的大小是 512x512,部分基于 SD v1.5 微调的版本也支持 768x768。所以其常见宽高比有:
  • 1:1(正方形):512x512、768x768
  • 3:2(横向):768x512
  • 2:3(纵向):512x768
  • 4:3(横向):768x576
  • 3:4(纵向):576x768
  • 16:9(宽屏):912x512
  • 9:16 (竖屏): 512x912
如果你使用的是 SDXL 模型的话,最优的大小是 1024x1024,其常见宽高比有:
  • 1:1(正方形):1024x1024、768x768
  • 3:2(横向):1152x768
  • 2:3(纵向):768x1152
  • 4:3(横向):1152x864
  • 3:4(纵向):864x1152
  • 16:9(宽屏):1360x768
  • 9:16(竖屏):768x1360
最后,需要注意宽度和高度必须能被 8 整除。
 

KSampler

最后是 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。
需求
checkpoint
sampler_name
scheduler
step
cfg
非常在意速度
SDXL Turbo fp16
dpmpp_2m(有些软件会叫它 dpm++2M)
normal 或者使用 Turbo 专用 scheduler
1-2
6-8
非常在意图像质量,同时在意生成图片内容多样行
SDXL refiner
dpmpp_2m(有些软件会叫它 dpm++2M)
karras
20-30
6-8
UniPC(相较于 dpmpp_2m 会更快一些)
karras
20-30
1-2
在意图像质量,不太在意多样性,但想提高生成速度
SDXL refiner fp16
dpmpp_sde
karras
10-15
6-8
ddim
normal
10-15
6-8
补充说明下,KSampler 的配置跟模型(checkpoint)比较强相关,比如 SDXL-Turbo 因为对图片生成过程进行了压缩,其最佳 cfg 反而不能太大,实验下来,可能 1 或 4 最好。另外,你在下载别人的模型的时候,作者一般会在模型介绍中写明最佳的参数配置。你可以按照这个配置去设置参数。
 
不错的工作流
 
赛博猫咪
 
大神视频流
 
 
 
视频流
工作流集合站 https://comfyworkflows.com/
 
秋叶大神
参考教程