如何使用 ComfyUI:面向初学者的实用分步指南
如果你听说过 ComfyUI 是“基于节点且功能强大”的,但又被所有的框框和连线吓到了,你并不孤单。好消息是:一旦你学习了一些核心概念——检查点、编码器、采样器和解码器——你就能像专业人士一样构建图像工作流。本实用指南将引导你了解如何使用 ComfyUI,从安装到你的第一张 SDXL 图像,以及 ControlNet、LoRA 和质量/性能调整的工作流。
到最后,你将确切地知道如何使用 ComfyUI 进行一致、可重复和灵活的图像生成,而无需猜测。
什么是 ComfyUI?为什么要使用它?
ComfyUI 是一个可视化的、基于节点的 Stable Diffusion 界面,让你能够逐步设计你的图像管道。无需单个“生成”按钮,你可以连接节点——每个节点处理不同的任务,例如加载模型、编码文本、采样潜在空间或解码最终图像。它快速、模块化且透明——非常适合学习、实验和生产工作流。
快速入门:安装并启动 ComfyUI
- Windows/macOS/Linux:按照官方存储库和社区安装指南进行操作。你可以使用手动安装(Python + 依赖项)或打包方法,具体取决于你的平台和 GPU。ComfyUI Wiki 提供了 Windows、macOS(包括 Apple Silicon)和 Linux 的分步设置。
- 模型:将你的 Stable Diffusion 检查点(例如,SDXL 基础/细化器或 SD 1.5)放在
models/checkpoints 文件夹中。将 VAE 文件放在 models/vae 中,LoRA 放在 models/loras 中,ControlNet 模型放在 models/controlnet 中。
- 启动:运行你的操作系统的启动脚本;ComfyUI 将在你的浏览器中打开。画布是你将节点连接在一起的地方。
提示:保持你的 GPU 驱动程序和 CUDA 工具包为最新,以获得最佳性能。
核心概念:最简单的文本到图像工作流
ComfyUI 的基本文本到图像流程(SD 1.5 风格)如下所示:
- 节点:Checkpoint Loader(检查点加载器)
- 节点:CLIP Text Encode (Positive)(CLIP 文本编码(正面提示词))
- 节点:CLIP Text Encode (Negative)(CLIP 文本编码(负面提示词))
- 输入:UNet、正面/负面条件、种子、步数、采样器(例如,DPM++ 2M Karras)和 CFG 比例
这个基本图——Checkpoint → CLIP (pos/neg) → KSampler → VAE Decode → Save——几乎是你将在 ComfyUI 中所做一切的基础。
SDXL 工作流:基础 +(可选)细化器
SDXL 使用双文本编码器,并且通常受益于细化器通道。
- 加载 SDXL 基础模型:使用 SDXL 兼容的检查点。许多 SDXL 模板包括两个 CLIP 编码器(用于大/小上下文)。输入正面和负面提示词。
- KSampler(基础):以 1024×1024(或你的目标分辨率)生成潜在空间。保存潜在空间或解码后的图像。
- 可选的细化器:加载 SDXL 细化器检查点并运行额外的 KSampler 通道,该通道以基础输出为条件,然后使用 VAE 解码。
这个两阶段过程可以显著提高更高分辨率下的细节和连贯性。
实践:构建你的第一个 ComfyUI 图
- 从模板开始:在侧边栏中,加载一个内置的文本到图像示例。
- 替换检查点:选择你的 SDXL 或 SD 1.5 模型。
- 编写你的提示词:使用 Positive 和 Negative CLIP 节点。例如:
- 正面提示词:“电影肖像,柔和的影棚照明,85mm 镜头,高度详细,胶片颗粒感”
- 负面提示词:“模糊,低分辨率,变形,多余的手指,水印”
- 采样器:DPM++ 2M Karras(可靠)或 Euler a(快速)
- CFG:4.5–7.5(越高越能推动提示词,但可能会过度饱和)
- 分辨率:对于 SD 1.5,从 512×512 或 768×768 开始。对于 SDXL,1024×1024 效果很好。
- 解码和保存:添加 VAE Decode → Save Image。单击“Queue Prompt(队列提示词)”以生成。
理解关键节点(通俗易懂)
- Checkpoint Loader(检查点加载器):加载你的扩散模型 (UNet)、文本编码器 (CLIP) 和 VAE。把它想象成你的“引擎 + 语言大脑 + 图像翻译器”。
- CLIP Text Encode(CLIP 文本编码):将你的提示词转换为模型可以理解的数字嵌入。同时使用正面和负面文本编码器。
- KSampler:图像合成的核心。它在多个步骤中,通过你的提示词和采样器方法引导,对潜在噪声进行去噪。
- VAE Decode(VAE 解码):将最终的潜在空间转换为可查看的图像。交换 VAE 会改变颜色/对比度的保真度。
- Save Image(保存图像):将输出写入磁盘并包含元数据,以便你以后可以重新创建结果。
要深入了解这些构建块,请参阅适合初学者的分解和节点说明。
增强功能:LoRA、ControlNet 和图像到图像
使用 LoRA 进行风格或主题控制
- 添加一个 LoRA Loader 节点并将其连接到你的模型分支。
- 强度:从 0.6–0.8 左右开始;根据风格强度或过拟合进行调整。
- 多个 LoRA:链接或合并,但要注意冲突;堆叠时降低强度。
添加 ControlNet 以实现精确构图
- ControlNet 节点让你能够使用输入图(Canny、深度、OpenPose 等)来引导构图。
- 典型流程:加载 ControlNet 模型 → 预处理你的引导图像(例如,Canny 边缘)→ 将 ControlNet 条件与你的文本条件一起输入到 KSampler 中。
- 权重:0.5–1.2 是一个好的开始。太高可能会压倒你的提示词。
图像到图像或图像修复
- 通过 VAE Encode 将初始噪声替换为图像潜在空间。
- 调整 KSampler 中的去噪强度以控制原始图像保留多少。
质量调整:提示词、CFG、采样器和种子
- 提示词工程:使用简洁的描述符,而不是段落。顺序不如清晰度重要,但保持关键属性在前。
- UniPC / Heun / DDIM:值得测试;结果因模型而异
平滑渲染的性能提示
- VRAM 预算:如果遇到 OOM,降低分辨率、步数或批量大小。1024×1024 的 SDXL 可能需要 8–12 GB VRAM,具体取决于节点。
- 半精度:在支持的地方启用 fp16,以节省大量内存,而质量损失可忽略不计。
- 平铺和潜在空间放大器:生成较小的图像,然后通过潜在空间放大器节点或图像放大器模型进行放大,以节省 VRAM。
- 缓存:当提示词没有更改时,在多次运行中重复使用 CLIP 编码和解码的 VAE。
- 避免不必要的分支:在同一队列中执行时,额外的断开连接的节点仍然会消耗内存。
像专业人士一样组织工作流
- 分组节点:使用框架/标签来组织部分(提示词、模型、采样器、输出等)。
- 参数面板:在顶部创建“控制”节点(例如,空提示词框、滑块),以便于调整。
- 保存/共享:导出你的工作流 JSON,并保留
使用的模型 备注,以实现可重复性。
- 版本控制:为 SD 1.5、SDXL 和特殊管道(动漫、照片写实、深度到图像等)保留单独的图。
解决常见问题
- 去噪太低(例如,在 img2img 中 <0.2)
- 尝试另一个 VAE;一些 VAE 明显改善了对比度
- 关闭其他 GPU 应用程序;简化 ControlNet/LoRA 堆栈
通过预构建的工作流更快地学习
视频演练和初学者系列可以通过你可以暂停和剖析的即用型图来加速你的学习曲线。书面教程和 Wiki 提供了节点说明和更新的安装步骤,以使你保持最新状态。
高级:模块化和扩展你的图
- API/外部节点:一些教程介绍了通过特殊节点将 ComfyUI 连接到外部 AI 服务,从而实现混合管道和卸载繁重任务。
- 节点库和扩展:探索用于调度程序、放大器和预处理(姿势、深度、分割)的社区节点。始终检查与你的 ComfyUI 版本的兼容性。
- SDXL 细化器和链式采样器:运行分阶段去噪(基础 → 细化器)甚至多个采样器以进行风格混合。
如果你经常迭代提示词、参考或描述,你可能需要一个助手来集思广益和改进变体。顺便说一句,Sider.AI 可以帮助你快速起草结构化提示词、生成负面提示词列表,并总结你的工作流实验,这样你就不会在多次运行之间失去跟踪。你可以在这里尝试: 一个简单的 SDXL 入门工作流(复制此模式)
- Checkpoint Loader (SDXL Base)(检查点加载器(SDXL 基础模型))
- CLIP Text Encode (Positive)(CLIP 文本编码(正面提示词))— “超详细的产品照片,柔光箱照明,50mm 镜头,反射表面”
- CLIP Text Encode (Negative)(CLIP 文本编码(负面提示词))— “低分辨率、运动模糊、水印、背景杂乱”
- KSampler:1024×1024, 28 步, DPM++ 2M Karras, CFG 5.5, 固定种子
- VAE Decode → Save Image(VAE 解码 → 保存图像)
可选附加组件:
- 在 10–15 步中使用 SDXL Refiner 检查点进行细化器通道
- 使用简单对象轮廓进行布局的 ControlNet (Depth)(ControlNet(深度))
- LoRA 以 0.6 的强度用于特定品牌或艺术风格
主要要点
- ComfyUI 的强大之处在于其透明度——逐个节点地构建你的管道。
- 核心文本到图像链很简单:Checkpoint → CLIP (pos/neg) → KSampler → VAE Decode → Save。
- SDXL 受益于双编码器和一个可选的细化器通道以获得细节。
- LoRA 和 ControlNet 为你提供风格控制和构图精度。
- 调整 CFG、采样器和种子以获得质量和一致性;使用 fp16 和合理的分辨率来管理 VRAM。
下一步
- 按照 repo/wiki 指令安装 ComfyUI 并启动一个示例工作流。
- 添加 ControlNet 和 LoRA,然后 A/B 测试采样器和 CFG 设置。
- 保存并分享你的工作流 JSON,其中包含关于模型、种子和参数的注释。
祝你生成愉快——欢迎来到 ComfyUI 这个平静、可控的世界。
常见问题解答
Q1:如何在 Windows、macOS 或 Linux 上安装和运行 ComfyUI?
按照官方 repo 和社区 wiki 中特定于平台的步骤、模型文件夹位置和依赖项进行操作。安装完成后,启动本地服务器并在浏览器中打开 ComfyUI,即可开始连接节点。
Q2:文本到图像最简单的 ComfyUI 工作流是什么?
加载检查点,使用 CLIP 编码正面和负面提示词,运行 KSampler,使用 VAE 解码,然后保存图像。该链条是如何有效使用 ComfyUI 进行大多数生成的基础。
Q3:如何在 ComfyUI 中使用 SDXL?
使用带有双文本编码器的 SDXL 检查点,然后可以选择添加细化器通道以获得更好的细节。以 1024×1024 的分辨率运行,具有平衡的 CFG(大约 5-7)和高效的采样器,如 DPM++ 2M Karras。
Q4:我可以在同一个 ComfyUI 工作流中添加 ControlNet 和 LoRA 吗?
可以。加载你的 LoRA 和 ControlNet 节点,将它们连接到模型和 KSampler 条件,并调整权重(例如,LoRA 为 0.6-0.8,ControlNet 为 ~0.5-1.2)。注意 VRAM 使用情况,如果遇到 OOM,请降低分辨率或步数。
Q5:为什么我的 ComfyUI 图像对比度低或颜色褪色?
尝试不同的 VAE,降低 CFG 或切换采样器。某些 VAE 产生更真实的颜色和对比度;小的调整可以快速修复褪色的结果。