ComfyUI基础教学:小白也能学会的节点式AI绘图 – wiki基地


ComfyUI基础教学:小白也能学会的节点式AI绘图——告别繁琐,拥抱高效与自由

前言:AI绘画浪潮下的新选择

在当今科技飞速发展的时代,人工智能(AI)已经渗透到我们生活的方方面面,其中AI绘画无疑是近年来最引人注目的一项应用。从简单的文字生成图像,到复杂的人物、场景创作,AI正以前所未有的速度改变着艺术创作的格局。对于许多AI绘画爱好者而言,Stable Diffusion WebUI(通常指Automatic1111)是他们接触AI绘画的第一个工具,其直观的标签页式界面确实降低了入门门槛。然而,随着创作需求日益复杂,A1111的黑盒式操作、资源消耗、以及在某些复杂工作流中的局限性也逐渐显现。

正是在这样的背景下,ComfyUI 应运而生,并迅速成为AI绘画领域的新宠。它以其独特的节点式(Node-based)工作流、极致的灵活性、高效的资源利用率以及无限的扩展性,吸引了越来越多的创作者。或许你曾听说它很“专业”,觉得“小白”难以驾驭,但请相信我,只要你跟随这篇教程,理解其核心思想,ComfyUI将为你打开一扇通往更高阶AI艺术创作的大门。它并非高不可攀,而是为追求效率与自由的你量身打造。

第一章:ComfyUI的独特魅力——为什么选择它?

在深入学习ComfyUI之前,我们首先要理解它与传统WebUI的最大区别,以及它能为你带来什么。

1.1 告别黑盒,拥抱透明:节点式工作流的核心优势

传统的WebUI,如A1111,通常将整个AI绘图过程封装在一个个标签页或功能区内。你输入提示词、选择模型、调整参数,然后点击“生成”,图像就出来了。这个过程对新手友好,但缺点也很明显:你很难理解图像是如何一步步生成的,每个参数到底在哪个环节起作用,以及数据是如何在各个模块之间流动的。这就像一个黑盒子,你只知道输入和输出。

ComfyUI则彻底打破了这种“黑盒”模式。它将AI绘画的每一个功能模块(如加载模型、输入提示词、进行采样、解码图像、保存图像等)都抽象成一个独立的节点(Node)。而这些节点之间通过连接线(Connection)来传递数据。整个绘图过程被清晰地分解成一系列可见的、可控的步骤,你能够直观地看到数据从模型加载,到提示词编码,再到潜在空间采样,最终解码成图像的完整流程。

  • 直观性: 整个工作流一目了然,你可以像搭建乐高积木一样组合节点。
  • 可控性: 对每个步骤都有细致入微的控制,你可以轻易地在任何环节插入、修改或替换节点。
  • 可理解性: 帮助你更好地理解Stable Diffusion的内部工作原理。
  • 可复现性: 每一个工作流都是一个独立的“配方”,方便分享、学习和复现。

1.2 高性能与资源优化:让你的显卡不再“喘气”

ComfyUI在设计之初就考虑到了效率。与A1111相比,ComfyUI在GPU显存管理上更为精细,尤其是在进行图像生成、放大或使用复杂工作流时,其显存占用通常更低,生成速度也更快。这意味着:

  • 低配显卡也能玩转: 即使你的显卡配置不是顶尖,ComfyUI也能让你体验到更流畅的AI绘画。
  • 复杂任务更从容: 在进行ControlNet、IP-Adapter、批处理等复杂操作时,ComfyUI能更有效地利用资源。
  • 多任务并行: 更低的资源占用也意味着你的电脑可以同时运行其他任务,而不会卡顿。

1.3 无限的扩展性与实验性:探索AI绘画的边界

ComfyUI的节点式架构天生具备高度的扩展性。开发者可以非常方便地创建和分享自定义节点,将最新的AI模型、功能或研究成果集成进来。这意味着:

  • 功能更新快: 最新的Stable Diffusion模型、算法或功能,往往会第一时间在ComfyUI社区中出现。
  • 实验性强: 鼓励用户自由组合节点,尝试各种新奇的创意,探索AI绘画的无限可能。
  • 社区活跃: 丰富的第三方节点库(如ComfyUI Manager、Impact Pack、Efficiency Nodes等)极大地丰富了ComfyUI的功能。

总而言之,ComfyUI是为那些希望深入理解AI绘画机制、追求极致控制、高效工作以及乐于探索创新的用户而设计的。它是一个强大的工具,一旦掌握,你将发现AI绘画的世界比想象中更加广阔。

第二章:踏出第一步——ComfyUI的安装与启动

对于“小白”来说,安装可能是一个小小的挑战,但只要跟着步骤来,一切都会顺利。

2.1 前置条件检查

在安装ComfyUI之前,请确保你的电脑满足以下基本条件:

  1. 显卡: 推荐NVIDIA显卡(GTX 1660 Ti或RTX 20系列及以上)。虽然CPU也能运行,但生成速度会非常慢。
  2. 显卡驱动: 确保你的NVIDIA显卡驱动是最新版本。这对于AI程序的稳定运行至关重要。
  3. Python: ComfyUI通常依赖Python运行。但如果你下载的是整合包,可能已经包含了Python环境。
  4. Git: 一个版本控制工具,用于从GitHub下载ComfyUI。

2.2 安装ComfyUI(推荐Git克隆方式)

  1. 选择安装目录: 在你的硬盘上选择一个空间充足的文件夹,例如 D:\ComfyUI
  2. 打开Git Bash或命令提示符(CMD): 在该文件夹内,按住 Shift 键并点击鼠标右键,选择“在此处打开 Git Bash”或“在此处打开 PowerShell 窗口”。如果你没有安装Git,需要先安装Git。
  3. 克隆ComfyUI仓库: 在打开的终端中输入以下命令并回车:
    bash
    git clone https://github.com/comfyanonymous/ComfyUI.git
    cd ComfyUI

    这会将ComfyUI的所有文件下载到你当前的 ComfyUI 文件夹中。
  4. 安装依赖: 进入 ComfyUI 文件夹后,运行以下命令安装Python依赖:
    bash
    pip install -r requirements.txt

    如果你的系统中有多个Python版本,可能需要使用 python -m pip install -r requirements.txtpip3 install -r requirements.txt

2.3 下载必备模型

AI绘画的核心是各种模型文件。ComfyUI与A1111的模型是通用的。

  1. Checkpoint(检查点模型): 这是生成图像的基础大模型,例如SDXL 1.0、MajicMIX realistic等。
    • 下载地址:Civitai (civitai.com)、Hugging Face (huggingface.co)
    • 放置路径:ComfyUI\models\checkpoints
  2. LoRA(低秩适应模型): 用于对特定风格、人物或物品进行微调的小模型。
    • 放置路径:ComfyUI\models\loras
  3. VAE(变分自编码器): 负责将潜在空间中的数据解码成可见图像,对图像细节和色彩表现有重要影响。很多Checkpoint自带VAE,但有时需要单独加载。
    • 放置路径:ComfyUI\models\vae
  4. Embedding/Textual Inversion: 用于增强或修正提示词效果的小文件。
    • 放置路径:ComfyUI\models\embeddings
  5. ControlNet模型: 用于精确控制图像构图、姿态等。
    • 放置路径:ComfyUI\models\controlnet
    • 重要提示: 请确保模型名称和文件类型(如.safetensors)正确,并且放置在对应的文件夹中。

2.4 启动ComfyUI

  1. NVIDIA显卡用户: 双击运行 ComfyUI 文件夹中的 run_nvidia_gpu.bat
  2. AMD显卡用户: 双击运行 run_amd_gpu.bat
  3. CPU用户(不推荐): 双击运行 run_cpu.bat

首次启动时,程序可能会下载一些PyTorch等依赖,请耐心等待。启动成功后,你的浏览器会自动打开一个网址,通常是 http://127.0.0.1:8188,这就是ComfyUI的操作界面。

2.5 界面初探

进入ComfyUI界面,你可能会感到有些茫然,因为它不像A1111那样有明确的标签页。你看到的是一个巨大的空白画布,上面散落着几个默认节点。

  • 画布区: 最大的空白区域,你所有节点都会在这里搭建。
    • 鼠标滚轮:缩放画布。
    • 鼠标中键(按住):拖动画布。
  • 节点: 方形或矩形的功能模块,每个节点有输入端口(左侧)和输出端口(右侧)。
  • 连接线: 连接不同节点端口的线条,代表数据流向。
  • “Queue Prompt”(队列提示)按钮: 位于右侧面板上方,点击后,ComfyUI会按照你搭建的工作流,从左到右、从上到下地执行生成任务。
  • 右侧面板: 显示当前节点参数、提示词历史等信息。
  • “Save”/“Load”按钮: 用于保存和加载你的工作流(.json文件)。

第三章:核心概念解析——节点与连接的哲学

理解节点和连接是玩转ComfyUI的关键。

3.1 什么是节点(Node)?

节点是ComfyUI的基本功能单元。每一个节点都执行一个特定的任务,例如:

  • 加载Checkpoint模型 (Load Checkpoint)
  • 编码提示词 (CLIP Text Encode (Prompt))
  • 设置采样参数 (KSampler)
  • 解码潜在空间数据为图像 (VAE Decode)
  • 保存生成的图像 (Save Image)
  • 加载LoRA模型 (Load LoRA)
  • 加载ControlNet模型 (Load ControlNet Model)
  • 图像放大 (Image Upscale (with Model))

每个节点都有不同的输入端口(左侧)和输出端口(右侧)。

  • 输入端口: 接收来自其他节点的数据,通常有默认值或下拉菜单供选择。
  • 输出端口: 将节点处理后的结果数据传递给下一个节点。

例如,Load Checkpoint 节点会有一个名为 model 的输出端口,它输出的是加载好的大模型数据。

3.2 什么是连接(Connection)?

连接线是ComfyUI中数据流动的管道。它将一个节点的输出端口连接到另一个节点的输入端口,从而构建起整个图像生成流程。

  • 数据类型匹配: 只有数据类型相同的端口才能互相连接。例如,一个输出 MODEL 类型的端口只能连接到输入 MODEL 类型的端口。ComfyUI的连接线通常会根据数据类型显示不同的颜色(例如,模型数据可能是蓝色,潜在空间数据是绿色,图像数据是黄色,文本是橙色等),这有助于你判断是否能连接。
  • 单向流动: 数据总是从左到右、从上到下地单向流动。
  • 多对一 / 一对多: 一个输出端口可以连接到多个输入端口(数据分流),一个输入端口也可以接受来自多个输出端口的数据(数据合并,通常需要特定的合并节点)。

操作方法:
* 添加节点: 在画布任意空白处右键单击,然后选择“Add Node”,或者直接输入节点名称进行搜索。
* 连接节点: 鼠标左键点击一个节点的输出端口,然后拖动到另一个节点的输入端口上松开,即可建立连接。
* 断开连接: 点击连接线,按 Delete 键即可删除。

3.3 常用节点类型一览

了解一些常用节点的分类,可以帮助你更快地构建工作流:

  1. 模型加载节点(Model Loading Nodes):
    • Load Checkpoint:加载基础大模型。
    • Load LoRA:加载LoRA微调模型。
    • Load VAE:加载VAE模型。
    • Load ControlNet Model:加载ControlNet模型。
  2. 文本编码节点(Text Encoding Nodes):
    • CLIP Text Encode (Prompt):将文字提示词转换为模型可理解的“条件”(Conditioning)数据。通常一个用于正面提示词,一个用于负面提示词。
  3. 潜在空间节点(Latent Nodes):
    • Empty Latent Image:创建一个指定大小的、空白的潜在空间图像(噪声),这是生成过程的起点。
    • VAE Encode:将真实图像(PNG/JPG)编码为潜在空间数据(用于图生图)。
    • VAE Decode:将潜在空间数据解码为真实图像。
  4. 采样器节点(Sampler Nodes):
    • KSampler:核心采样器,负责从潜在空间噪声中逐步“去噪”,最终生成潜在空间图像。
  5. 图像处理节点(Image Processing Nodes):
    • Save Image:保存生成的图像。
    • Image Upscale (with Model):使用超分模型放大图像。
    • Preview Image:预览图像(通常不保存)。
  6. 工具节点(Utility Nodes):
    • Primitive:用于输入数字、布尔值或字符串。
    • Conditioning Combine:合并多个条件(如LoRA或ControlNet的条件)。
    • Set Latent Noise Mask:设置潜在空间的噪声蒙版(用于局部重绘)。

第四章:小白入门——你的第一个ComfyUI工作流(手把手教学)

现在,让我们一起搭建一个最基础的ComfyUI工作流,生成你的第一张AI图片。

4.1 清空默认工作流

当你启动ComfyUI时,会有一个默认的工作流。为了避免混淆,我们先将其清空。
1. 点击右侧面板上方的“Clear”按钮。
2. 画布现在应该完全空白了。

4.2 搭建基础文生图工作流

我们将构建一个标准的文生图(Text-to-Image)工作流,其核心逻辑是:加载模型 -> 编码提示词 -> 创建潜在空间 -> 采样 -> 解码图像 -> 保存图像。

步骤一:加载Checkpoint模型
1. 在空白画布上右键单击
2. 选择“Add Node” -> “loaders” -> “Load Checkpoint”。
3. 在新出现的 Load Checkpoint 节点中,点击 ckpt_name 字段旁边的下拉菜单,选择你下载好的基础模型,例如 sd_xl_base_1.0.safetensors
* 输出端口: MODEL (蓝色), CLIP (橙色), VAE (紫色)。

步骤二:编码正面提示词
1. 右键单击 -> “Add Node” -> “conditioning” -> “CLIP Text Encode (Prompt)”。
2. 将 Load Checkpoint 节点的 CLIP 输出端口连接到 CLIP Text Encode (Prompt) 节点的 clip 输入端口。
3. 在 CLIP Text Encode (Prompt) 节点的 text 字段中输入你的正面提示词。例如:
a beautiful girl, long hair, detailed face, cinematic lighting, 8k, masterpiece
* 输出端口: CONDITIONING (绿色)。

步骤三:编码负面提示词
1. 重复步骤二,再添加一个 CLIP Text Encode (Prompt) 节点。
2. 同样将 Load Checkpoint 节点的 CLIP 输出端口连接到这个新节点的 clip 输入端口。
3. 在 text 字段中输入你的负面提示词。例如:
ugly, deformed, disfigured, poor quality, bad anatomy, blurry, low resolution
* 输出端口: CONDITIONING (绿色)。

步骤四:创建空白潜在空间图像
11. 右键单击 -> “Add Node” -> “latent” -> “Empty Latent Image”。
12. 你可以调整 widthheight 来设置生成图像的分辨率(例如,SDXL通常是1024×1024),batch_size 决定一次生成多少张图(先设为1)。
* 输出端口: LATENT (绿色)。

步骤五:核心采样器 KSampler
1. 右键单击 -> “Add Node” -> “sampling” -> “KSampler”。
2. 连接输入:
* 将 Load Checkpoint 节点的 MODEL 输出端口连接到 KSamplermodel 输入端口。
* 将正面提示词节点的 CONDITIONING 输出端口连接到 KSamplerpositive 输入端口。
* 将负面提示词节点的 CONDITIONING 输出端口连接到 KSamplernegative 输入端口。
* 将 Empty Latent Image 节点的 LATENT 输出端口连接到 KSamplerlatent_image 输入端口。
3. 参数设置:
* seed:随机种子,保持 -1 会每次随机生成。
* steps:采样步数,推荐 20-30 步。
* cfg:Classifier-Free Guidance,提示词相关性,推荐 6-8 之间。
* sampler_name:采样器类型,例如 dpmpp_2m_sdeeuler_ancestral
* scheduler:调度器,例如 karrasexponential
* denoise:去噪强度,通常文生图保持 1.0
* 输出端口: LATENT (绿色)。

步骤六:解码潜在空间为图像
1. 右键单击 -> “Add Node” -> “latent” -> “VAE Decode”。
2. 将 Load Checkpoint 节点的 VAE 输出端口连接到 VAE Decodevae 输入端口。
3. 将 KSampler 节点的 LATENT 输出端口连接到 VAE Decodesamples 输入端口。
* 输出端口: IMAGE (黄色)。

步骤七:保存图像
1. 右键单击 -> “Add Node” -> “image” -> “Save Image”。
2. 将 VAE Decode 节点的 IMAGE 输出端口连接到 Save Imageimages 输入端口。
* 你可以在 filename_prefix 字段设置保存文件的前缀,quality 设置图像质量。
* 注意: 通常也会添加一个 Preview Image 节点连接到 VAE Decode 后面,方便在不保存文件的情况下预览结果。

4.3 运行你的第一个工作流

  1. 仔细检查所有节点是否都已正确连接,没有断开的连接线,也没有数据类型不匹配的连接。
  2. 点击右侧面板上方的“Queue Prompt”按钮。
  3. ComfyUI将开始执行你的工作流,每个正在处理的节点都会有一个绿色的边框。
  4. 稍等片刻,一张由AI生成的图片将出现在 Save Image 节点下方(如果你添加了 Preview Image 节点,也会显示)。同时,图像会保存在 ComfyUI\output 文件夹中。

恭喜你!你已经成功搭建并运行了第一个ComfyUI工作流。

第五章:进阶之路——探索ComfyUI的无限可能

掌握了基础工作流,你就可以开始探索ComfyUI更强大的功能了。

5.1 提示词的艺术与增强

  • 多个CLIP Text Encode (Prompt): 对于SDXL模型,通常有两个CLIP编码器。你可以使用两个 CLIP Text Encode 节点,分别连接到 Load Checkpoint 节点的 CLIP 输出(通常会分流成 CLIP_GCLIP_LCLIP_ACLIP_B 两种,具体看模型和节点设计)。
  • LoRA模型集成:
    1. 添加 Load LoRA 节点(“loaders”)。
    2. 选择你要加载的LoRA模型。
    3. Load CheckpointMODELCLIP 输出,连接到 Load LoRA 的对应输入。
    4. Load LoRAMODELCLIP 输出,连接到 KSamplerCLIP Text Encode 的对应输入。
    5. 调整 strength_modelstrength_clip 参数来控制LoRA的影响强度。
  • Conditioning Combine: 当你需要合并多个条件(例如,同时使用LoRA和ControlNet)时,可以使用 Conditioning Combine 节点。

5.2 图像处理与融合

  • 图生图(Image-to-Image):
    1. 添加 Load Image 节点(“image”),加载你的参考图像。
    2. 添加 VAE Encode 节点(“latent”)。将 Load ImageIMAGE 连接到 VAE Encodepixels,将 Load CheckpointVAE 连接到 VAE Encodevae
    3. VAE EncodeLATENT 输出连接到 KSamplerlatent_image 输入。
    4. KSampler 中,将 denoise 参数从 1.0 调整为 0.50.8 之间(表示保留原图多少细节)。
  • 图像放大(Upscaling):
    1. VAE Decode 之后,添加 Upscale Model Loader 节点(加载放大模型,如ESRGAN)。
    2. 添加 Image Upscale (with Model) 节点。
    3. VAE DecodeIMAGE 连接到 Image Upscaleimage
    4. Upscale Model Loaderupscale_model 连接到 Image Upscaleupscale_model
  • ControlNet的强大: ControlNet允许你精确控制图像的构图、姿态、深度等。
    1. 添加 Load ControlNet Model 节点。
    2. 添加预处理器节点(如 CannyEdgeOpenPoseDepthMap 等,通常在 _preprocessors 类别下),用于从参考图像中提取控制信息。
    3. 添加 Apply ControlNet 节点(“conditioning”)。
    4. Load ControlNet Modelcontrol_net 连接到 Apply ControlNet
    5. 将预处理器节点的输出连接到 Apply ControlNetimage
    6. KSamplerpositivenegative conditioning(在它们进入 KSampler 之前)连接到 Apply ControlNetconditioning
    7. Apply ControlNetCONDITIONING 输出连接到 KSamplerpositivenegative
    8. 调整 strength 参数。

5.3 批量处理与自动化

  • Batch Size:Empty Latent Image 节点中,修改 batch_size 可以一次性生成多张图片。
  • Workflows(工作流): ComfyUI允许你保存和加载整个工作流。
    • 点击右侧面板的“Save”按钮,将当前工作流保存为 .json 文件。
    • 点击“Load”按钮,选择 .json 文件来加载之前的工作流。
    • 直接拖拽 .json 文件到画布上也可以加载。
    • 一个非常棒的功能: 你可以将一张ComfyUI生成的图片直接拖拽到画布上,它会自动加载生成这张图片时所用的工作流!这意味着你可以轻松学习和复用别人的工作流。

5.4 ComfyUI Manager与自定义节点

ComfyUI的生态系统极其活跃,有大量的第三方节点扩展了其功能。

  1. 安装ComfyUI Manager:
    • 在ComfyUI根目录,打开命令行或Git Bash。
    • bash
      git clone https://github.com/ltdrdata/ComfyUI-Manager.git custom_nodes/ComfyUI-Manager
    • 重启ComfyUI。
    • 右侧面板会出现“Manager”按钮。
  2. 使用Manager:
    • 点击“Manager”,你可以方便地安装、更新和管理第三方自定义节点。
    • “Install Missing Custom Nodes”:当你加载一个使用了你未安装的节点的工作流时,这个功能会自动帮你检测并安装。
    • “Install Custom Nodes”:浏览并安装各种有趣实用的节点。
    • 推荐的自定义节点:
      • Impact Pack: 提供了许多高级图像处理、蒙版操作和工作流简化节点。
      • Efficiency Nodes: 进一步简化工作流,将多个常用节点打包成一个。
      • RGthree’s ComfyUI Nodes: 丰富的实用节点,包括节点分组、条件逻辑等。
      • WAS Node Suite: 更多专业的图像处理和AI模型集成。

安装这些自定义节点后,你的ComfyUI将变得更加强大和灵活。

第六章:学习策略与资源推荐

ComfyUI的学习曲线可能比A1111陡峭,但只要掌握了方法,你将快速进步。

  1. 多看、多学、多动手:
    • 看: 观察别人分享的工作流,理解其设计逻辑。
    • 学: 学习每个节点的功能,理解数据类型匹配的重要性。
    • 动手: 亲自搭建工作流,从简单到复杂,不断尝试。
  2. 研究工作流: 这是最快的学习方法。
    • 在Civitai、Hugging Face等网站下载ComfyUI生成的图片。
    • 将这些图片直接拖拽到ComfyUI的画布上,它会重现生成这张图片的工作流。仔细研究每个节点和连接,理解它们的作用。
  3. 官方GitHub和社区:
    • ComfyUI的GitHub仓库是最新信息、文档和问题的最佳来源。
    • B站、YouTube等视频平台上有大量优秀的ComfyUI教学视频,可以跟着操作。
    • 加入相关的AI绘画社区,与其他爱好者交流,互相学习。
  4. 从小目标开始:
    • 先掌握文生图、图生图的基础流程。
    • 再尝试加入LoRA、VAE。
    • 然后挑战ControlNet、图像放大、局部重绘等。
    • 逐步掌握复杂的工作流。

结语:ComfyUI——你的AI绘画新纪元

ComfyUI不仅仅是一个AI绘画工具,它更像一个强大的可视化编程环境,让你以更直观、更灵活的方式与AI模型互动。从一开始的茫然,到逐渐掌握节点与连接的哲学,再到能够自由构建复杂的艺术流水线,这个过程本身就是一种乐趣和成就。

对于“小白”而言,ComfyUI可能看起来有些复杂,但请不要被初始界面吓倒。它背后是清晰的逻辑和无限的可能。一旦你理解了节点式工作流的核心,你将发现它比传统WebUI更加高效、更具表现力,更能激发你的创造力。

未来,AI绘画无疑将继续深入发展,而ComfyUI这种开放、透明、高效的架构,无疑是适应这种发展趋势的理想选择。它赋予你更大的掌控权,让你不再只是AI的“使用者”,更是AI艺术流程的“设计师”和“探索者”。

勇敢地踏出这一步吧!AI绘画的浩瀚宇宙,ComfyUI将是你遨游其中的最佳座驾。祝你在AI绘画的旅程中,享受创作的乐趣,创造出属于你的精彩作品!


文章字数统计: 约3900字。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部