文章目录
-
- [一、关于 ComfyUI](#一、关于 ComfyUI)
- 二、安装
-
- 1、Windows
- [2、Jupyter Notebook](#2、Jupyter Notebook)
- 3、手动安装(Windows、Linux)
- 三、运行
- 四、笔记
一、关于 ComfyUI
- github : https://github.com/comfyanonymous/ComfyUI
- 矩阵空间:#comfyui_space:matrix.org : https://app.element.io/#/room/%23comfyui_space%3Amatrix.org (类似 discord 但开源)。
ComfyUI 是最强大和模块化的stable diffusion GUI和后端。
此用户界面将允许您使用基于图形/节点/流程图的界面设计和执行高级stable diffusion 管道。
有关一些工作流程示例并查看ComfyUI可以做什么,您可以查看:
- ComfyUI示例 : https://comfyanonymous.github.io/ComfyUI_examples/
- 安装ComfyUI : https://github.com/comfyanonymous/ComfyUI#installing
特点
- 节点/图形/流程图界面,用于试验和创建复杂的stable diffusion 工作流程,而无需编写任何代码。
- 全面支持SD1. x、SD2.x、SDXL、Stable Video Diffusion、Stable Cascade和SD3
- 异步队列系统
- 许多优化:仅重新执行在执行之间更改的工作流部分。
- 命令行选项:
--lowvram
使其在小于3GB vram的GPU上工作(在vram较低的GPU上自动启用) - 即使你一个GPU也没有,也可以运行,使用:
--cpu
(慢) - 可以加载ckpt、安全传感器和扩散器模型/检查点。独立的VAE和CLIP模型。
- 嵌入/文本倒置
- Loras(常规、locon和loha)
- Hypernetworks
- 从生成的PNG文件加载完整的工作流(带有种子)。
- 将工作流保存/加载为Json文件。
- 节点接口可用于创建复杂的工作流,如Hires修复或更高级的工作流。
- 面积构成
- 修复与常规和修复模型。
- ControlNet 和 T2I-Adapter
- 高级模型(ESRGAN、ESRGAN变体、SwinIR、Swin2SR等...)
- unCLIP模型
- GLIGEN
- 模型合并
- LCM模型 和 Loras
- SDXL涡轮增压
- 潜在预览与TAESD
- 启动得很快。
- 完全离线工作:永远不会下载任何东西。
- 配置文件来设置模型的搜索路径。
工作流示例可以在示例页面 查看。
快捷键
对于macOS用户,Ctrl也可以替换为Cmd
键绑定 | 说明 |
---|---|
Ctrl+Enter | 将当前图形排队生成 |
Ctrl+Shift+Enter | 将当前图形作为第一个排队生成 |
Ctrl+Z/Ctrl+Y | 撤消/重做 |
Ctrl+S | 保存工作流 |
Ctrl+O | 加载工作流 |
Ctrl+A | 选择所有节点 |
Alt+C | 折叠/解折叠选定节点 |
Ctrl+M | 静音/取消静音选定节点 |
Ctrl+B | 旁路选定节点(就像节点从图形中删除,电线通过重新连接一样) |
删除/退格 | 删除选定节点 |
Ctrl+退格 | 删除当前图形 |
空间 | 按住画布并移动光标时移动画布 |
Ctrl/Shift+单击 | 将单击的节点添加到选择 |
Ctrl+C/Ctrl+V | 复制和粘贴选定节点(不保持与未选择节点的输出) |
Ctrl+C/Ctrl+Shift+V | 复制和粘贴选定节点(保持从未选择节点的输出到粘贴节点的输入的连接) |
Shift+Drag | 同时移动多个选定节点 |
Ctrl+D | 加载默认图形 |
Alt++ |
画布放大 |
Alt+- |
画布缩小 |
Ctrl+Shift+LMB+垂直拖动 | 画布放大/缩小 |
Q | 切换队列的可见性 |
H | 切换历史可见性 |
R | 刷新图形 |
双击LMB | 打开节点快速搜索调色板 |
QA
你为什么做这个?
我想详细了解stable diffusion 是如何工作的。我还想要一些干净而强大的东西,让我不受限制地试验SD。
这是给谁的?
这适用于任何想要使用SD制作复杂工作流程或想要了解更多SD工作原理的人。
界面密切关注SD的工作原理,代码应该比其他SD UI更容易理解。
二、安装
1、Windows
有一个适用于Windows的可移植独立版本,应该适用于在Nvidia GPU上运行或仅在发布页面上运行在CPU上。
直接链接下载
只需下载,用7-Zip提取并运行。确保你把你的stable diffusion checkpoints/models
(巨大的 ckpt/safetensors
文件)放在: ComfyUI\models\checkpoints
如果您无法提取它,右键单击 文件 --> 属性 --> 解除屏蔽
如何在另一个UI和ComfyUI之间共享模型?
请参阅配置文件以设置模型的搜索路径。在独立窗口构建中,您可以在ComfyUI目录中找到此文件。
将此文件重命名为 extra_model_paths. yaml
并使用您喜欢的文本编辑器 对其进行编辑。
2、Jupyter Notebook
要在纸质空间、kaggle 或 colab 等服务上运行它,你可以使用我的Jupyter笔记本 : https://github.com/comfyanonymous/ComfyUI/blob/master/notebooks/comfyui_colab.ipynb
3、手动安装(Windows、Linux)
Git克隆这个repo。
将您的SD checkpoints(巨大的 ckpt/safetensors
文件)放入 : models/checkpoints
将您的VAE放入:models/vae
AMD GPU(仅Linux)
如果您还没有安装,AMD用户可以使用pip安装rocm和pytorch,这是安装稳定版的命令:
shell
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.0
这是使用ROCm 6.0 安装夜间的命令,它可能会有一些性能改进:
shell
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.1
Nvidia
Nvidia用户应使用以下命令 安装稳定的pytorch:
shell
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
这是每晚安装pytorch的命令,它可能会提高性能:
shell
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu124
故障排除
如果您收到"未在启用CUDA的情况下编译Torch"错误,请使用以下方式卸载torch:
shell
pip uninstall torch
并使用上面的命令再次安装它。
依赖
通过在ComfyUI文件夹中打开您的终端来安装依赖项,然后:
shell
pip install -r requirements.txt
在此之后,您应该已经安装了所有内容,并且可以继续运行ComfyUI。
其他:
英特尔GPU
英特尔GPU支持适用于英特尔Pytorch扩展(IPEX)支持的所有英特尔GPU,支持安装页面中列出的支持要求。选择您的平台和安装方法,并按照说明进行操作。步骤如下:
- 首先安装上面链接的IPEX安装页面中列出的或更新的驱动程序或内核,如果需要Linux。
- 按照说明为您的平台安装英特尔的oneAPI Basekit。
- 使用平台安装页面中提供的说明安装IPEX软件包。
- 按照适用于Windows和Linux的ComfyUI手动安装说明,并在安装所有内容后如上所述正常运行ComfyUI。
更多的讨论和帮助可以在这里找到。
Apple Mac silicon
您可以使用任何最新的macOS版本在Apple Mac芯片(M1或M2)中安装ComfyUI。
- 每晚安装pytorch。有关说明,请阅读Mac Apple开发人员指南上的加速PyTorch培训(确保每晚安装最新的pytorch)。
- 按照Windows和Linux的ComfyUI手册安装说明进行操作。
- 安装ComfyUI依赖项。如果您有另一个stable diffusion 用户界面,您可能能够重用这些依赖项。
- 启动ComfyUI通过运行
python main.py
注意 :请记住将您的模型、VAE、LoRA等添加到相应的Comfy文件夹中,如ComfyUI手动安装中所述。
DirectML(Windows上的AMD卡)
shell
pip install torch-directml`然后你可以用:`python main.py --directml
我已经安装了另一个用于stable diffusion 的UI,我真的必须安装所有这些依赖项吗?
你不知道。如果您安装了另一个UI并使用它自己的python venv,您可以使用该venv运行ComfyUI。您可以打开您最喜欢的终端并激活它:
shell
source path_to_other_sd_gui/venv/bin/activate
或在Windows上:
使用Powershell:"path_to_other_sd_gui\venv\Scripts\Activate.ps1"
使用cmd. exe:"path_to_other_sd_gui\venv\Scripts\activate.bat"
然后您可以使用该终端运行ComfyUI,而无需安装任何依赖项。请注意,venv文件夹可能会被称为其他名称,具体取决于SD UI。
三、运行
shell
python main.py
对于ROCm官方不支持的AMD卡
如果您有问题,请尝试使用此命令运行它:
对于6700、6600和其他RDNA2或更早版本:
shell
HSA_OVERRIDE_GFX_VERSION=10.3.0 python main.py
对于AMD 7600和其他RDNA3卡:
shell
HSA_OVERRIDE_GFX_VERSION=11.0.0 python main.py
四、笔记
仅执行具有所有正确输入的输出的图形部分。
只有图中从每次执行到下一次更改的部分将被执行,如果您两次提交相同的图,只有第一个将被执行。如果您更改了图的最后一部分,只有您更改的部分和依赖于它的部分将被执行。
在网页上拖动生成的png 或加载一个png 将为您提供完整的工作流程,包括用于创建它的种子。
您可以使用 ()
来更改单词或短语的重点,例如:(good code:1.2)
或 (bad code:0.8)
。
()
的默认重点是1.1。在实际提示中使用()
字符可以逃逸它们,例如 (
或 )
。
对于通配符/动态提示,您可以使用{day|night}。使用此语法,每次对提示进行排队时,前端都会将"{Wild|card|test}"随机替换为"野生"、"卡"或"测试"。在实际提示中使用{}字符逃逸它们,如:{
或 }
。
动态提示也支持C风格的注释,如 // comment
或 /* comment */
。
要在文本提示中使用文本反转概念/嵌入,请将它们放在模型/嵌入目录中,并在CLIPTextEncode节点中使用它们,如下所示(您可以省略 .pt
扩展名):
shell
embedding:embedding_filename.pt
如何展示高质量的预览?
使用--preview-method auto
启用预览。
默认安装包括低分辨率的快速潜在预览方法。要使用TAESD启用更高质量的预览,请下载taesd_decoder. pth(用于SD1.x和SD2.x)和taesdxl_decoder.pth(用于SDXL)模型,并将它们放在models/vae_approx
文件夹中。安装后,重新启动ComfyUI以启用高质量预览。
如何使用TLS/SSL?
通过运行以下命令生成自签名证书(不适用于共享/生产使用)和密钥:
shell
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes -subj "/C=XX/ST=StateName/L=CityName/O=CompanyName/OU=CompanySectionName/CN=CommonNameOrHostname"
使用--tls-keyfile key.pem --tls-certfile cert.pem
启用TLS/SSL,该应用程序现在可以访问https://...
而不是 http://...
。
注意:Windows用户可以使用alexisrolland/docker-openssl 或 第3方二进制发行版 之一来运行上面的命令示例。
如果使用容器,请注意卷挂载
-v
可以是相对路径,因此... -v ".\:/openssl-certs" ...
将在命令提示符 或 powershell终端的当前目录中 创建密钥和证书文件。
2024-06-14(五)