☰
ComfyUI工作流搭建指南:从零上手到AI视频生成
2026/10/15 4:53:05 网站建设 项目流程

最近在折腾 AI 绘画和 AI 视频生成时,相信不少朋友都遇到过一个困惑:Stable Diffusion WebUI 玩熟了以后,总觉得可控性不够,换个模型、改个参数都要重新折腾一波,想要做一些批量处理、精细控制更是无从下手。后来我转到 ComfyUI 工作流方向,才发现节点式工具带来的可复现性有多香。不过说实话,刚开始接触 ComfyUI 时,满屏的节点和连线也确实劝退了不少人,网上资料又零散,大部分教程不是太浅就是直接贴一个复杂工作流让人复现,对新手非常不友好。

这篇文章会从零开始,围绕 ComfyUI 工作流搭建这个主题,把环境准备、核心概念、常用节点、完整实战、视频生成思路以及常见报错全部串起来。内容定位是“新手能学会,老手能查漏”,全程以实操为主,没有太多废话。读完以后,你可以自己拖出一个文生图工作流,也能看懂社区里那些被人分享的复杂工作流,并为后续学习 AI 视频生成打下基础。

1. ComfyUI 是什么,为什么要学它

1.1 从“填参数式”到“节点式”的转变

简单来说,ComfyUI 是一个基于节点的 Stable Diffusion 图形化操作工具。它和 WebUI 最大的区别在于:WebUI 把功能封装成一个个选项卡,你需要在不同的页面里填参数、点按钮;ComfyUI 则把所有操作拆分成节点,每个节点负责一个独立功能,通过连线把数据流串联起来。

从使用体验上看,ComfyUI 不像是一个“绘图软件”,更像是一个“可视化流程编辑器”。它把你的出图过程变成了一个可以自由拼接的流程图:模型加载是一个节点,提示词编码是一个节点,采样器是一个节点,最后保存图片又是另一个节点。节点之间通过连线传递数据,整个生成过程一目了然。

1.2 ComfyUI 解决了什么问题

传统 WebUI 在以下几个场景中会显得比较吃力:

  • 复现困难:上次用了一套参数,这次想完全复现,还得逐个选项去核对,漏掉一个就废了。
  • 流程固定:想要加入额外的控制逻辑(比如 ControlNet、局部重绘、多模型融合),需要在不同界面之间跳来跳去。
  • 批量作业不友好:如果你要一次性生成几十张图,并且每张图使用不同的提示词或参数,WebUI 的脚本机制虽然能解决一部分,但灵活性有限。
  • 资源占用偏高:WebUI 在内存和显存管理上有时不够紧凑,长期运行时容易积累缓存。

ComfyUI 在这几个方面有明显优势:

  • 工作流即文件:一张图片的完整生成流程可以保存为 JSON 工作流文件。共享给其他人后,对方只要环境齐全,拖进去就能得到一模一样的流程,甚至可以直接复现结果。
  • 节点自由拼接:想要加 LoRA、加 ControlNet、改采样策略,只需在对应位置插入节点,不需要重启程序或切换页面。
  • 显存优化好:ComfyUI 的潜空间(Latent Space)处理和显存回收机制相对高效,相同显卡下往往能跑更大的分辨率或更复杂的流程。
  • 社区生态丰富:无论是图生图、ControlNet、AnimateDiff 视频生成,还是各种模型融合玩法,社区工作流都能直接复用。

1.3 适合人群与学习价值

如果你是以下类型,ComfyUI 工作流很值得学习:

  • AI 绘画新手:刚接触 Stable Diffusion 生态,不想被 WebUI 的固定操作限制住。
  • 设计创作者:希望生成质量稳定、风格可控、能批量出图的素材。
  • 技术开发者:希望通过 API 集成 ComfyUI 到自己的项目里,实现服务化出图。
  • AI 视频爱好者:AnimateDiff、SVD 这类视频生成方案目前很多都是优先在 ComfyUI 中集成。

需要说明的是,ComfyUI 的学习曲线确实比 WebUI 陡一些,但它的核心概念并不多,只要理解了节点、连线、潜空间这几个核心点,后续的复杂工作流也只是在此基础上堆叠节点而已。

2. 环境准备:安装部署与模型放置

在学习任何工具之前,先把环境装好是第一步。ComfyUI 的安装方式主要有两种:一种是使用社区整理好的一键整合包,另一种是基于 GitHub 官方源码手动部署。下面分别介绍。

2.1 硬件要求与系统环境

先看硬件。ComfyUI 底层依赖 PyTorch 和 CUDA,因此NVIDIA 显卡是首选。如果你的显卡显存是 6GB 左右,可以正常跑 SD 1.5 模型的小尺寸出图;如果显存是 12GB 或更高,可以比较舒服地跑 SDXL,以及部分 AI 视频生成模型。

关于很多人关心的“3060 能跑 AI 视频生成吗”这个问题,答案是可以跑,但需要控制参数。3060 有 8GB 显存版本和 12GB 显存版本,12GB 会从容很多。实际使用时建议把分辨率控制在 512 或 640 级别、帧数控制在 16 到 32 帧,并配合低显存参数启动。视频生成对显存和生成时间的消耗都比文生图高不少,所以也不必追求一次生成很长很清晰的视频,先用短片段测试流程,再逐步优化。

操作系统方面,Windows、Linux、macOS 都可以。Windows 用户最多,社区教程也最丰富,本文以 Windows 为主要演示环境。macOS 用户也可以安装,但如果是 Apple Silicon 芯片,部分视频类节点可能需要在 MPS 模式下运行,兼容性要以你实际安装的版本为准。

2.2 方式一:使用整合包安装

对于新手来说,最省事的方式是下载社区整理好的整合包,常见的如“秋叶整合包”等。这类整合包一般会内置 Python 环境、ComfyUI 主程序、常用插件以及部分模型,基本做到“解压即用”。

使用整合包时有几点建议:

  1. 尽量从作者官方发布渠道获取,不要随意在网盘群、第三方平台下载来路不明的版本,避免文件被篡改或携带恶意内容。
  2. 整合包内一般自带启动脚本,双击启动后浏览器会自动打开 ComfyUI 界面。
  3. 如果整合包版本较旧,可以后续通过 ComfyUI Manager 或 Git Pull 更新主程序。

2.3 方式二:官方源码手动安装

手动安装虽然步骤多一点,但能让你更清楚地理解 ComfyUI 的目录结构和依赖关系,也更方便后续做二次开发。

第一步,安装基础工具:

  • 安装 Git。
  • 安装 Python 3.10 或 3.11。不同版本的 ComfyUI 对 Python 版本要求会变化,建议优先使用官方 README 中指定的版本。

第二步,克隆官方仓库:

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

第三步,创建并激活虚拟环境:

python -m venv venv venv\Scripts\activate

Windows 下激活命令是venv\Scripts\activate,Linux 和 macOS 下是source venv/bin/activate。

第四步,安装依赖:

pip install -r requirements.txt

如果你使用的是 NVIDIA 显卡,建议额外确认 PyTorch 版本是否包含对应 CUDA 支持。安装时可以使用 PyTorch 官方提供的安装命令,示例思路如下,实际请以 PyTorch 官网为准:

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

第五步,启动 ComfyUI:

python main.py

启动成功后会看到类似这样的日志:

Starting server To see the GUI go to: http://127.0.0.1:8188

浏览器打开http://127.0.0.1:8188就能看到 ComfyUI 的节点编辑界面了。

如果需要局域网访问,可以带参数启动:

python main.py --listen 0.0.0.0 --port 8188

2.4 目录结构与模型放置

ComfyUI 的模型目录集中在models文件夹下,不同模型类型对应不同子目录:

文件夹作用
models/checkpoints存放 AI 绘画大模型,如 SD 1.5、SDXL 的 checkpoint 文件
models/vae存放 VAE 模型,用于图像潜空间与像素空间的转换
models/loras存放 LoRA 模型,用于风格、角色、画质的微调
models/controlnet存放 ControlNet 模型,用于结构控制
models/embeddings存放 Textual Inversion 嵌入向量
models/unet部分新的视频或扩散模型会使用 unet 子目录

典型的目录结构如下:

ComfyUI/ ├── models/ │ ├── checkpoints/ │ │ └── dreamshaper_8.safetensors │ ├── vae/ │ │ └── vae-ft-mse-840000.safetensors │ ├── loras/ │ └── controlnet/ ├── custom_nodes/ ├── input/ ├── output/ └── main.py

模型可以从 Civitai、Hugging Face 等社区获取。下载后按类型放入对应目录,然后回到 ComfyUI 界面,在 Checkpoint 加载器中刷新列表即可看到新模型。

2.5 如何导入别人分享的工作流

社区里经常分享后缀为.json的工作流文件,通常有两种导入方式:

  1. 直接把这个.json文件拖进 ComfyUI 窗口,界面会自动加载对应的节点图。
  2. 点击界面右侧的“Load”按钮,选择 JSON 文件。

导入后如果节点报错,大多数情况下是因为本地缺少对应的自定义节点或模型,这一点会在后面的常见问题部分详细说明。

3. 核心概念与节点原理拆解

如果说 WebUI 像是“傻瓜相机”,那 ComfyUI 更像是“单反相机”。想要用好它,不能只靠记忆操作步骤,而是要理解每个节点背后的含义。

3.1 工作流到底在“流”什么

一个 ComfyUI 工作流,本质上是在描述数据流动的过程。这些数据包括模型对象、文本向量、图像张量、潜空间张量等。

举个例子,文生图的典型数据流如下:

Checkpoint加载器 → 模型数据 ↓ CLIP文本编码(正向) → 条件数据 → KSampler采样器 → 潜空间图像 → VAE解码 → 像素图像 → 保存图片 CLIP文本编码(负向) → 条件数据 ↗

可以理解为:模型加载节点把底模加载到内存,文本编码节点把提示词转换成模型能理解的向量条件,采样器在潜空间里根据条件不断“去噪”生成潜空间图像,VAE 解码器把潜空间图像转换成我们能够看到的像素图片,最后保存到本地。

3.2 必须掌握的常用节点

以下节点是几乎所有工作流都会用到的:

Checkpoint 加载器(Load Checkpoint)

它的作用是加载大模型文件,并输出三个数据:MODEL(采样用的扩散模型)、CLIP(文本编码器)、VAE(图像变分自编码器)。这三个输出会分别连接到不同节点。

CLIP 文本编码器(CLIP Text Encode)

负责把提示词文本转换成条件向量。通常一个工作流里需要两个:一个接收正向提示词,一个接收负向提示词。

潜空间图像(Empty Latent Image)

用来初始化一张空白潜空间图,你可以在这里设置宽、高、批次数。要注意的是,这里的宽高是生成图像的像素尺寸,但处理过程是在潜空间中完成的。

KSampler(采样器)

这是整个工作流中最核心的节点,决定了生成质量和风格。常用参数包括:

参数含义
seed随机种子,固定后可以复现相同结果
steps采样步数,越多越精细,但速度越慢
cfg提示词引导强度,数值越高越贴近提示词,但过高会过饱和
sampler_name采样器名称,如 euler、dpmpp_2m、ddim 等
scheduler调度器,如 normal、karras、exponential
denoise去噪强度,图生图时常用 0.4 到 0.8 之间

VAE 解码器(VAE Decode)

把潜空间图像张量转换为像素图像张量。没有这一步,我们无法直接查看或保存生成结果。

保存图像节点(Save Image)

接收解码后的图像,保存到output目录。

3.3 潜空间是什么

理解潜空间是理解 ComfyUI 的关键。

Stable Diffusion 模型并不是直接在高分辨率像素空间里进行去噪,而是先把图压缩到一个低维潜空间(Latent Space)中,尺寸通常是原图的八分之一左右。这样做可以大幅减少计算量,模型只在这个压缩空间里处理图像特征,最后再用 VAE 解码还原成高清图片。

在 ComfyUI 中,KSampler 操作的其实是潜空间数据,而不是我们肉眼看到的图像。所以你会看到工作流里经常出现“Latent”字样的节点。很多新手在这里容易困惑:为什么保存图片之前要多一步 VAE Decode?因为如果不解码,节点输出的不是正常图片,无法保存和预览。

3.4 常见误区

  • 误区一:节点越多效果越好。实际上很多复杂工作流是为了实现特定功能,而不是为了堆节点。如果只是普通出图,七八个节点就够了。
  • 误区二:导入工作流后报错只是因为模型没下载。报错信息如果是“Missing nodes”,那多半是缺少自定义节点,而不是模型文件。
  • 误区三:ComfyUI 不能用中文提示词。提示词本质上是一段文本,是否支持中文取决于底模和文本编码器。大多数底模训练语料以英文为主,使用英文提示词效果更稳定,但如果你加载了支持中文的模型,也可以试验中文提示词。

4. 实战案例一:从零搭建文生图工作流

下面我们动手搭建第一个完整的文生图工作流。

4.1 操作思路

在 ComfyUI 的空白画布中,右键打开节点菜单,或者双击空白处搜索节点。我们需要依次添加以下节点:

节点类型作用
Load Checkpoint加载底模
CLIP Text Encode(正向)编码正向提示词
CLIP Text Encode(负向)编码负向提示词
Empty Latent Image创建空白潜空间图
KSampler采样生成
VAEDecode把潜空间图解码为像素图
Save Image保存图片

4.2 连线关系

连线时需要遵循接口类型匹配原则:

  1. Checkpoint 加载器的MODEL输出连接到 KSampler 的model输入。
  2. Checkpoint 加载器的CLIP输出分别连接到两个文本编码节点的clip输入。
  3. 正向文本编码节点的输出连接到 KSampler 的positive输入。
  4. 负向文本编码节点的输出连接到 KSampler 的negative输入。
  5. Empty Latent Image 的LATENT输出连接到 KSampler 的latent_image输入。
  6. KSampler 的LATENT输出连接到 VAEDecode 的samples输入。
  7. Checkpoint 加载器的VAE输出连接到 VAEDecode 的vae输入。
  8. VAEDecode 的IMAGE输出连接到 Save Image 的images输入。

4.3 参数配置建议

在 Checkpoint 加载器中,选择一个你已经下载好的底模,比如 SD 1.5 系列的 realistic 风格模型或二次元模型。

正向提示词示例:

best quality, masterpiece, 1girl, solo, detailed face, soft lighting, anime style

负向提示词示例:

lowres, bad anatomy, bad hands, missing fingers, extra digits, blurry, jpeg artifacts, watermark

KSampler 参数可以这样设置:

seed: 42 steps: 25 cfg: 7 sampler_name: dpmpp_2m scheduler: karras denoise: 1

对于 SD 1.5 模型,steps=25、cfg=7是一个比较通用且稳定的组合。SDXL 模型可以适当调整,比如steps=30、cfg=5左右,具体以你使用的模型说明为准。

4.4 运行与结果验证

点击界面右侧的“Queue Prompt”按钮,开始执行工作流。这时你会看到节点依次从灰色变为高亮状态,进度条会显示当前采样进度。

生成完成后,图片会出现在 Save Image 节点上,同时保存到output目录。你可以对比不同 seed、不同采样器、不同 cfg 值下的输出,观察画面变化。这里建议新手多做几组实验,感受参数变化对画面的影响:

  • 把 seed 改成其他任意数字,画面会整体变化。
  • 把 cfg 从 7 改到 15,画面会变得更“锐”但容易失真。
  • 把 steps 从 25 降低到 10,生成速度变快,但细节可能会丢失。

这个实验过程虽然简单,却是理解 ComfyUI 工作流最好的方式。

5. 实战案例二:图生图与 LoRA 风格控制

当你掌握了基础文生图工作流之后,就可以往里面叠加更多功能了。这里重点介绍图生图和 LoRA 两种最常见的进阶玩法。

5.1 图生图工作流的搭建

图生图的目标是让模型根据一张参考图生成新的图像。与文生图相比,它多了一步“把参考图像编码到潜空间”的操作。

在文生图工作流的基础上做如下调整:

  1. 添加一个“Load Image”节点,加载你的参考图片。
  2. 添加一个“VAE Encode”节点,把参考图片从像素空间编码到潜空间。
  3. 将“Load Image”的图像输出连接到“VAE Encode”的pixels输入。
  4. 将 Checkpoint 加载器的VAE输出连接到“VAE Encode”的vae输入。
  5. 将“VAE Encode”的LATENT输出连接到 KSampler 的latent_image输入,替换掉原来的 Empty Latent Image。

注意,图生图工作流中不再需要 Empty Latent Image 节点。KSampler 的denoise参数需要调低,比如设置为0.5到0.7。它的含义是“保留多少原图信息”,denoise=0表示完全保留原图,denoise=1表示完全重新生成。所以图生图时如果想让结果既保留构图又改变风格,denoise通常控制在0.5左右比较合适。

5.2 LoRA 工作流的接入方式

LoRA 是轻量级模型微调技术,它不会替换掉整个底模,而是作为一个额外的权重模块叠加到底模上。在 ComfyUI 中,接入 LoRA 的思路非常简单:

  1. 添加一个“Load LoRA”节点。
  2. 将 Checkpoint 加载器的MODEL输出连接到 LoRA 节点的model输入。
  3. 将 Checkpoint 加载器的CLIP输出连接到 LoRA 节点的clip输入。
  4. 将 LoRA 节点输出的MODEL和CLIP再连接到后续的 KSampler 和文本编码节点。

文字可能不够直观,这里用一条简化的连接关系表示:

Checkpoint MODEL → Load LoRA model → KSampler model Checkpoint CLIP → Load LoRA clip → CLIP Text Encode clip

Load LoRA 节点一般有三个关键参数:

  • lora_name:选择 LoRA 文件名。
  • strength_model:模型权重,越大越明显,一般从 0.6 到 1.0 之间调试。
  • strength_clip:文本编码器权重,通常与strength_model保持一致。

LoRA 的叠加顺序可以有很多个,多个 LoRA 可以通过串联方式加载。但注意,不是所有 LoRA 都互相兼容,同时使用过多 LoRA 会导致画面崩坏。

5.3 ControlNet 结构控制

ControlNet 是控制生成构图的重要工具。它的节点逻辑和 LoRA 类似,都是插入到模型和采样器之间,但还需要有一个“预处理器”节点来处理参考图的结构信息,比如边缘检测、姿态估计、深度估计等。

一个典型的 ControlNet 节点连接如下:

Load Image → ControlNet Preprocessor → Apply ControlNet → KSampler ↑ Checkpoint MODEL ───────────────────────→ Apply ControlNet model

ControlNet 需要额外下载对应底模版本的 controlnet 模型文件,SD 1.5 和 SDXL 的 ControlNet 模型不能混用。这部分在实战中最容易出现“黑图”或“结构调整无效”的问题,原因通常是模型版本不匹配,或预处理器选择错误。

6. AI 视频生成:ComfyUI 里的视频方案

AI 视频生成是当前最受关注的方向之一,而 ComfyUI 正是很多视频生成工具链的核心编排层。这里我不展开到具体操作细节,因为不同插件的节点名差异较大,但整体思路是通用的。

6.1 当前 ComfyUI 里的视频生成方案

目前常见的视频生成方案包括:

  • AnimateDiff:基于已有的 Stable Diffusion 底模,在采样过程中加入时间维度的运动模块,实现逐帧动画生成。它需要额外下载 AnimateDiff 专属模型,并安装对应的 ComfyUI 插件。
  • SVD(Stable Video Diffusion):从单张静态图生成短视频。它的使用方式是以一张图片作为起点,通过一个图像到视频的模型生成短片段。
  • 其他自定义节点:社区中有很多基于 Transformers 或 DiT 结构接入的视频生成节点,通常需要较大的显存,并且对版本和依赖要求较高。

无论是哪种方案,在 ComfyUI 中的基本工作流结构大致如下:

加载图像或初始化潜空间 → 视频模型加载 → KSampler(加入时间维度) → 视频解码器 → 保存视频

与文生图相比,视频工作流的输出不再是一张图片,而是一组连续的帧。ComfyUI 通常会把帧序列通过 FFmpeg 或者其他视频工具合成扩展名为.mp4的视频文件。

6.2 如果是 3060 这类中低端显卡怎么办

如果只有 3060 显卡,也不是完全没法跑视频生成,但要做好以下取舍:

  • 分辨率降低:比如 512x512 或者 512x768。
  • 帧数降低:一次生成 8 到 16 帧,再通过视频插帧工具扩展。
  • 步数降低:使用 LCM、Turbo 等低步数采样方案,把 steps 控制在 4 到 8 步。
  • 显存优化:启动 ComfyUI 时添加--lowvram参数,让系统更频繁地释放显存。

启动命令示例:

python main.py --lowvram

6.3 保存视频的通用命令

如果 ComfyUI 已经生成了一组帧图像,需要手动合成视频时,除了界面里自带的保存视频节点,也可以使用 FFmpeg 命令完成合成。以下是一个通用的合成命令示例:

ffmpeg -framerate 8 -i frame_%04d.png -c:v libx264 -pix_fmt yuv420p output.mp4

这个命令的作用是:

  • -framerate 8:设置每秒播放 8 帧。
  • -i frame_%04d.png:匹配frame_0001.png、frame_0002.png这样的文件名序列。
  • -c:v libx264:使用 H.264 编码。
  • -pix_fmt yuv420p:保证视频播放器兼容性。

实际使用时,需要根据你生成的帧文件格式调整文件名匹配规则。

6.4 视频生成的注意点

视频生成最核心的限制是显存和生成时间。一次生成 16 帧、512x512 分辨率的视频,在 3060 上可能要几分钟甚至更久,这是正常的。不要追求一次生成很长的高清视频,建议先用短片段验证效果,再通过“首尾帧衔接”或“分镜拼接”的方式扩展时长。

另外,视频生成涉及的模型文件通常很大,下载前要确认磁盘空间是否充足。生成内容的版权和数据合规问题也要重视,尽量选择明确开源的模型,不要随意传播未经授权的内容。

7. 常见报错与排查思路

下面整理了 ComfyUI 使用过程中比较有代表性的问题,按“现象、原因、解决思路”三步列出。如果你遇到类似报错,可以优先按表格中的顺序排查。

问题现象常见原因解决思路
导入工作流后提示Missing nodes缺少自定义节点安装 ComfyUI Manager,点击缺失节点一键安装;或根据报错名称手动搜索插件仓库
启动工作流时提示请安装缺失的包以使用此工作流Python 环境缺少依赖包根据报错提示在命令行执行 pip 安装,例如pip install 包名
显卡显存足够但提示CUDA out of memory分辨率过高、batch 过大、多流程同时运行降低分辨率,将 batch size 改为 1,重启 ComfyUI 并添加--lowvram
生成出来的图片是全黑VAE 缺失或加载错误在 Checkpoint 加载器中单独指定 VAE 文件,或在模型下载时确认包含 VAE
Load Checkpoint 列表为空模型目录中没放 checkpoint 文件把safetensors或ckpt大模型放入models/checkpoints,点击刷新
提示词对画面几乎无影响底模为纯 LoRA 模型或 CLIP 文件缺失检查 Checkpoint 加载器是否正常输出 CLIP,尝试重新下载模型
预览图像与保存图像颜色不一致色域或 VAE 解码差异使用标准 VAE,关闭预览窗口中的色彩管理类选项
ComfyUI 启动后浏览器空白浏览器缓存或端口被占用换端口启动,或清理浏览器缓存,确认http://127.0.0.1:8188可访问
下载模型速度很慢网络原因使用镜像站或代理工具时需注意合规,也可以错峰下载或使用支持断点续传的下载器

这里特别说明一下“缺失节点”问题。社区工作流经常使用很多自定义节点,这些节点不在 ComfyUI 主程序中。最方便的做法是安装 ComfyUI Manager 插件,然后在 Manager 界面中点击“Install Missing Custom Nodes”,它会自动识别缺失节点并给出安装入口。不过要注意,自动安装不一定能百分百成功,部分插件还需要手动安装系统级依赖。

如果遇到“请安装缺失的包”这类提示,先看它具体缺少什么包。比如缺少omegaconf,就在终端执行:

pip install omegaconf

安装完成后重启 ComfyUI。这里有个小技巧:在终端启动 ComfyUI,报错信息会打印得更完整,而通过整合包的一键启动脚本看不到全部输出时,可以打开日志文件查看。

8. 最佳实践与工程化建议

当你已经能熟练拖出工作流之后,会开始关心一个问题:怎么让 ComfyUI 的使用更高效、更规范,而不是永远停留在“能出图就行”的阶段。

8.1 工作流文件管理

工作流本身是 JSON 格式的文本文件,建议按项目或用途分目录保存。比如:

workflows/ ├── base/ │ ├── txt2img_sd15.json │ └── img2img_sd15.json ├── lora/ │ └── xxx_style_lora.json └── video/ └── animatediff_test.json

ComfyUI 在保存图片时,默认也会把工作流信息嵌入到 PNG 元数据中。上传到某些图片平台时可能会被删除,但在本地管理时这是一个很好的备份手段。

8.2 模型管理建议

模型文件动辄几个 GB,管理不好会浪费大量磁盘空间。几个实用建议:

  • 下载模型后先记录来源和用途,可以在目录中保留一个README.txt。
  • 定期检查models/checkpoints中不常用的模型,删除前确认工作流没有依赖。
  • 使用models/model_subdirectories或某些插件提供的子目录功能,按风格分类。
  • 对网上下载的模型注意查看模型授权,尤其是商业使用场景,不要无限制传播或商用。

8.3 显存与性能优化

对于消费级显卡,性能优化可以从几个方向考虑:

  • 启动参数优化:常用参数包括--lowvram、--medvram、--force-fp16、--cpu等。需要根据你的显卡显存和 PyTorch 版本来调整。
  • 采样方案优化:LCM、Turbo 模型可以把 steps 降到 4 到 8 步,同时 cfg 也相应调低。这是目前最有效的提速方案。
  • 分辨率策略:先在小分辨率下生成构图,再用“高清修复”或“潜空间放大”节点放大。这样比直接生成大图更节省显存。
  • 批处理策略:不要一次性把 batch size 开得太大,容易显存溢出。如果是要生成大量图片,优先编写脚本调用 API,而不是手动不停地 Queue Prompt。

8.4 用 ComfyUI API 做自动化

ComfyUI 提供了 API 接口,你可以通过 HTTP 请求提交工作流并获取生成结果。工作流 JSON 中除节点定义外,还有一组 API 格式的节点数据。实际开发中,通常是先通过界面设计好工作流,然后导出 API 格式的 JSON,再通过 Python 的requests库提交请求。

示例思路如下:

import json import requests # 读取工作流 JSON with open("workflow_api.json", "r", encoding="utf-8") as f: workflow = json.load(f) # 将工作流中的文本和参数替换为实际内容 workflow["6"]["inputs"]["text"] = "your prompt here" # 提交到 ComfyUI 的 prompt 接口 response = requests.post( "http://127.0.0.1:8188/prompt", json={"prompt": workflow} ) print(response.json())

这段代码只是示例思路,实际使用时需要了解 ComfyUI API 的节点 ID 映射关系。建议先从官方文档或社区工作流中导出 API JSON 再研究。

8.5 数据安全与合规

最后提一个容易被忽略但很重要的点:合规使用。

  • 模型来源要可靠:尽量从官方或知名社区下载模型,不运行来路不明的脚本。
  • 注意内容边界:AI 生成内容也应遵守平台规范和相关法律法规,不生成违规、侵权、误导性内容。
  • 隐私保护:在本地环境中工作流和图片默认保存在本地,但如果使用云 GPU 或远程部署,要注意服务器上文件的访问权限。
  • 版权与授权:使用 LoRA、大模型、ControlNet 模型前,确认其许可证是否允许你的使用场景。

9. 学习路线:从新手到熟练的进阶顺序

文章最后,分享一条我自己复盘后觉得比较舒服的学习路线。ComfyUI 入门不需要一步到位,建议按下面的顺序走:

  1. 跑通默认工作流:ComfyUI 打开后自带一个简单的文生图工作流,先加载一个底模,点一下 Queue Prompt,确认整个链路是通的。
  2. 逐节点理解:从 Checkpoint 加载器开始,逐个点击节点,看输出类型和参数含义,理解每个节点在整个流程里的位置。
  3. 改参实验:只改动 seed、steps、cfg 三个参数,分别生成几组图,观察变化规律。
  4. 模仿社区工作流:找个简单的工作流导入,遇到缺失节点就装上,强行复现一遍。这个过程能让你接触到很多没见过的节点。
  5. 自己搭一个小工作流:不要直接复制别人的,重新从空白画布拖出文生图工作流,然后尝试加一个 LoRA,再加一个图片放大节点。
  6. 接触 ControlNet 和局部重绘:这两种玩法能明显提升出图的可控性,也是实际项目中使用最多的功能。
  7. 尝试视频生成:当你对节点和显存占用有概念后,再去接触 AnimateDiff、SVD 等视频方案,会容易很多。
  8. 学习 API 和源码:如果能熟练使用界面,下一步可以研究 API 调用和自定义节点开发,把 ComfyUI 真正变成自己工具箱里的一部分。

ComfyUI 是一个“越用越顺手”的工具。刚开始被节点连线和各种报错折腾得头皮发麻是正常的,但只要顺着这个路线走完前四步,你会突然发现那些复杂工作流也不过是基础节点的组合。

希望这篇教程能帮你少走一些弯路。如果你在学习过程中卡在某个节点或报错上,不妨把工作流拆小,只保留出问题的那一段去排查,往往比盯着整个复杂流程更容易找到原因。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询