ComfyUI安装配置、插件管理与二次开发指南
ComfyUI 作为一款基于节点流程的 Stable Diffusion 操作界面,以其高效、模块化和高度可定制的特性,深受 AI 绘图爱好者和开发者的喜爱。无论你是刚接触的新手,还是希望进行深度定制的开发者,本文都将为你提供清晰的路径。
我们将 ComfyUI 的学习路径分为三个主要阶段:快速安装与配置、插件管理以及二次开发。
🚀 第一阶段:快速安装与配置
对于大多数用户,尤其是初次使用者,强烈推荐使用官方提供的一键安装包。这是最快捷、最不容易出错的方式。
1. 新手快速启动
- 下载: 前往 ComfyUI 的官方 GitHub 发布页面。
- 解压: 下载最新的 Windows 一键安装包(通常是
.7z或.zip格式),解压到任意目录。 - 运行: 直接运行目录下的
run_nvidia_gpu.bat(如果你有 NVIDIA 显卡)或对应的启动脚本。
💡 提示: 这种方式会自动配置好 Python、PyTorch 等所有必要环境,无需手动操作,极大地降低了入门门槛。
2. 进阶配置:共享模型文件
如果你已经是 Stable Diffusion WebUI (A1111) 的用户,不想重复下载几十 GB 的模型文件,可以通过配置让 ComfyUI 共享 WebUI 的模型库。
- 在 ComfyUI 根目录下,找到
extra_model_paths.yaml.example文件。 - 将其复制并重命名为
extra_model_paths.yaml。 - 使用文本编辑器打开,将
base_path修改为你的 Stable Diffusion WebUI 安装路径。 - 确认
checkpoints、loras等子路径的相对位置是否正确。 - 保存并重启 ComfyUI,即可直接调用 WebUI 下载的所有模型。
🛠️ 第二阶段:插件(自定义节点)管理
ComfyUI 的强大之处在于其丰富的自定义节点(插件)。管理它们主要有两种方式:
1. 使用 ComfyUI Manager(强烈推荐)
这是社区最主流的插件管理工具,提供了图形化界面,功能包括:
- 浏览和安装: 从列表中选择并一键安装成百上千个社区节点。
- 统一更新: 轻松更新所有已安装的插件。
- 依赖管理: 自动检测并提示安装节点所需的额外 Python 库。
- 故障修复: 内置“Fix”功能,可尝试修复节点显示异常等问题。
2. 手动安装
当需要的插件不在 Manager 列表中时,可以采用手动方式:
- 从 GitHub 下载插件源码(克隆或下载 ZIP 包)。
- 将解压后的文件夹放入
ComfyUI/custom_nodes目录中。 - 如果插件包含
requirements.txt,需进入该目录运行pip install -r requirements.txt安装依赖。 - 重启 ComfyUI 即可生效。
💻 第三阶段:二次开发:创建自定义节点
ComfyUI 的二次开发本质上是编写 Python 脚本来创建新的节点。这需要一定的 Python 编程基础。
1. 开发环境准备
建议从源码手动安装 ComfyUI 以便于调试:
- 创建虚拟环境: 推荐使用 Python 3.10,通过
conda或venv创建独立环境。 - 获取源码:
git clone https://github.com/comfyanonymous/ComfyUI.git - 安装依赖: 运行
pip install -r requirements.txt。
2. 编写一个简单节点
所有自定义节点都放在 custom_nodes 目录下。一个基本的节点类需要包含以下核心部分:
INPUT_TYPES: 定义输入参数(如图像、数值)。RETURN_TYPES: 声明输出数据类型。FUNCTION: 指定执行核心逻辑的函数名。CATEGORY: 决定节点在侧边栏菜单中的分类。NODE_CLASS_MAPPINGS: 注册节点到系统。
- 代码示例:图像亮度调整节点
以下是一个简单的 Python 示例,创建一个能将图像变亮或变暗的节点:
# 文件名: custom_nodes/image_multiplier.py
import torch
class ImageMultiplier:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"images": ("IMAGE",), # 输入:图像
"factor": ("FLOAT", { # 输入:一个浮点数滑块
"default": 1.0,
"min": 0.1,
"max": 3.0,
"step": 0.1,
}),
}
}
RETURN_TYPES = ("IMAGE",) # 输出:一个图像
FUNCTION = "execute" # 执行函数名为 execute
CATEGORY = "image/post-processing" # 分类位置
def execute(self, images, factor):
# 核心逻辑:将图像像素值乘以系数,并限制在0-1之间
result = torch.clamp(images * factor, 0, 1)
return (result,) # 返回值必须是元组
# 注册节点
NODE_CLASS_MAPPINGS = {
"ImageMultiplier": ImageMultiplier
}将上述代码保存为 image_multiplier.py 并放入 custom_nodes 目录后,刷新 ComfyUI 页面,你就能在 image/post-processing 分类下找到这个新节点了。