URL
type
status
date
slug
summary
tags
category
icon
password
ComfyUI补充ing
01 下载 ComfyUI
ComfyUI
comfyanonymous • Updated Sep 7, 2024
此步需要你将 ComfyUI 代码拉到本地。如果你会 Git 请在 Terminal 运行以下代码,复制粘贴进去,即可完成此步骤:
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的默认工作流界面。
恭喜你完成了最难的第一步。
接下来,我们要给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。
下次加载别人工作流时,可以点manager直接安装缺失的模型和节点。
04-02 Workspace-manager
comfyui-workspace-manager
11cafe • Updated 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 版本进行学习。
- 下载链接:v1.5 pruned
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 有几个原则:
- 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 模型的话,最优的大小是 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/
秋叶大神
参考教程