尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

ComfyUI零基础教程:从节点式工作流到AI绘画与视频生成实战

ComfyUI零基础教程:从节点式工作流到AI绘画与视频生成实战 之前在业务迭代中使用 ComfyUI 时反复卡在节点报错、模型路径和视频工作流拆解这些环节网上的资料又零散不成体系。兜兜转转把官方文档、社区工作流和大量实测踩坑串起来之后才真正摸清 ComfyUI 的学习路径。本文就按照“安装部署 → 界面认知 → 图像工作流 → 视频工作流 → 踩坑排查”这条主线整理一份适合新手和想进阶的开发者直接复用的 ComfyUI 教程。不管是第一次接触 AI 绘画还是已经会用 WebUI 想切换到节点式工作流这篇内容都能帮你少走弯路。1. ComfyUI 是什么为什么值得从零学习1.1 从“节点式”说起先来理解 ComfyUI 的核心思路。Stable Diffusion 的常规 WebUI 界面会把提示词、模型、采样参数都放在一个个表单里你只需要填框、点按钮就能生成图片。ComfyUI 则完全不同它把一次完整的 AI 生成过程拆成了无数个节点每个节点负责一件事比如“加载模型”“写正向提示词”“写负向提示词”“采样器”“解码图像”“保存图像”。节点和节点之间通过连线组成一张流程图就像 Blender 的 Shader Editor 或者 UE 的蓝图系统。这种设计最直观的优点是每一步都看得见、改得动。你想要在某一阶段插入一个放大模型就在流程中间加一个节点你想要把“图生图”改成“图生视频”就把末尾的“保存图片”换成视频相关的节点。这种自由度和可定制程度是传统表单式界面很难做到的。1.2 ComfyUI 适合哪些场景AI 绘画文生图、图生图、局部重绘、ControlNet 姿态控制、LoRA 角色一致性。AI 视频生成SVD、AnimateDiff、Wan2.1 等视频模型搭建往往都是先以 ComfyUI 工作流形式发布。工作流复用与分享别人做好的成熟工作流只要一个 JSON 文件就能完整复用。批量处理和 API 集成ComfyUI 提供 API 模式可以嵌入到自己的 Python 项目中实现自动化出图。学习 Stable Diffusion 原理因为每个节点都对应模型推理过程的一部分用它学习扩散模型内部原理非常清晰。1.3 和 WebUI 对比差异点在哪很多新手会纠结 WebUI 和 ComfyUI 选哪个。我的建议是如果是日常简单出图WebUI 够用如果想搭建可复用的工作流、跑视频模型、深度控制生成过程ComfyUI 是目前更主流的选择。ComfyUI 对显存管理更精细大批量任务时也能做到更稳定的恢复运行而且社区分享的新模型、新玩法往往第一个支持的就是 ComfyUI。2. 环境准备与安装部署2.1 硬件要求ComfyUI 本身是一个运行在本地电脑上的 AI 绘图程序硬件核心看显卡。硬件项最低要求推荐要求显卡NVIDIA 显卡6GB 显存8GB 及以上显存12GB 更佳内存16GB32GB硬盘50GB 空闲空间100GB 以上模型会越来越大操作系统Windows 10/11Linux、Windows 均可如果你的显卡是 RTX 3060 这类 12GB 显存型号跑 SD1.5、SDXL 基础绘画没有问题甚至跑短片段 AI 视频生成也能胜任只是视频分辨率和帧数需要适当调低。显存不够的情况下也可以使用 GGUF 量化模型、低显存优化节点来缓解压力。2.2 安装方式ComfyUI 的安装方式主要有两种官方手动部署、社区整合包。第一种官方手动部署官方方式是克隆 GitHub 仓库然后用 Python 安装依赖。这种方式适合有一定开发经验的用户版本最新也方便二次开发。git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI如果你的电脑上还没有 Python建议安装 3.10 或 3.11 版本然后创建虚拟环境并安装依赖。python -m venv venv venv\Scripts\activate # Windows # 或者 Linux/macOS 下使用source venv/bin/activate pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 pip install -r requirements.txt启动方式python main.py启动成功后浏览器访问http://127.0.0.1:8188就能打开 ComfyUI 的网页界面。第二种社区整合包国内社区常见的“一键整合包”会把 Python、PyTorch、ComfyUI、常用自定义节点全都打包好解压即用适合完全零基础的新手。整合包的好处是不用折腾环境但缺点是版本更新需要等作者重新发布。不管用哪种方式核心操作逻辑是一样的。2.3 模型下载与目录结构使用 ComfyUI 之前需要把大模型文件放到对应目录。目录结构通常是ComfyUI/ ├─ models/ │ ├─ checkpoints/ # 完整的大模型例如 SD1.5、SDXL │ ├─ loras/ # LoRA 模型 │ ├─ vae/ # VAE 模型 │ ├─ unet/ # UNET 模型常用于 SVD 等视频模型 │ ├─ diffusion_models/ # 扩散模型文件 │ ├─ controlnet/ # ControlNet 模型 │ └─ upscale_models/ # 放大模型 ├─ custom_nodes/ # 自定义节点目录 └─ user/ # 用户默认工作流配置从模型社区下载到的.safetensors文件按类型放到对应文件夹。然后回到 ComfyUI 网页点击“加载模型”节点下拉框里就能看到新放入的模型。注意不要把大模型随处乱放ComfyUI 是按固定目录扫描模型的放错位置加载不到。3. 认识 ComfyUI 界面与工作流核心概念3.1 界面布局打开 ComfyUI 后整个页面看起来像一块无限大的白板。常用操作区域包括顶部菜单工作流的新建、打开、保存以及设置。主画布区节点和连线都在这里。右键菜单右键空白处可以添加新节点。底栏状态显示当前任务队列和运行状态。新手第一次打开默认会有一个最简单的 SD1.5 工作流。这个默认工作流非常重要先别急着删把它当作“最小可运行样例”仔细看一遍。3.2 核心节点拆解一个最基本的文生图工作流通常包含以下节点节点名称作用输出CheckpointLoaderSimple加载大模型MODEL、CLIP、VAECLIPTextEncode编码正向提示词CONDITIONINGCLIPTextEncode编码负向提示词CONDITIONINGEmptyLatentImage创建空白潜空间图像LATENTKSampler采样器迭代去噪LATENTVAEDecode解码潜空间图像为像素图IMAGESaveImage保存图片无这些节点之间的连线逻辑是大模型从 CheckpointLoaderSimple 出来分成三条线MODEL 接采样器、CLIP 接文本编码、VAE 接解码器。正向提示词和负向提示词分别通过 CLIP 编码变成条件向量。EmptyLatentImage 生成一张纯噪声图像。KSampler 根据条件逐步去噪生成最终潜空间图像。VAEDecode 把潜空间图像变成正常图片SaveImage 保存到本地。理解这条链路你就理解了 Stable Diffusion 的基本推理过程。3.3 工作流的本质JSONComfyUI 的每一个工作流本质上都是一个 JSON 文件。你画的节点和连线都会被序列化保存成这个 JSON。这带来一个非常实用的能力别人分享的.json工作流文件你打开后看到的不仅仅是成品节点而是完整可运行的流程。你可以用记事本打开一个工作流 JSON 看看里面有nodes、links、groups这些字段。但日常使用不需要手动改 JSON只要在界面里拖动节点就行。不过了解这一点对你理解“为什么有些工作流打开显示红色报错”很有帮助——因为对方引用的某个自定义节点你本地没有安装。4. 搭建第一条 AI 绘画工作流4.1 从空白画布开始如果你下载的工作流被改动得太乱可以直接新建一个空白工作流然后右键空白处选择Add Node开始自己搭建。为了更高效我习惯用搜索框快速添加节点。在画布上双击任意位置会弹出节点搜索框输入节点名就能快速定位。下面我们从零开始搭建一个 SDXL 文生图工作流。4.2 核心节点参数详解第一步添加 CheckpointLoaderSimple在搜索框输入CheckpointLoaderSimple双击添加到画布。在节点上选择你下载好的大模型。如果你用 SDXL 模型就选 SDXL 模型用 SD1.5就选 SD1.5 模型。第二步添加 CLIPTextEncode添加两个CLIPTextEncode节点一个作为正向提示词一个作为负向提示词。把两个节点的 CLIP 输入口都连接到 CheckpointLoaderSimple 的 CLIP 输出口。正向提示词可以填写内容主题比如best quality, masterpiece, a beautiful girl, detailed face, soft lighting, city background负向提示词通常填写不想出现的内容lowres, bad anatomy, bad hands, missing fingers, extra digits, blurry, jpeg artifacts, watermark这两个节点输出的 CONDITIONING分别接到 KSampler 的 positive 和 negative 输入口。第三步添加 EmptyLatentImage这个节点用来指定生成图像的尺寸和批次数。SDXL 常用尺寸是1024 x 1024SD1.5 常用尺寸是512 x 512。batch_size 默认填 1一次生成一张图。第四步添加 KSamplerKSampler 是采样器节点参数比较多也是新手最容易困惑的地方。参数含义推荐值seed随机种子固定后结果可复现可随意填control_after_generate每次生成后是否固定种子randomizesteps采样步数越高细节越精细但耗时越长20-30cfg提示词遵循强度5-7sampler_name采样器名称euler、dpmpp_2mscheduler调度器normal、karrasdenoise去噪强度1 表示完全重绘1.0其中denoise参数特别重要。在文生图时denoise一般设为 1.0在图像放大或局部重绘时denoise要调低比如 0.4-0.6否则会破坏原图结构。第五步添加 VAEDecode 和 SaveImageVAEDecode 负责把潜空间图像解码成正常图像它的 VAE 输入口连接 CheckpointLoaderSimple 的 VAE 输出口它的 samples 输入口连接 KSampler 的 LATENT 输出口。最后把 VAEDecode 的 IMAGE 输出口连接到 SaveImage点击“运行”按钮即可生成第一张图。4.3 运行与验证点击页面右上角的“Run”按钮种子下方会出现进度条。生成完成后SaveImage 节点会显示输出图片同时图片也会保存到 ComfyUI 的output目录下。如果一切正常你应该得到一张自己编写的提示词生成的图片。此时你已经完成了第一条 ComfyUI 工作流的搭建。4.4 保存和加载工作流搭建好的工作流要及时保存。点顶部菜单的Save导出为.json文件。以后拿到别人分享的工作流用Open打开 JSON 文件就能加载到自己的画布上。这里要养成一个好习惯保存工作流文件时同时记录配套的模型名称、版本、所需插件。否则三个月后你再看这个工作流很可能忘记当初用的是哪个模型版本。5. 从 AI 绘画到 AI 视频工作流5.1 AI 视频生成的主流方案当 AI 绘画工作流跑通之后很多人的下一步就是 AI 视频生成。目前 ComfyUI 生态里搭 AI 视频工作流主要有三种思路。方案原理特点适用场景SVD图生视频基于单张图生成视频官方支持好出片稳定但视频时长通常只有 2-4 秒静态图转动态视频AnimateDiff基于 Stable Diffusion 的动画模块和 LoRA、ControlNet 生态兼容可以做风格化动画动画风文生视频、图生视频Wan2.1开源视频生成模型支持文本生成视频、图像生成视频中文友好效果更强但配置门槛高高质量视频生成选择哪种方案取决于你的硬件配置和最终效果要求。接下来以 SVD 为例演示如何搭建一个最简单的 AI 视频工作流。5.2 SVD 视频工作流搭建SVD 的工作流和图像工作流有相似之处但也有几个专有节点。核心节点包括CheckpointLoaderSimple加载 SVD 模型SVD 模型通常放在models/checkpoints或models/diffusion_models。LoadImage加载一张输入图片。SVD_img2img_Conditioning根据输入图片生成视频条件。VideoLinearCFGGuidance对视频 cfg 做线性变化约束。KSampler采样器负责生成视频潜空间序列。VAEDecode解码每一帧。VideoCombine把多张帧图像合成视频文件。节点连线逻辑大致是LoadImage - SVD_img2img_Conditioning CheckpointLoaderSimple - MODEL、CLIP、VAE CLIP - SVD_img2img_Conditioning SVD_img2img_Conditioning - VideoLinearCFGGuidance - KSampler KSampler - VAEDecode - VideoCombineSVD_img2img_Conditioning里有几个关键参数参数含义video_frames要生成的视频帧数motion_bucket_id运动幅度越大运动越剧烈fps视频帧率augmentation_level对输入图的扰动程度0 表示保持一致生成 2 秒视频fps8、video_frames16是一个常用的保守组合如果你想生成 3 秒视频可以把video_frames提高到 24但显存占用会明显上升。5.3 显存不足时的调整策略视频生成比图像生成更吃显存。如果你用的是 12GB 显存显卡建议从低分辨率开始尝试例如576 x 1024帧数控制在 16 帧以内。如果出现 CUDA out of memory优先做三件事降低video_frames从 24 降到 16 或 12。降低分辨率从 1024 降到 768 或 640。使用 GGUF 量化版本的视频模型能明显减少显存占用。另外在 KSampler 中适当减少steps也能降低显存压力。视频生成的每一步采样都对应全部帧的一次去噪所以采样步数直接决定耗时。5.4 进阶图像转视频工作流实战在 SVD 基础上还可以演进出更复杂的图像转视频工作流。比如“首帧图 尾帧图”控制视频的首尾画面或者加入 ControlNet 来控制人物姿势。这类进阶工作流的核心思路是一样的在 SVD 的基础上增加条件输入节点把图像信息编码成额外条件引导视频生成。实际搭建时不要一上来就复刻网上复杂的视频工作流。建议先跑通最简 SVD 流程确认模型和参数正常再逐步加入 ControlNet、LoRA、后处理放大等节点。这样出了问题你能很快定位到是哪个环节造成的。6. 工作流进阶节点管理、批量处理与常用插件6.1 使用 ComfyUI Manager 管理自定义节点ComfyUI 的生态很大程度上靠自定义节点扩展。社区里一套复杂工作流经常会引用几十个自定义节点。每次手工丢到custom_nodes目录很容易出错推荐先安装ComfyUI Manager。安装 Manager 的常见做法是在custom_nodes目录下克隆仓库然后重启 ComfyUI。安装完成后页面右侧会出现一个“Manager”按钮可以在里面搜索节点、安装缺失节点、查看更新。使用 Manager 时注意安装插件前先看项目最近更新时间和 star 数量尽量选择维护活跃、兼容当前 ComfyUI 版本的插件。插件装太多、版本不兼容是工作流报红问题的主要来源。6.2 高频自定义节点分类分类代表功能解决什么问题ControlNet姿势、线稿、深度控制精确控制生成画面结构LoRA 管理LoRA 堆叠、权重调整角色一致性、风格迁移放大修复Ultimate Upscale、Tile提高输出分辨率视频后处理帧插值、补帧让视频更流畅效率工具批量提示词、随机种子管理批量出图、工作流自动化安装自定义节点之后如果页面提示“找不到节点名”通常是因为该节点依赖的 Python 包没有安装。打开 ComfyUI 的控制台查看报错日志缺少什么包就安装什么包。这也是很多新手一导入别人工作流就报红的常见原因。6.3 批量生成工作流思路批量生成是 ComfyUI 的一个强项。最简单的批量生成方式就是通过EmptyLatentImage的batch_size参数把批次数从 1 改为 4、8一次生成多张图。更灵活的做法是使用PrimitiveNode原始节点和Reroute转接节点搭建批量提示词列表。配合 CSV 或 Json 解析节点可以做到“每次读取一行提示词批量生成不同主题图片”。如果你需要把 ComfyUI 接入到自己的业务系统中还可以使用 API 模式。ComfyUI 启动后默认提供 API 接口以下是一个简单的 Python 调用思路需要按你的 ComfyUI 版本和接口文档做适配import json import urllib.request def queue_prompt(workflow_json): 向本机 ComfyUI 服务提交一个工作流任务。 workflow_json 为 dict内容来自工作流 API 格式导出。 data json.dumps({prompt: workflow_json}).encode(utf-8) req urllib.request.Request( http://127.0.0.1:8188/prompt, datadata, headers{Content-Type: application/json}, ) with urllib.request.urlopen(req) as resp: return json.loads(resp.read())注意ComfyUI 界面保存的.json工作流文件和 API 模式需要的workflow_api格式并不完全相同。在界面中可以通过工作流菜单导出“API Format”版本的 JSON再交给上面的脚本调用。7. 常见问题与排查思路7.1 高频问题汇总问题现象常见原因解决思路跑图卡在 0%模型路径错误或模型损坏检查 models 目录路径重新下载模型显卡报 CUDA out of memory分辨率、帧数或 batch_size 过大降低参数使用量化模型打开工作流大量节点显示红色缺少自定义节点或依赖库安装缺失自定义节点安装 Python 依赖提示词报错 CLIPTextEncode节点连接错误检查正向、负向提示词的 CONDITIONING 是否接对生成图片全黑VAE 缺失或模型不匹配使用模型推荐的 VAE 文件放在 models/vae 目录图片有条纹或马赛克采样步数太少或 cfg 太高提高 steps降低 cfg视频生成后画面闪跳帧数太少或 motion_bucket_id 过高增加帧数降低运动幅度7.2 “请安装缺失的包以使用此工作流”怎么处理这是新手在导入别人工作流时看到频率很高的一段提示。它的完整意思通常是当前工作流里引用了某些自定义节点或 Python 包你的本地环境没有安装。解决步骤可以按以下顺序执行不要直接点运行先看 ComfyUI 控制台日志找到具体缺失的节点名称或包名。使用 ComfyUI Manager点击 “Install Missing Custom Nodes”让它自动搜索并安装缺失节点。如果 Manager 没有搜到去对应节点项目的 GitHub 页面把整个项目克隆到custom_nodes目录并安装项目要求的依赖。常用方式是在该项目目录下执行pip install -r requirements.txt重启 ComfyUI重新加载工作流。要特别提醒不要看到“缺失包”就盲目往本地环境装包。先确认包的来源和用途再决定是否安装。尤其是不知名仓库提供的脚本安装前要审查代码避免引入不安全内容。7.3 模型加载报错的排查顺序如果“加载大模型”节点选择模型后点击运行报错排查顺序建议是确认模型文件完整.safetensors文件大小和来源网站标注一致。确认模型类型SDXL 模型不能直接用 SD1.5 工作流的部分参数。查看控制台日志看是缺少依赖、显存不足还是路径错误。用官方默认工作流测试排除工作流本身的问题。8. 最佳实践与工程建议8.1 工作流文件保持“最小可运行”不要在一个工作流里堆太多节点。每加一个节点排查成本就高一分。好的工作流应该是能跑通 → 记录结果 → 再加新功能。你可以用Group节点分组功能把不同功能块框起来并写上备注比如“图像生成”“视频合成”“后处理放大”这样后续调整一目了然。8.2 模型和配置统一管理建议使用 Git 管理两个东西自定义节点列表和本人常用工作流。模型文件太大不方便直接纳入 Git但可以通过写一个requirements.txt和models.txt记录模型下载来源、版本和放置目录。这样即使重装系统也能快速恢复环境。8.3 显存不够时的优先级调整当显存不足时优先降低帧数和分辨率其次是降低采样步数。因为画质主要受分辨率和模型影响步数降得太多会明显损失细节。视频任务中motion_bucket_id也会影响显存数值越高对系统压力越大可以根据业务需求调低。8.4 合理使用 API 和自动化如果你要把 ComfyUI 接入业务系统最好做成独立的推理服务而不是让业务逻辑直接操作画布。对外暴露独立 API 接口内部维护工作流模板通过参数传入提示词、模型、种子等信息。这样隔离了业务和推理环境也方便横向扩展。8.5 数据备份与安全边界涉及生产环境时以下原则要牢记工作流 JSON 和配置文件定期备份。不要在生产环境直接跑未经验证的自定义节点。不要从不明来源下载模型文件。对需要授权访问的图片、视频资源按最小权限原则开放。批量删除或覆盖输出文件前先备份原始文件。9. 总结与下一步学习路线到这一步你应该已经掌握了 ComfyUI 的核心概念、安装部署、AI 绘画工作流搭建、AI 视频工作流搭建、节点管理、批量处理和常见问题排查。回顾一下知识链路节点和连线构成的流程图 → 加载模型 → 文本编码 → 采样器去噪 → 解码保存 → 图像工作流 → 视频工作流 → 插件生态和 API 集成。下一步建议按照“复现-改造-创造”三个阶段继续深入复现阶段把本章节的两个工作流亲手搭建一遍保持参数默认只改动提示词和模型跑通后再尝试调整 KSampler 参数观察画面变化。改造阶段在图像工作流中加入 ControlNet先固定一张人物姿态图再生成保持姿态的新图。在视频工作流中加入 LoRA尝试做一个固定角色的短视频。创造阶段结合 API 模式把 ComfyUI 封装成自己的自动化出图服务用 Python 控制批量任务。如果本文对你有帮助可以收藏备用。ComfyUI 的生态更新很快节点名、插件名和模型文件格式都可能随版本调整遇到具体问题可以优先查看控制台日志再回查对应项目的官方文档。学习节点式工作流起初会有一些门槛但只要你把最小可运行工作流跑通一次后面的扩展就会变得顺畅很多。
返回列表