ComfyUI从入门到实战:本地部署、工作流搭建与批量生成指南
很多人刚开始接触 ComfyUI 的时候都是这种感觉别人生成的图效果很稳定自己想复现却不知道从哪里下手。打开界面之后看到的不是表单而是一堆节点和连线英文命名鼠标悬停也未必看得懂。这次的内容是一套面向新手入门的 ComfyUI 实用教程从本地部署到工作流搭建再到接口调用和批量任务重点解决“知道原理、能上手操作、出了问题能排查”这三件事。ComfyUI 本质上是本地运行的 AI 绘画工作流引擎核心思路是把 Stable Diffusion 这类图像生成模型的各个环节拆成独立节点再通过连线组合成完整的工作流。相比传统 WebUI 的表单式操作ComfyUI 更灵活、更容易复用也适合批量处理和接口集成。代价是有一个理解节点逻辑的过程但一旦跨过这个门槛效率提升是实打实的。这篇文章会从零开始依次展开四块内容ComfyUI 的核心能力和适用场景、本机环境准备与部署方式、文生图工作流的分步搭建、以及进阶功能、API 调用、批量任务和常见报错处理。想入门 AI 绘画或者正准备从 SD WebUI 切到 ComfyUI 的读者建议把文章收藏备用。1. ComfyUI 核心能力速览先给结论。ComfyUI 的核心能力可以总结为“把 AI 绘画流程搭成可视化管线”具体能力如下表。能力项说明项目类型基于节点式工作流的 AI 绘画工具开源免费主要功能文生图、图生图、局部重绘、ControlNet 控制、LoRA 加载、批量生成、视频生成模型支持硬件要求NVIDIA 显卡优先低显存显卡可调低参数运行CPU 模式也能跑但速度很慢显存占用不固定需按模型、分辨率、步数实测SD1.5 类模型相对轻量SDXL 和视频模型更高支持平台Windows、Linux、macOS其中 Windows 和 Linux 本地部署最常用启动方式整合包一键启动 / 命令行启动 / Docker 启动是否支持 API支持内置 HTTP 接口与 WebSocket 接口是否支持批量任务支持可循环提交生成任务适合场景工作流搭建、效果自动化复现、批量素材生产、二次开发集成拆开来看学习 ComfyUI 最直接的好处是“工作流可保存、可复现”。套用别人做好的工作流文件把模型和参数补上大概率能还原接近的效果。这种稳定性是纯手工调参很难做到的。另外一点值得注意ComfyUI 对低配置机器的容忍度比很多人想象的要高。显存有限时可以用低分辨率、少步数、低批次数来先跑通流程再逐步提高参数。不过具体能开到多大必须在自己的机器上实测。2. 适用场景与使用边界ComfyUI 适合什么人以下几类比较典型想从零学习 AI 绘画原理理解提示词、采样器、VAE 这些概念实际作用的用户。需要稳定复用某一套生成风格或构图效果的创作者比如电商素材、头像生成、创意设计。有批量出图需求的内容生产者比如给一批文案配图、给不同角色批量生成立绘。开发者需要把 AI 绘画能力接到自己的 Web 服务、脚本或工具箱中。ComfyUI 不适合什么场景如果只是想随手生成一两张图、不想了解节点关系那直接用整合式 WebUI 会更快。ComfyUI 的灵活性建立在理解工作流结构的基础上跳过原理直接套复杂工作流改一个参数可能整条管线都报错。使用边界也需要明确。AI 绘画不是“生成出来就能随便用”以下几条必须注意不得生成违法、暴力、仇恨、色情内容模型本身不区分使用意图使用风险由操作者承担。涉及真实人物肖像、特定风格 IP 形象、受版权保护的素材时生成结果不得直接商用必须确认授权范围。本地部署会产生模型文件和大量输出图片涉及隐私或敏感数据的环境要注意存储访问权限。API 服务如果开放到局域网或公网必须加访问控制避免被他人滥用。从合规角度说AI 绘画是创作工具不是免授权通道。任何用于商业发布的内容都要保留生成参数、模型来源授权记录便于追溯。3. ComfyUI 本地部署环境准备部署 ComfyUI 并不复杂但环境问题经常卡住新手。下面给一套通用检查清单。3.1 硬件环境显卡NVIDIA 独立显卡优先显存越大越省心。4G 显存可通过低分辨率参数运行轻量模型运行 SDXL 类模型建议更高显存。内存建议 16GB 起步8GB 也能跑但容易在加载大模型时出现内存不足。磁盘模型文件通常几个 GB 到几十个 GB至少预留 20GB 以上空间实际以安装模型为准。操作系统Windows 10/11 最常用Linux 适合服务器部署macOS 可以运行但显卡计算效率有限。3.2 软件环境NVIDIA 驱动更新到较新版本保证 CUDA 运行时可用。PythonComfyUI 官方依赖走 Python 环境建议使用 Python 3.10 或 3.11 版本具体以项目文档为准。Git用于拉取官方仓库。虚拟内存Windows 下如果生成大图时出现“内存不足”或直接闪退可以适当调大系统虚拟内存。设置虚拟内存的方法是右键“此电脑”- 属性 - 高级系统设置 - 性能“设置” - 高级 - 虚拟内存“更改” - 取消“自动管理” - 选择安装盘 - 自定义大小初始值和最大值可以按物理内存的 1.5 到 2 倍来填。需要注意的是设置虚拟内存只能缓解内存不足不能替代显卡显存。3.3 网络与下载ComfyUI 本体代码体积不大卡住新手的主要是模型下载。Checkpoint 模型文件动辄几个 GB下载时需要稳定的网络环境。如果下载困难可以使用国内镜像站或整合包作者提供的模型迁移方式。3.4 端口准备ComfyUI 默认端口是 8188。启动前检查该端口是否被占用如果被占用可以换一个端口启动例如 8189。4. ComfyUI 安装部署与启动方式ComfyUI 的安装方式主要有三种整合包、官方源码、Docker。新手建议优先整合包想深入了解或做二次开发建议源码部署。4.1 方式一整合包一键启动整合包是目前新手最友好的方式。以常见的秋叶整合包为例一般包含 Python 运行时、依赖库、常用节点和部分基础模型解压后基本可以直接使用。流程大致如下下载整合包压缩包解压到本地目录路径不要带中文和空格。进入目录找到启动脚本通常是一个.bat或.exe启动器。双击运行等待终端输出提示信息。启动完成之后终端会显示访问地址一般是http://127.0.0.1:8188。用浏览器打开这个地址进入 ComfyUI 的 Web 界面。整合包的优点是省去了环境配置缺点是更新需要等作者发布新版本或者自己手动替换核心文件。使用前确认整合包来源可靠避免下载到捆绑恶意软件的文件。4.2 方式二官方源码部署源码部署适合喜欢自己掌控环境的人操作也不复杂。安装依赖建议使用虚拟环境git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI python -m venv venv # Windows 激活虚拟环境 venv\Scripts\activate # Linux/macOS 激活虚拟环境 source venv/bin/activate pip install -r requirements.txt依赖安装完成后启动服务python main.py默认访问地址是http://127.0.0.1:8188。如果需要修改监听地址或端口# 监听所有网卡端口改成 8288 python main.py --listen 0.0.0.0 --port 8288如果显存有限可以开启低显存模式python main.py --lowvram如果完全使用 CPU 推理python main.py --cpu源码部署相比整合包的另一个优势是更新方便。进入 ComfyUI 目录后git pull pip install -r requirements.txt重新启动就有新功能。4.3 方式三Docker 部署服务器或隔离环境部署建议 Docker。ComfyUI 官方仓库提供了 Dockerfile社区也有第三方镜像。基本思路是拉取镜像挂载模型目录和输出目录映射 8188 端口。启动命令示例docker run -d \ --name comfyui \ -p 8188:8188 \ -v /path/to/models:/app/models \ -v /path/to/output:/app/output \ comfyui-image具体镜像名称和挂载路径需要按实际镜像文档调整。4.4 Ubuntu 系统部署注意事项Linux 环境下安装 ComfyUI除了官方依赖外可能还需要安装一些系统级依赖例如sudo apt update sudo apt install python3.10-venv python3.10-devNVIDIA 用户需要提前装好驱动和 CUDA 工具包。启动脚本同样使用python main.py如果遇到 libGL 缺失等问题安装对应系统库即可。5. ComfyUI 核心概念与界面认识正式搭建工作流之前必须先理解几个核心概念。弄懂这些节点连接就不会觉得乱。5.1 节点与连线ComfyUI 的工作区由节点组成。每个节点负责一个环节比如加载模型、编码文字、采样生成。节点之间有输入端口和输出端口通过连线把数据从一个节点传递到下一个节点。理解数据流向是 ComfyUI 的核心能力。5.2 Checkpoint 模型Checkpoint 是 Stablediffusion 的基础模型文件格式通常是.safetensors。它包含了生成图像所需的大部分权重。在 ComfyUI 中Checkpoint 加载节点可以同时输出模型、CLIP 编码器和 VAE分别连接到后续节点。模型文件放到ComfyUI/models/checkpoints/目录下。5.3 CLIP 文本编码器CLIP 文本编码器负责把文本提示词编码成 AI 能理解的向量输出正向条件向量和负向条件向量。正向提示词描述想要的内容负向提示词描述不想出现的内容。5.4 KSampler 采样器KSampler 是工作流里的核心生成节点。参数包含seed、steps、cfg、sampler_name、scheduler、denoise。这些参数决定了生成过程的质量和随机性。这里顺便解释一个高频问题KSampler 里的 CFG 是什么意思。CFG 全称是 Classifier Free Guidance也就是“无分类器指导”。它控制生成结果贴合提示词的程度。CFG 值调高图像更贴合提示词但过高容易出现颜色过饱和、对比度过强的问题CFG 值调低生成更自由但可能出现跑题。常见范围在 1 到 20 之间基础模型默认常用 7 左右。实际使用中需要根据模型和提示词微调稳定输出比追求固定数值更重要。5.5 VAEVAE 负责把模型生成的潜空间向量解码成普通图片。如果不接 VAE输出的图像往往会灰蒙蒙一片。Checkpoint 本身通常内置 VAE可以通过加载节点直接输出。5.6 潜空间扩散模型生成时并不是直接在像素空间生成而是在一个压缩后的“潜在空间”中迭代。所以工作流中会出现“空 Latent”节点这个节点相当于给采样器准备一张空白画布画布大小就是最终输出图片的分辨率。5.7 模型目录结构模型文件按类型放入对应目录模型类型放置目录Checkpoint 基础模型models/checkpointsLoRA 模型models/lorasVAE 模型models/vaeControlNet 模型models/controlnetCLIP 模型models/clip文本编码器等models/text_encoders自定义节点生成的模型也有自己的目录规范安装时注意看说明。6. 从零搭建文生图工作流这是新手最需要掌握的一个流程。下面以“文生图”为例逐步搭建一条完整工作流。6.1 新建工作流打开 ComfyUI 后界面默认会加载一个简单的工作流。如果已经被改乱了可以在菜单中找到“加载默认工作流”或按快捷键恢复默认。6.2 添加节点文生图最小工作流包含以下节点Load Checkpoint加载基础模型。CLIP Text Encode正向输入正向提示词。CLIP Text Encode负向输入负向提示词。Empty Latent Image设置生成图片的分辨率和批次数量。KSampler采样生成。VAE Decode把潜空间结果解码为图片。Save Image保存图片输出。添加节点的方法是在空白处双击鼠标弹出节点搜索框输入节点名称回车即可。6.3 节点连接连接顺序如下Load Checkpoint的MODEL输出连接到KSampler的model输入。Load Checkpoint的CLIP输出连接到正向CLIP Text Encode的clip输入。Load Checkpoint的CLIP输出连接到负向CLIP Text Encode的clip输入。正向CLIP Text Encode的CONDITIONING输出连接到KSampler的positive输入。负向CLIP Text Encode的CONDITIONING输出连接到KSampler的negative输入。Empty Latent Image的LATENT输出连接到KSampler的latent_image输入。KSampler的LATENT输出连接到VAE Decode的samples输入。Load Checkpoint的VAE输出连接到VAE Decode的vae输入。VAE Decode的IMAGE输出连接到Save Image的images输入。这个连接过程是训练工作流思维的入口。连错时会看到节点输入端口没有被接满点击“保存工作流”之前一定先检查连线是否完整。6.4 设置参数基础参数参考正向提示词a cute cat, soft lighting, best quality, 8k负向提示词blurry, low quality, bad anatomy, watermark宽高512x512或768x768步数20CFG7采样器euler_ancestral调度器normal批次数量16.5 执行工作流点击界面右侧的“执行”按钮或按快捷键CtrlEnter。执行过程中可以观察到节点边框状态变化。当前执行节点会高亮报错节点会变红并弹出错误提示。6.6 保存与导出工作流运行成功之后把工作流保存下来。ComfyUI 原生支持把工作流保存为.json文件。需要注意界面菜单里有两种导出方式一种是保存“前端工作流 JSON”适合再次导入界面重新调整另一种是“导出 API 格式 JSON”适合用代码提交到接口。新手两种都要会用。6.7 验证成功标准点击执行后没有红色节点报错。输出栏出现生成图片。生成图片清晰度正常与提示词相关。Save Image节点指定的输出目录中能看到图片文件。如果图片质量不理想先检查提示词、采样步数、CFG 数值不要一上来就堆模型。7. 进阶功能局部重绘、ControlNet 与视频生成基础文生图跑通之后就可以按需扩展工作流。7.1 图生图图生图是在已有图片基础上重绘。通过Load Image节点加载图片经过 VAE编码潜空间后输入到 KSampler同时把denoise调整到 0.5 到 0.8 之间控制保留原图特征的比例。denoise是图生图最重要的参数值越接近 1生成结果与原始图差异越大。7.2 局部重绘局部重绘需要搭配蒙版。流程一般是加载原图对照蒙版区域通过VAE Encode把原图和蒙版一起编码进潜空间再送入 KSampler。这样只有蒙版区域会被重绘其余区域保持原样。适合修脸、换服装饰品、修复背景等操作。7.3 ControlNet 控制生成ControlNet 主要用于控制生成图的构图和结构比如导入一张姿势图或线稿图让生成结果保持同样的结构。使用它需要安装 ControlNet 的自定义节点和对应模型文件。准备参考图片比如姿势图、线稿图、深度图。加载 ControlNet 节点把参考图片作为输入。把 ControlNet 输出连接到 KSampler 的 model 输入链路中。ControlNet 的参数中strength控制影响强度建议先用 0.6 到 0.8 测试稳定度。7.4 LoRA 模型LoRA 是轻量微调模型用在基础模型之上用来控制风格或角色一致性。在基础工作流中加入LoRA Loader节点把LoraLoader的MODEL和CLIP输出分别接到原有链路中即可。LoRA 权重建议从 0.6 到 0.8 开始测试权重过高容易出现动作僵硬或过拟合问题。7.5 视频生成模型ComfyUI 也支持一些视频生成模型比如 LTX Video 等。这类工作流通常会比文生图复杂需要额外的视频编解码节点、帧率参数、视频长度参数。显存占用明显高于普通图片生成建议先以短时长、低分辨率、少帧数测试确认显存能承受之后再逐步放大参数。7.6 插件与自定义节点ComfyUI 的自定义节点生态非常丰富安装方式通常有两种在 ComfyUI 目录下使用git clone把插件仓库拉取到custom_nodes/目录然后重启。使用 ComfyUI Manager 这类管理器在界面上搜索安装。安装后如果节点不显示重启服务并检查控制台日志看插件是否成功加载。8. 接口 API 与批量任务ComfyUI 不只是图形界面工具它内置的 HTTP API 可以让我们用脚本批量提交任务。对于批量出图这是非常实用的能力。8.1 获取 API 格式工作流在 ComfyUI 界面中点击“导出 API 格式”按钮得到一个 JSON 文件。这个 JSON 里的节点是顺序排列的节点之间的引用关系用[节点ID, 输出序号]表示。保存下来后续脚本直接加载这个 JSON。8.2 提交生成任务ComfyUI 的接口地址默认是http://127.0.0.1:8188。提交任务的核心接口是POST /prompt。下面给出一个通用 Python 调用示例实际使用时需要替换为从你自己工作流导出的 API JSON。import requests import json import random server_addr http://127.0.0.1:8188 # 从文件加载工作流 API JSON with open(workflow_api.json, r, encodingutf-8) as f: workflow json.load(f) # 修改提示词和采样参数 workflow[6][inputs][text] a cute cat, soft lighting, best quality workflow[5][inputs][width] 768 workflow[5][inputs][height] 768 workflow[3][inputs][steps] 25 workflow[3][inputs][cfg] 7 workflow[3][inputs][seed] random.randint(0, 2**32) # 提交任务 response requests.post( f{server_addr}/prompt, json{prompt: workflow}, timeout60 ) print(response.json())返回结果中包含prompt_id之后可以用这个 ID 查询任务状态prompt_id response.json()[prompt_id] history requests.get(f{server_addr}/history/{prompt_id}) print(history.json())8.3 批量生成任务批量生成的思路是加载同一个工作流 JSON每次修改 seed 和提示词循环提交任务。import requests import json import random import time server_addr http://127.0.0.1:8188 with open(workflow_api.json, r, encodingutf-8) as f: workflow json.load(f) for i in range(5): workflow[3][inputs][seed] random.randint(0, 2**32) workflow[6][inputs][text] fa cute cat, variant {i1}, best quality resp requests.post( f{server_addr}/prompt, json{prompt: workflow}, timeout60 ) print(f第 {i1} 次提交结果:, resp.json()) time.sleep(2)批量任务需要注意几点确认磁盘输出目录有足够空间避免写到一半写满。任务之间的间隔不要太短让显卡有时间完成当前任务。失败任务要记录prompt_id或参数快照方便排查。提交任务前先跑一遍最小规模测试确认工作流本身不报错。8.4 上传图片使用图生图或 ControlNet 时可以通过接口上传参考图upload_url f{server_addr}/upload/image with open(reference.png, rb) as f: files {image: (reference.png, f, image/png)} resp requests.post(upload_url, filesfiles) print(resp.json())上传成功后工作流中对应节点引用本地文件路径即可。9. 资源占用与性能观察本地跑 AI 绘画最容易焦虑的就是显存和速度。这里给出观察和优化思路。9.1 显存观察方法Windows 下按CtrlShiftEsc打开任务管理器切到“性能”标签页选择 GPU 查看“专用 GPU 内存”。Linux 下用nvidia-smi命令实时观察显存占用。ComfyUI 的控制台日志也会打印执行耗时和模型加载信息。9.2 显存不足的处理顺序当出现 CUDA out of memory 错误时按优先级处理降低分辨率例如从 1024x1024 降到 768x768。把批次数量batch_size改为 1。减少采样步数例如从 30 降到 20。开启低显存模式启动参数--lowvram。检查是否有多个 Python 进程占用了显存。重启 ComfyUI 服务释放残余显存。9.3 CPU 推理与 GPU 推理CPU 推理在兼容性上没问题但速度差距非常大通常只适合没有独立显卡的机器做功能验证不适合批量出图。如果机器支持 CUDA但 ComfyUI 仍在用 CPU检查驱动和 PyTorch 是否为 CUDA 版本。9.4 什么会影响生成速度决定生成速度的主要因素分辨率分辨率越大花的时间越多。步数采样步数越多越慢但也不是越多越好。使用的模型大模型比轻量模型更慢。批量数一次生成多张图会明显增加显存占用。后台程序浏览器开太多页面、其他 Python 任务也会挤占资源。9.5 减少性能压力的日常习惯验证工作流时先用小图和低步数跑通再切换到正式参数。长时间不用的模型节点全部关闭避免重复加载。输出文件名使用带批次和时间戳的命名便于管理。Windows 用户注意系统虚拟内存设置尤其是使用 8GB 内存的机器。10. 常见问题与排查方法10.1 节点在执行过程中发生错误这是新手最常遇到的报错点击执行后弹窗提示“节点在执行过程中发生错误”对应节点会变红。处理思路是先看弹窗里的错误类型再去控制台找完整堆栈信息。问题现象可能原因排查方式解决方案节点在执行过程中发生错误节点缺少必需输入检查节点输入口是否接满按上述连接方式重新连线节点在执行过程中发生错误模型文件路径不对查看控制台日志把模型放到正确目录节点在执行过程中发生错误自定义节点未正确安装检查 custom_nodes 目录重新安装或更新插件节点在执行过程中发生错误输入图片和模型要求格式不一致检查图片分辨率与工作流参数统一分辨率或调整节点启动后页面打不开端口被占用或服务未启动检查日志和端口更换端口或重启服务模型加载失败模型文件缺失或损坏检查模型目录与文件名重新下载对应模型CUDA out of memory显存不足查看 GPU 占用降低分辨率、减少步数API 请求失败工作流 JSON 不是 API 格式检查提交的 JSON 字段导出 API 格式 JSON批量任务卡住不动前一个任务尚未完成查看任务队列调大任务间隔继续等待生成图片模糊参数设置不合理检查分辨率、步数、CFG提高分辨率和步数10.2 ComfyUI 工作流经常变红一换模型就报错很可能是当前工作流依赖了该模型不具备的输出能力例如 SDXL 工作流换到 SD1.5 模型后被要求输出 SDXL 专用的 CLIP 编码。建议把工作和模型绑定起来在工作流文件名上注明适用模型。10.3 找不到某个节点找不到节点通常是因为自定义节点未安装或 ComfyUI 版本过旧。先更新 ComfyUI再安装对应插件。安装后必须重启服务浏览器页面同步刷新。10.4 图片输出模糊或颜色异常颜色异常优先检查 VAE 是否连接正确。模糊检查分辨率和采样步数同时确认是否使用了过高的denoise值进行图生图。11. 最佳实践与使用建议11.1 先小参数跑通再上正式参数任何新工作流先以512x512、20 步、batch_size1跑通确认输出正常后再调分辨率和步数。这样可以快速定位是工作流问题还是参数问题。11.2 保存一套最小可用配置把文生图、图生图、局部重绘各保留一套最小可用工作流打好版本标记。以后模板被改乱了能快速恢复。11.3 目录统一管理模型文件、输入素材、输出结果分成三个顶级目录models/按 checkpoint、lora、vae、controlnet 分子目录。inputs/存放参考图、批次任务输入。outputs/按日期或项目名划分子目录保存生成结果。批量任务的输出命名建议包含时间戳或批次号比如20250101_001.png。11.4 批量任务要加日志和重试机制批量跑图不是点一次就完的中间可能因为显存占用、模型加载失败等原因中断。正确做法是每次提交前把参数快照写入日志。记录每个任务的prompt_id。失败任务重新提交不能一直跳过。11.5 接口服务控制访问范围ComfyUI 默认监听127.0.0.1只有本机能访问。如果需要开放到局域网务必加防火墙和访问控制避免被其他人批量调用消耗资源。11.6 涉及人脸、声音、版权素材必须确认授权不管是用图生图重绘人脸还是用 ControlNet 参考特定风格图都要确认素材来源合法。用于商业发布之前逐张审核输出内容保留来源模型和参数记录防止版权纠纷。12. 总结与下一步ComfyUI 最值得尝试的点在于它把 AI 绘画从“碰运气调参”变成了“搭管线、复现结果”。对于想认真做 AI 绘画的人来说这个学习投入非常值。最先要验证的功能一定是文生图基础工作流这条路走通了其他功能就只是在它上面加节点。最容易踩的坑有三个模型文件放错位置、节点连线没接满、在复杂工作流上直接开高参数导致显存爆炸。把这三点避开新手期能少走大半弯路。后续扩展方向可以从局部重绘开始然后依次尝试 ControlNet、LoRA、批量任务接口逐步把 ComfyUI 变成自己内容生产链路里的一个稳定环节。ComfyUI 的社区更新很快模型和节点也在快速迭代保持对官方仓库和主流自定义仓库的关注能第一时间用上新特性。建议先动手把环境搭起来跑通第一张图再回来看进阶内容。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →