The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.
ComfyUI基本信息
ComfyUI介绍
功能最强大且高度模块化的稳定扩散GUI和后端系统。
这个用户界面允许您通过一个基于图表、节点和流程图的界面设计和执行高级稳定扩散流程。您可以通过以下链接查看一些工作流示例,了解 ComfyUI 的强大功能:
ComfyUI 示例
安装 ComfyUI
功能
- 提供图表、节点和流程图界面,用户可以在无需编码的情况下试验和创建复杂的稳定扩散工作流。
- 完整支持 SD1.x, SD2.x, SDXL, Stable Video Diffusion 和 Stable Cascade。
- 异步队列系统。
- 多项优化:仅重新执行工作流中变化的部分。
- 提供命令行选项
--lowvram
,使软件在低于3GB VRAM的GPU上自动适配运行。 - 也可以在没有 GPU 的情况下通过
--cpu
选项运行(速度较慢)。 - 支持加载 ckpt、safetensors 和 diffusers 的模型/检查点,包括独立的 VAEs 和 CLIP 模型。
- 支持嵌入技术和文本反演。
- 支持 Loras (常规, locon 和 loha)、Hypernetworks。
- 支持从生成的 PNG 文件加载完整的工作流(包括种子)。
- 支持将工作流保存/加载为 Json 文件。
- 节点界面可用于创建如 Hires fix 等复杂工作流程。
- 支持 Area Composition、[Inpainting](https://comfyanonymous.github.io
/ComfyUI_examples/inpaint/)、ControlNet 和 T2I-Adapter、Upscale Models (ESRGAN, ESRGAN variants, SwinIR, Swin2SR, 等...)、unCLIP Models、GLIGEN、Model Merging、LCM models and Loras 和 SDXL Turbo。
更多工作流程示例,请访问 示例页面。
快捷方式
快捷键 | 说明 |
---|---|
Ctrl + Enter | 队列当前图形以进行生成 |
Ctrl + Shift + Enter | 将当前图形作为首个进行生成 |
Ctrl + Z/Ctrl + Y | 撤销/重做 |
Ctrl + S | 保存工作流程 |
Ctrl + O | 加载工作流程 |
Ctrl + A | 选择所有节点 |
Alt + C | 折叠/展开选定节点 |
Ctrl + M | 静音/取消静音选定节点 |
Ctrl + B | 绕过选定节点(像是将节点从图中移除并重新连接线路) |
Delete/Backspace | 删除选定节点 |
Ctrl + Delete/Backspace | 删除当前图形 |
Space | 移动画布时按住空格键并移动光标 |
Ctrl/Shift + Click | 将点击的节点添加到选择中 |
Ctrl + C/Ctrl + V | 复制并粘贴选定节点(不保留与未选中节点输出的连接) |
Ctrl + C/Ctrl + Shift + V | 复制并粘贴选定节点(保留从未选中节点输出到粘贴节点输入的连接) |
Shift + Drag | 同时移动多个选定节点 |
Ctrl + D | 加载默认图形 |
Alt + + | 放大画布 |
Alt + - | 缩小画布 |
Ctrl + Shift + LMB + Vertical drag | 通过垂直拖动放大/缩小画布 |
Q | 切换队列可见性 |
H | 切换历史可见性 |
R | 刷新图形 |
Double-Click LMB | 打开节点快速搜索调色板 |
对于 macOS 用户,Ctrl 键也可以用 Cmd 键替换。
安装
Windows
Windows 平台有一个便携式独立构建版本,适用于在 Nvidia GPU 或仅在 CPU 上运行,可在 发布页面 找到。
直接下载链接
只需下载、解压使用 7-Zip 并运行。确保您的稳定扩散检查点/模型(大型 ckpt/safetensors 文件)放在:ComfyUI\models\checkpoints
如果在解压时遇到问题,可
右键文件 -> 属性 -> 解除锁定
如何在另一个界面和 ComfyUI 之间共享模型?
参考 配置文件 来设置模型的搜索路径。在独立 Windows 版本中,您可以在 ComfyUI 文件夹中找到此文件。将此文件重命名为 extra_model_paths.yaml 并使用您喜欢的文本编辑器进行编辑。
Jupyter Notebook
要在像 paperspace、kaggle 或 colab 这类服务上运行,您可以使用我的 Jupyter 笔记本。
手动安装 (Windows, Linux)
克隆此仓库。
将您的 SD 检查点(大型 ckpt/safetensors 文件)放在:models/checkpoints
将您的 VAE 放在:models/vae
AMD GPUs (仅限 Linux)
AMD 用户可以安装 rocm 和 pytorch,如果您还未安装,这是安装稳定版本的命令:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.0
这是安装可能具有性能改进的 ROCm 6.0 夜间版本的命令:
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.0
NVIDIA
Nvidia 用户应使用此命令安装稳定的 pytorch:
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
这是安装 pytorch 夜间版本的命令,可能具有性能改进:
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu121
故障排除
如果您收到“Torch not compiled with CUDA enabled”错误,请使用:
pip uninstall torch
然后再次使用上述命令安装。
依赖项
通过在 ComfyUI 文件夹内打开您的终端并运行以下命令来安装依赖项:
pip install -r requirements.txt
完成此操作后,您应该已经安装了所有东西并可以继续运行 ComfyUI。
其他:
Intel Arc
Apple Mac silicon
您可以在任何最近的 macOS 版本上在 Apple Mac silicon (M1 或 M2) 上安装 ComfyUI。
- 安装 pytorch 夜间版本。有关说明,请阅读 Mac 上的加速 PyTorch 培训 Apple 开发者指南(确保安装最新的 pytorch 夜间版本)。
- 按照 Windows 和 Linux 的 ComfyUI 手动安装 指南操作。
- 安装 ComfyUI 依赖项。如果您已经有另一个稳定扩散 UI 您可能可以重用这些依赖项。
- 通过运行
python main.py
启动 ComfyUI
注意:请记得将您的模型、VAE、LoRAs 等添加到相应的 Comfy 文件夹中,如 ComfyUI 手动安装 中所讨论的。
DirectML (AMD Cards on Windows)
pip install torch-directml
然后您可以使用:python main.py --directml
启动 ComfyUI
我已经安装了另一个 UI 用于 Stable Diffusion,我真的需要安装所有这些依赖项吗?
您不需要。如果您已经安装并使用其自己的 python venv 正在运行另一个 UI,您可以使用该 venv 运行 ComfyUI。您可以打开您最喜欢的终端并激活它
:
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 的不同而被称为其他名称。
运行
python main.py
对于不受 ROCm 正式支持的 AMD 卡
如果您遇到问题,请尝试使用此命令运行:
对于 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
注意
只有图中具有所有正确输入的输出的部分才会执行。
只有从每次执行到下一次执行发生变化的图的部分才会执行,如果您提交相同的图两次,则只执行第一次。如果您更改图的最后部分,则只会执行您更改的部分和依赖于它的部分。
拖动生成的 png 到网页上或加载一个将给您完整的工作流程,包括用于创建它的种子。
您可以使用 () 改变单词或短语的重点,如:(好代码:1.2) 或 (坏代码:0.8)。() 的默认重点是 1.1。要在实际提示中使用 () 字符,请将它们转义为 \( 或 \)。
您可以使用 {day|night},用于通配符/动态提示。使用这种语法 "{wild|card|test}" 将由前端每次排队提示时随机替换为 "wild"、"card" 或 "test"。要在实际提示中使用 {} 字符,请将它们转义为:\{ 或 \}。
动态提示还支持 C 样式注释,如 // comment
或 /* comment */
。
要在文本提示中使用文本反演概念/嵌入,请将它们放在 models/embeddings 目录中并在 CLIPTextEncode 节点中使用它们,例如(您可以省略 .pt 扩展名):
embedding:embedding_filename.pt
如何提高生成速度?
在非 Nvidia 硬件上,您可以设置此命令行设置以禁用某些交叉注意力操作中的上转换至 fp32,这将增加您的速度。请注意,这很可能会在 SD2.x 模型上给您黑色图像。如果您使用 xformers 或 pytorch 注意力,则此选项不起作用。
--dont-upcast-attention
如何显示高质量预览?
使用 --preview-method auto
启用预览。
默认安装包括一种快速的潜在预览方法,分辨率较低。要启用高质量预览,请使用 TAESD,下载 taesd_decoder.pth(适用于 SD1.x 和 SD2.x)和 taesdxl_decoder.pth(适用于 SDXL)模型,并将它们放在 models/vae_approx
文件夹中。安装后,重新启动 ComfyUI 以启用高质量预览。
如何使用 TLS/SSL?
通过运行命令生成自签名证书(不适用于共享/生产用途)和密钥:`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 或 第三方二进制发行版之一 运行上述命令示例。
如果您使用容器,请注意-v
卷挂载可以是相对路径,因此... -v ".\:/openssl-certs" ...
会在您的命令提示符或 powershell 终端的当前目录中创建密钥和证书文件。
支持和开发频道
Matrix 空间:#comfyui_space:matrix.org(它就像开源的 discord)。
QA
为什么你要制作这个?
我想详细了解 Stable Diffusion 的工作原理。我还想要一个干净而强大的东西,让我可以在没有限制的情况下试验 SD。
这是为谁准备的?
这是为想要制作复杂的 SD 工作流程的任何人,或想要更多了解 SD 工作原理的人准备的。界面紧密遵循 SD的工作方式,代码应该比其他 SD UI 更容易理解。