ComfyUI新手入门:节点式AI绘画完全教程 – wiki大全


ComfyUI新手入门:节点式AI绘画完全教程

在当下蓬勃发展的AI绘画领域,Stable Diffusion无疑是中流砥柱。而ComfyUI,作为Stable Diffusion的一种独特图形用户界面(GUI),正凭借其无与伦比的灵活性和高效性,逐渐成为越来越多AI艺术家的首选工具。如果你厌倦了传统WebUI的固定流程,渴望对AI绘画的生成过程拥有更细致、更直观的掌控,那么ComfyUI将为你打开新世界的大门。

本教程旨在为ComfyUI的初学者提供一个全面的入门指南,从基础概念到实际操作,助你轻松迈入节点式AI绘画的精彩世界。

一、什么是ComfyUI?为何选择它?

ComfyUI是一个基于节点的Stable Diffusion图形用户界面。与AUTOMATIC1111等传统WebUI的线性操作界面不同,ComfyUI将AI绘画的每一个步骤都抽象为独立的“节点”,并通过线条连接这些节点,形成一个可视化的“工作流”(Workflow)。

为什么选择ComfyUI?

  1. 极致的灵活性与控制力: 节点式设计意味着你可以像搭建积木一样,自由组合和调整每一个生成步骤。这让你能够精确控制模型的输入、输出、采样器、编码器等所有参数,实现高度定制化的效果。
  2. 高效与低显存占用: ComfyUI以其高度优化的设计著称,在相同配置下,通常能比其他WebUI更快地生成图像,并显著降低显存(VRAM)的占用,这对于显存有限的用户来说尤为重要。
  3. 工作流的可复用性与分享: 你可以轻松保存和加载整个工作流,方便复用和分享给他人。许多社区成员会分享他们的创意工作流,让你能够站在巨人的肩膀上,快速学习和实验。
  4. 清晰的逻辑与可追溯性: 节点连接的视觉化特性,使得整个图像生成过程的逻辑一目了然。每个节点的输入和输出都清晰可见,便于调试和理解。
  5. 强大的可扩展性: ComfyUI拥有活跃的社区,大量的自定义节点(Custom Nodes)不断涌现,可以实现各种高级功能,如ControlNet、Inpainting、Upscaling、蒙版操作等。

虽然ComfyUI的学习曲线可能比其他WebUI略陡峭,但一旦掌握,它将为你带来前所未有的创作自由和效率提升。

二、ComfyUI的安装与初次启动

1. 系统要求

  • 操作系统: Windows, Linux, macOS
  • 显卡: 推荐NVIDIA RTX系列显卡,显存8GB及以上为佳(虽然ComfyUI对显存要求较低,但更大的显存能处理更复杂的模型和更大的图片)。AMD显卡和Apple Silicon用户也都有相应的安装方法。
  • Python环境: 通常需要Python 3.10或更高版本。

2. 安装方法(以Windows为例)

最简单的方式是下载整合包(Portable Version)或通过GitHub仓库安装。

方法一:下载整合包 (推荐新手)

许多社区或模型下载网站会提供预配置好的ComfyUI整合包,通常包含Python环境和必要的依赖。
1. 前往相关网站(如Civitai、秋叶整合包等)下载最新的ComfyUI整合包。
2. 解压到一个你希望安装的路径(确保路径中不包含中文或特殊字符)。
3. 双击运行 run_nvidia_gpu.bat (NVIDIA显卡) 或 run_cpu.bat (CPU运行,速度较慢) 文件即可启动。

方法二:通过GitHub仓库安装 (适合有一定经验的用户)

  1. 安装Git: 如果没有安装Git,请先安装。
  2. 安装Python: 确保安装了Python 3.10或更高版本,并在安装时勾选“Add Python to PATH”。
  3. 克隆仓库: 打开命令行(CMD或PowerShell),进入你希望安装ComfyUI的目录,运行:
    bash
    git clone https://github.com/comfyanonymous/ComfyUI.git
    cd ComfyUI
  4. 安装依赖: 运行以下命令安装必要的Python库:
    bash
    pip install -r requirements.txt
  5. 启动: 运行 python main.py --cuda (NVIDIA显卡) 或 python main.py (CPU) 即可启动。

无论哪种方式,成功启动后,你的浏览器会自动打开ComfyUI的Web界面,通常是 http://127.0.0.1:8188

三、ComfyUI界面概览

ComfyUI的界面简洁而强大,主要由以下几个区域组成:

  1. 节点工作区 (Canvas): 这是你构建工作流的主要区域,所有节点都在这里拖拽、连接。
  2. 右侧面板 (Properties/Queue):
    • Queue Prompt (排队生成): 点击此按钮,ComfyUI将按照工作流进行图像生成。
    • Extra Options (额外选项): 包含加载/保存工作流、清除工作流等功能。
    • Prompt History (提示历史): 记录你每次生成所使用的参数和工作流。
  3. 左侧面板 (Menu/Groups):
    • Load Default (加载默认工作流): 恢复到ComfyUI的默认空白工作流。
    • Save (保存工作流): 将当前工作流保存为JSON文件。
    • Load (加载工作流): 从JSON文件加载工作流。

基本操作:
* 拖拽: 用鼠标中键或右键拖拽,可以移动画布。
* 缩放: 滚动鼠标滚轮可以缩放画布。
* 添加节点: 在空白处双击鼠标,或右键点击选择“Add Node”,会出现节点搜索框。输入节点名称即可添加。
* 连接节点: 拖拽节点的输出端口(右侧小圆点)到另一个节点的输入端口(左侧小圆点)即可连接。

四、理解节点式AI绘画

1. 什么是节点?

在ComfyUI中,每一个节点都代表了AI绘画流程中的一个特定功能或数据。例如:
* Load Checkpoint: 加载Stable Diffusion模型文件。
* CLIP Text Encode: 将文本提示词(Prompt)编码成模型可以理解的向量。
* KSampler: 执行扩散模型的核心采样过程,从噪声中生成图像。
* VAE Decode: 将模型生成的潜在空间图像解码为我们能看到的像素图像。
* Save Image: 将最终图像保存到本地。

节点有输入端口(左侧)和输出端口(右侧),数据流从左向右,一步步处理,最终生成图像。

2. 常见节点类型与功能

  • Loader (加载器): 用于加载模型(Checkpoint)、LoRA、VAE、ControlNet等文件。
  • CLIP (文本编码): 将正向和反向提示词转换为模型可用的表示。
  • Sampler (采样器): 决定图像生成的核心算法,如Euler A、DPM++ 2M Karras等。
  • Model (模型): 通常指Checkpoint加载后,模型本身的一个组件。
  • VAE (变分自编码器): 用于将潜在空间(Latent Space)中的数据转换为像素空间(Pixel Space)的图像,反之亦然。
  • Latent (潜在空间): 指的是图像在模型内部表示的一种压缩形式。许多操作(如采样)都是在这个空间进行的。
  • Image (图像): 像素形式的图像数据。
  • Conditioning (条件): 文本提示词经过CLIP编码后的信息,用于引导图像生成。
  • Primitive (基本数据): 如整数、浮点数、布尔值等,常用于控制其他节点的参数。

五、构建你的第一个AI绘画工作流:文生图 (Text-to-Image)

ComfyUI的默认工作流就是一个文生图的例子,但我们可以从头开始构建,以便更好地理解。

目标: 输入文本提示词,生成一张图片。

步骤:

  1. 清空画布: 如果画布上有节点,右键点击空白处,选择 ClearLoad Default
  2. 添加 Load Checkpoint 节点: 双击画布或右键 Add Node -> loaders -> Load Checkpoint
    • 在节点中选择你下载好的Stable Diffusion模型文件(例如:sd_xl_base_1.0.safetensors)。
    • 这个节点有三个输出:MODEL, CLIP, VAE
  3. 添加 CLIP Text Encode (Prompt) 节点 (正向提示词):
    • Add Node -> conditioning -> CLIP Text Encode (Prompt)
    • Load CheckpointCLIP 输出连接到此节点的 clip 输入。
    • CLIP Text Encode (Prompt) 节点的文本框中输入你的正向提示词,例如:masterpiece, best quality, a beautiful girl, long hair, blue eyes, smiling, in a garden, sunlight
    • 此节点输出 CONDITIONING
  4. 添加另一个 CLIP Text Encode (Prompt) 节点 (反向提示词):
    • 同样添加一个 CLIP Text Encode (Prompt) 节点。
    • Load CheckpointCLIP 输出连接到此节点的 clip 输入。
    • 在文本框中输入你的反向提示词,例如:bad anatomy, ugly, deformed, extra limbs, watermark, text, signature
    • 此节点输出另一个 CONDITIONING
  5. 添加 KSampler 节点: Add Node -> sampling -> KSampler
    • KSampler 是图像生成的核心。连接以下输入:
      • Load CheckpointMODEL 连接到 KSamplermodel
      • 正向提示词节点的 CONDITIONING 连接到 KSamplerpositive
      • 反向提示词节点的 CONDITIONING 连接到 KSamplernegative
    • KSampler 节点中设置参数:
      • seed: 随机种子,可以设置为固定值或-1(随机)。
      • steps: 采样步数,通常20-30步。
      • cfg: Classifier Free Guidance,控制提示词影响力,通常6-8。
      • sampler_name: 采样器,如 dpmpp_2m_sdeeuler_a
      • scheduler: 调度器,如 karrasexponential
      • denoise: 去噪强度,文生图通常为1.0。
    • KSampler 输出 LATENT
  6. 添加 Empty Latent Image 节点: Add Node -> latent -> Empty Latent Image
    • 此节点定义了生成图像的尺寸和批次大小。
    • 设置 widthheight (例如:1024×1024 或 512×768)。
    • Empty Latent ImageLATENT 输出连接到 KSamplerlatent_image 输入。
  7. 添加 VAE Decode 节点: Add Node -> latent -> VAE Decode
    • Load CheckpointVAE 输出连接到 VAE Decodevae 输入。
    • KSamplerLATENT 输出连接到 VAE Decodesamples 输入。
    • VAE Decode 输出 IMAGE
  8. 添加 Save Image 节点: Add Node -> image -> Save Image
    • VAE DecodeIMAGE 输出连接到 Save Imageimages 输入。

现在,你的第一个文生图工作流就搭建完成了!点击右侧面板的 Queue Prompt 按钮,ComfyUI就会开始生成图像,并在 Save Image 节点下显示结果。

六、扩展你的创作能力:更多节点与工作流

掌握了基础的文生图,你就可以开始探索ComfyUI的更多强大功能:

  1. 图生图 (Image-to-Image / Img2Img):

    • 核心思路: 加载一张初始图像,结合文本提示词和去噪强度,引导AI基于原图生成新图像。
    • 关键节点: Load Image (加载原始图像), VAE Encode (将图像编码为潜在空间数据), KSampler (设置较低的 denoise 值,如0.5-0.7)。
    • 工作流: Load Image -> VAE Encode -> KSampler (使用编码后的潜在图像作为输入) -> VAE Decode -> Save Image
  2. SDXL模型的使用:

    • SDXL模型通常需要两个CLIP模型来编码提示词(CLIP Text Encode (Prompt)节点),一个用于基础,一个用于Refiner。
    • 确保你的 Load Checkpoint 节点加载的是SDXL模型。
    • 连接两个 CLIP Text Encode 节点到 KSamplerpositivenegative 输入。
  3. ControlNet:

    • 功能: 精准控制图像的构图、姿态、边缘、深度等,让AI生成更符合你预期的图片。
    • 关键节点: Load ControlNet Model (加载ControlNet模型), ControlNet Apply (将ControlNet应用到模型), Load Image (加载ControlNet引导图,如线稿、骨骼图)。
    • 工作流:Load ControlNet Model的输出连接到ControlNet Apply,将Load Image的输出连接到ControlNet Applyimage输入。再将ControlNet Apply的输出连接到KSamplermodel输入。
  4. LoRA/Embeddings (Textual Inversion):

    • 功能: 引入特定风格、人物或概念。
    • 关键节点: LoraLoader (加载LoRA文件)。
    • 工作流: LoraLoader 节点通常放置在 Load Checkpoint 之后,它的 MODELCLIP 输出连接到后续的 KSamplerCLIP Text Encode 节点。
  5. Inpainting/Outpainting (修复/拓展):

    • 功能: 局部修改图像或扩展图像边界。
    • 关键节点: Load Image (加载原图和蒙版图), VAE Encode (for inpaint) (特殊的编码节点), Set Latent Noise Mask (应用蒙版)。
  6. Upscaling (图像放大):

    • 功能: 提升图像分辨率和细节。
    • 关键节点: Image Upscale (by)Image Upscale (with Model) (使用ESRGAN等超分模型)。
    • 工作流: VAE Decode -> Image Upscale -> Save Image

七、ComfyUI高级功能与使用技巧

  1. ComfyUI Manager:

    • 这是ComfyUI生态中一个非常重要的自定义节点,几乎是必装。
    • 安装: 在ComfyUI根目录的 custom_nodes 文件夹中,克隆或下载 ComfyUI-Manager 的GitHub仓库。重启ComfyUI后,右侧面板会出现 Manager 按钮。
    • 功能: 一键安装/更新自定义节点、模型、查找缺失节点、更新ComfyUI等,极大地简化了管理。
  2. 工作流的保存与加载:

    • 保存: 点击右侧面板的 Save,将当前工作流保存为.json文件。
    • 加载: 点击右侧面板的 Load,选择.json文件。
    • 拖拽加载: 更便捷的方式是,将图片生成后的.png文件(通常包含工作流元数据)直接拖拽到ComfyUI画布中,它会自动还原生成该图片时的工作流。
  3. 节点分组 (Group):

    • 右键点击画布,选择 Add Group,可以创建彩色区域,将相关节点归类,保持工作流整洁。
    • 点击分组标题,可以折叠或展开分组内容。
  4. 自定义节点 (Custom Nodes):

    • ComfyUI强大的扩展性主要来自于自定义节点。通过ComfyUI Manager,你可以浏览和安装各种强大的自定义节点,实现各种复杂功能。
  5. 优化建议:

    • 批量生成:Empty Latent Image 节点中调整 batch_size 可以一次性生成多张图片。
    • 启用TAESD (如果可用): 某些模型(如SDXL Turbo)支持TAESD,可以显著加速VAE解码过程,大幅提升生成速度。
    • 善用缓存: ComfyUI会缓存一些计算结果,如果你只是修改了采样参数,前面的节点可能不会重新计算。
    • 理解错误信息: 当出现红色节点或错误提示时,仔细阅读信息,通常能找到问题所在(例如模型未加载、节点连接错误)。
  6. 社区资源:

    • Civitai: 不仅有海量模型,很多图片在详情页会附带ComfyUI工作流(通常是PNG Info中的JSON数据)。
    • GitHub/Reddit: ComfyUI的官方仓库和相关社区是获取最新信息、自定义节点和寻求帮助的好地方。

八、结语

ComfyUI虽然初看起来有些复杂,但其背后的节点式逻辑一旦理解,你会发现它提供的自由度是无与伦比的。它不仅是Stable Diffusion的高效运行平台,更是一个让你深入理解AI绘画底层机制的强大工具。

从文生图开始,一步步探索图生图、ControlNet、LoRA,以及各种自定义节点,你会逐渐构建出属于自己的复杂工作流,实现前所未有的创作可能。耐心、实践和探索是掌握ComfyUI的关键。现在,是时候打开你的ComfyUI,开始你的节点式AI绘画之旅了!

滚动至顶部