三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

ComfyUI安装配置全攻略:从零搭建节点式AI绘画工作流

ComfyUI安装配置全攻略:从零搭建节点式AI绘画工作流

1. 项目概述:为什么选择ComfyUI?

如果你已经玩了一段时间的Stable Diffusion WebUI(也就是大家常说的“秋叶整合包”),对文生图、图生图的基本流程已经熟悉,甚至开始觉得那个界面有点“挤”,操作流程有点“线性”,那么是时候了解一下ComfyUI了。我第一次接触ComfyUI时,感觉就像从手动挡汽车换到了专业赛车模拟器——界面全是看不懂的节点和连线,但一旦上手,你会发现它对图像生成过程的控制精细度是WebUI难以比拟的。

简单来说,ComfyUI是一个基于节点流程式的Stable Diffusion图形界面。它把文生图、图生图、ControlNet、LoRA等每一个步骤都拆解成独立的“节点”(Node),然后通过连线(Wire)将这些节点像搭积木一样连接起来,形成一个完整的工作流(Workflow)。这种设计带来的最大好处是极高的灵活性和可复现性。在WebUI里,你调好一组参数生成了一张神图,下次想微调某个步骤(比如只想改一下高清修复的算法)可能就得重新走一遍流程,参数一多还容易记混。而在ComfyUI里,你的整个生成过程就是一个可视化的流程图,保存下来下次直接加载,想改哪里就动哪个节点,清晰无比。

对于进阶玩家和希望深入研究AI绘画原理的爱好者,ComfyUI几乎是必经之路。它能让你真正理解“提示词编码”、“潜在空间扩散”、“VAE解码”这些概念是如何在代码层面串联起来的。而对于追求效率和稳定出图的创作者,ComfyUI的工作流可以极大优化生成管线,甚至实现批量、多步骤的自动化处理。接下来,我们就从最基础的安装开始,一步步搭建起你的ComfyUI环境。

2. 核心需求解析:安装前的准备工作

在动手安装之前,我们需要明确几个核心需求,这决定了你选择哪种安装方式以及后续的体验。ComfyUI的安装本质上是一个Python项目的部署,它依赖于特定的深度学习库(如PyTorch)和Stable Diffusion的基础模型。

2.1 硬件与基础环境需求

首先,最硬性的要求是一块支持CUDA的NVIDIA显卡。虽然理论上CPU也能跑,但速度会慢到让你怀疑人生。显存方面,至少需要4GB(勉强运行基础模型),6GB或以上(8GB为佳)才能比较流畅地使用各种大模型和插件。你的电脑上需要已经安装了Python(推荐3.10或3.11版本,兼容性最好)和Git(用于从代码仓库拉取项目)。

一个常见的误区是认为安装ComfyUI必须完全“净室”环境。实际上,如果你已经安装了Stable Diffusion WebUI(秋叶整合包),那么你的电脑里很可能已经有了一个Python环境以及PyTorch、CUDA等依赖。这时,你可以选择复用这些资源,避免重复下载数十GB的依赖包,这是最省事的方法。

2.2 安装方式选型:三种路径详解

根据你的现有条件和需求,主要有三种安装路径:

  1. 独立安装(推荐给喜欢折腾、希望环境纯净的用户):从ComfyUI的官方GitHub仓库克隆代码,在一个全新的Python虚拟环境中安装所有依赖。这种方式隔离性好,不会影响其他项目,但需要你熟悉命令行操作,并且需要独立下载模型文件。
  2. 基于现有WebUI环境安装(最快捷、最省资源的方式):利用你已经部署好的Stable Diffusion WebUI的环境和模型库。ComfyUI可以直接读取WebUI目录下的models文件夹(包括Checkpoint、VAE、LoRA等),无需重复下载。这是对大多数从WebUI过渡过来的用户最友好的方案。
  3. 使用一体化整合包(最适合纯新手、追求开箱即用的用户):直接下载由社区大佬(如“秋叶”)打包好的整合包,解压即用。整合包内通常已经包含了ComfyUI本体、必要的Python环境、基础依赖甚至一些常用插件和模型。它的优点是简单,缺点是更新可能稍慢,且安装位置和结构相对固定。

对于本教程,我将重点讲解**第二种方式(基于现有WebUI)第一种方式(独立安装)**的详细步骤,因为这两种方式能让你更深入地理解其运作机制。整合包的使用相对简单,解压运行run_nvidia_gpu.bat即可,我们会在最后简要提及。

3. 实操过程:两种主流安装方法详解

无论选择哪种方式,请先确保你的显卡驱动是最新的,并且已经安装了Visual Studio的“使用C++的桌面开发”工作负载(这是PyTorch编译某些原生扩展所必需的)。

3.1 方法一:嫁接于现有Stable Diffusion WebUI(推荐)

假设你的WebUI(秋叶整合包)安装在D:\sd-webui目录。这个目录下通常有modelspythonvenv等子文件夹。

步骤1:获取ComfyUI本体代码打开命令行(CMD或PowerShell),切换到一个你希望放置ComfyUI的目录,例如D:\AI_Projects,然后执行克隆命令:

git clone https://github.com/comfyanonymous/ComfyUI.git

这会在当前目录创建一个ComfyUI文件夹。

步骤2:配置模型路径(关键步骤)这是省去重复下载模型的关键。进入克隆下来的ComfyUI文件夹,找到extra_model_paths.yaml.example文件。将其复制一份,并重命名为extra_model_paths.yaml。然后用文本编辑器(如VSCode、Notepad++)打开这个新文件。

你会看到文件内容像这样,里面有很多被注释掉的示例。我们的目标是添加一个指向WebUI模型目录的配置。找到类似以下结构的地方,取消注释并修改:

# 示例:将Stable Diffusion WebUI的模型目录链接过来 a111: base_path: D:/sd-webui # 你的WebUI安装根目录 checkpoints: models/Stable-diffusion configs: models/Stable-diffusion vae: models/VAE loras: models/Lora upscale_models: models/ESRGAN embeddings: embeddings hypernetworks: models/hypernetworks

注意将base_path后面的路径替换成你电脑上WebUI的实际路径。Windows路径使用/\\checkpoints等后面的路径是相对于base_path的。这样配置后,ComfyUI启动时会自动从你的WebUI文件夹读取模型,两者共享同一套模型库。

步骤3:安装Python依赖ComfyUI目录下,打开命令行。如果你希望复用WebUI的Python环境(这是最方便的),你需要先激活WebUI的虚拟环境。通常,在WebUI目录下会有一个venv文件夹。

  • 在Windows的ComfyUI目录中,按住Shift键并右键点击空白处,选择“在此处打开Powershell窗口”。
  • 激活WebUI的虚拟环境(路径请根据实际情况调整):
    & "D:\sd-webui\venv\Scripts\Activate.ps1"
    激活后,命令行提示符前会出现(venv)字样。
  • 然后安装ComfyUI的依赖:
    pip install -r requirements.txt

步骤4:启动ComfyUI依赖安装完成后,直接在激活的虚拟环境中运行:

python main.py

如果一切顺利,命令行会输出一系列信息,最后会显示类似Running on local URL: http://127.0.0.1:8188的字样。此时,打开浏览器,访问http://127.0.0.1:8188,你就能看到ComfyUI的节点式界面了。首次打开会是空白的,因为还没有加载任何工作流。

注意:这种方式的核心优势是模型共享。但潜在问题是,如果WebUI的Python环境版本与ComfyUI的某个新依赖冲突,可能会导致问题。如果遇到奇怪的报错,可以考虑使用方法二建立一个独立环境。

3.2 方法二:独立安装与配置

如果你没有现成的WebUI,或者希望有一个完全独立、干净的环境,请遵循此方法。

步骤1:克隆代码与创建虚拟环境同样先克隆代码到指定目录:

git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI

然后创建一个新的Python虚拟环境(这里以Python 3.10为例):

python -m venv venv

激活虚拟环境:

  • Windows:venv\Scripts\activate
  • Linux/Mac:source venv/bin/activate

步骤2:安装PyTorch与依赖在虚拟环境激活状态下,你需要安装与你的CUDA版本匹配的PyTorch。首先通过nvidia-smi命令查看你的CUDA版本(例如12.1)。然后前往 PyTorch官网 获取安装命令。例如,对于CUDA 12.1:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

安装好PyTorch后,再安装ComfyUI的其他依赖:

pip install -r requirements.txt

步骤3:下载基础模型独立安装需要你自己准备模型文件。在ComfyUI目录下,你需要手动创建models文件夹,并在其中创建checkpointslorasvae等子文件夹,结构如下:

ComfyUI/ ├── models/ │ ├── checkpoints/ # 放置大模型(.safetensors或.ckpt) │ ├── loras/ # 放置LoRA模型 │ ├── vae/ # 放置VAE模型 │ ├── upscale_models/ # 放置超分辨率模型(如ESRGAN) │ └── ... # 其他类型模型文件夹

然后,你需要从CivitAI、Hugging Face等网站下载至少一个基础大模型(如SDXL、SD1.5的各类变体),将其.safetensors文件放入models/checkpoints目录。

步骤4:启动与验证完成模型放置后,运行python main.py启动。访问http://127.0.0.1:8188。为了测试安装是否成功,你可以加载一个简单的工作流。在ComfyUI界面,点击右侧的“Load”按钮,在官方示例中(通常位于ComfyUI\examples文件夹)选择basic.json并加载。这是一个最基础的文生图流程。尝试在CLIP Text Encode节点输入提示词,然后点击“Queue Prompt”生成,如果能看到图片输出,说明安装成功。

4. 核心环节:必备与常用插件安装指南

纯净的ComfyUI功能强大但“赤膊上阵”,插件(Custom Nodes)才是让它变得高效、易用的灵魂。插件管理器(ComfyUI Manager)是管理所有插件的核心工具,应优先安装。

4.1 基石插件:ComfyUI Manager的安装与使用

ComfyUI Manager让你可以像手机应用商店一样浏览、安装、更新和卸载插件,无需手动敲命令。

安装方法(手动)

  1. 进入ComfyUI的安装目录下的custom_nodes文件夹。如果不存在,就手动创建一个。
  2. custom_nodes文件夹中打开命令行,执行:
    git clone https://github.com/ltdrdata/ComfyUI-Manager.git
  3. 重启ComfyUI。重启后,在界面上方你应该能看到多出了一个“Manager”按钮。

使用指南

  • 安装插件:点击“Manager” -> “Install Custom Nodes”。你会看到一个插件列表,包含名称、描述和安装量。找到想要的插件(如ComfyUI-Impact-Pack),点击右侧的“Install”按钮即可。安装后需要重启ComfyUI生效。
  • 更新插件/ComfyUI本体:在“Manager”标签页中,“Update All”可以一键更新所有已安装插件和ComfyUI本体到最新版本。“Update”列会显示哪些项目有可用更新。
  • 模型管理:Manager也集成了模型下载功能,可以方便地下载一些常用的ControlNet、LoRA模型,省去手动寻找的麻烦。

实操心得:建议在安装任何其他插件前,先装好Manager。之后所有插件的安装、更新都通过它进行,极大降低了维护成本。注意,网络环境可能会影响从GitHub克隆仓库的速度,如果安装失败,可以多试几次,或检查网络连接。

4.2 效率提升插件:让工作流更智能

安装好Manager后,我们就可以搜索并安装那些能极大提升效率的插件了。

1. ComfyUI-Impact-Pack(影响力包)这几乎是一个“全家桶”式的插件集,由ComfyUI社区的知名开发者“pythongosssss”制作。它包含了大量实用节点,例如:

  • 高效加载器:将多个加载步骤(模型、VAE、提示词、LoRA)合并到一个节点中,简化了工作流。
  • 图像预览增强:提供更强大的图片预览、历史记录和对比功能。
  • 工具节点:包括蒙版处理、图像缩放、批量处理等大量实用工具。
  • 工作流子流程:允许你将复杂的工作流部分打包成一个子节点,使主工作流更清晰。 在Manager中搜索“Impact”即可找到并安装。安装后,你会在节点菜单中发现多出一个“Impact”大类,里面包含海量新节点。

2. Efficiency Nodes(效率节点)这个插件专注于提升生成速度和优化资源利用。它提供的节点如:

  • KSampler (Efficient):替代原版采样器,通过一些内部优化,能在几乎不损失质量的情况下小幅提升生成速度。
  • 模型合并/切换节点:可以更灵活地在单个工作流中切换或混合多个大模型、LoRA。 对于追求出图速度的用户,这个插件值得一试。

3. WAS Node Suite(WAS节点套件)另一个功能极其丰富的插件包,提供了大量图像处理、工具、动画相关的节点。它的图像调整、滤镜、色彩操作等功能非常专业,适合需要对生成结果进行精细后处理的用户。在Manager中搜索“WAS”即可安装。

4.3 工作流管理插件:拯救你的混乱界面

当节点越来越多,连线越来越复杂时,这些插件能帮你保持清醒。

1. ComfyUI-Impact-Pack(自带子流程管理)前面提到的Impact Pack本身就包含了强大的工作流组织功能。你可以将一组相连的节点选中,然后右键选择“Convert to Group”或使用Impact提供的“模块化”节点,将其封装成一个带有输入输出接口的“子模块”,从而让主工作流视图变得清爽。

2. Node Browser(节点浏览器)ComfyUI原生界面左侧的节点列表在插件装多后会变得非常长。Node Browser插件提供了一个可搜索、可分类的浮动窗口来浏览和添加节点,比在长长的原生列表中滚动查找要高效得多。

安装与使用:在Manager中搜索“Node Browser”安装。重启后,通常可以通过快捷键(如Ctrl+F)或右键菜单中的选项呼出搜索框,输入节点名称即可快速定位并添加。

5. 常见问题与排查技巧实录

即使按照步骤操作,也难免会遇到一些问题。这里记录了一些典型问题的排查思路。

5.1 安装与启动类问题

问题1:启动时提示“No module named ‘torch’ 或 ‘xformers’”

  • 原因:Python依赖没有安装成功,或者你不在正确的虚拟环境中。
  • 排查
    1. 确认命令行前缀有(venv)字样,表示虚拟环境已激活。
    2. 在激活的虚拟环境中,运行pip list,检查列表中是否有torchxformers等包。
    3. 如果没有,重新运行pip install -r requirements.txt。对于xformers,如果安装失败,可以尝试单独安装预编译版本:pip install xformers --index-url https://download.pytorch.org/whl/cu121(注意CUDA版本)。

问题2:访问http://127.0.0.1:8188无响应

  • 原因:端口被占用或程序未成功启动。
  • 排查
    1. 检查命令行窗口是否有错误信息(红色字体)。常见的错误是模型路径配置错误,导致在启动时加载模型失败卡住。
    2. 检查端口占用。ComfyUI默认使用8188端口。可以尝试修改启动端口:python main.py --port 7999,然后访问http://127.0.0.1:7999
    3. 如果使用了方法一(嫁接WebUI),确保WebUI本身没有在运行,因为它可能会占用一些资源或端口。

问题3:加载工作流或生成图片时崩溃/报CUDA out of memory

  • 原因:显存不足。ComfyUI的节点式工作流在复杂时可能会同时保留多个中间结果在显存中。
  • 排查与解决
    1. 使用--lowvram参数启动python main.py --lowvram。这会启用低显存模式,但可能会降低速度。
    2. 优化工作流:避免在流程中同时保存多个高分辨率中间图像。使用“Save Image”节点只保存最终输出,而非每个步骤的预览。
    3. 调整采样参数:降低生成图片的分辨率,或使用“Empty Latent Image”节点生成小图,再用“Upscale”节点放大。
    4. 关闭其他占用显存的程序

5.2 插件与功能类问题

问题4:安装了插件但在节点列表中找不到

  • 原因:插件安装不完整或需要重启;插件文件放错了位置;插件之间存在冲突。
  • 排查
    1. 首要步骤:完全关闭ComfyUI服务器(在命令行窗口按Ctrl+C),然后重新启动python main.py。90%的插件识别问题通过重启可以解决。
    2. 检查安装位置:确认插件被安装在ComfyUI/custom_nodes/目录下,并且是一个独立的文件夹(例如ComfyUI/custom_nodes/ComfyUI-Manager/)。
    3. 查看启动日志:启动ComfyUI时,命令行会输出加载了哪些自定义节点。检查你的插件名是否出现在日志中。如果没有,说明安装路径可能不对。
    4. 冲突排查:如果安装了多个插件后出现此问题,尝试暂时将其他插件文件夹移出custom_nodes目录,只保留有问题的插件,看是否能加载,以确定是否是冲突导致。

问题5:加载他人分享的工作流(.json文件)时提示缺少节点

  • 原因:你的ComfyUI环境中没有安装工作流中所用的某个或某些自定义节点插件。
  • 解决
    1. ComfyUI Manager提供了一个非常棒的功能。当你尝试加载一个缺失节点的工作流时,界面上通常会弹出提示,并列出缺失的节点名称。
    2. 点击“Install Missing Nodes”按钮(如果提示中有),Manager会自动尝试查找并安装这些节点。
    3. 如果自动安装失败,你需要根据缺失的节点名(例如“ImpactPack\\SomeNode”),在Manager的“Install Custom Nodes”页面中搜索关键词(如“Impact”),找到对应的插件包进行手动安装。

问题6:使用Impact Pack等插件后,生成速度变慢

  • 原因:某些功能强大的插件节点可能会引入额外的计算开销,或者你的工作流设计存在效率瓶颈。
  • 优化建议
    1. 审视工作流:检查是否有不必要的、计算密集的节点被重复执行。例如,在循环中放置了高清修复节点。
    2. 利用缓存:一些插件节点支持“缓存”中间结果,对于参数未改变的部分,下次生成时可以直接复用,避免重复计算。
    3. 分步执行:对于极其复杂的工作流,可以将其拆分成几个部分,分别执行并保存中间结果,而不是一次性跑完整个流程。

安装和配置只是第一步,当你熟悉了ComfyUI的节点操作逻辑后,真正的乐趣在于设计和搭建属于你自己的高效工作流。从复制别人的工作流开始学习,然后尝试修改其中的参数和连接,最后独立创作,这是一个非常有趣的学习曲线。记住,每次对工作流的优化和调整,都是你对Stable Diffusion生成过程理解的一次深化。

← 返回列表