ComfyUI零基础实战:从安装到搭建文生图工作流
如果你已经在 WebUI 里点过“生成”按钮再打开 ComfyUI 的节点画布大概率会先愣一下全是框框和连线没有“文生图”大按钮也没有“图生图”标签页。这不是 ComfyUI 故意为难新手而是它把 WebUI 里藏起来的东西全摊开摆在你面前了。这次我们直接从一个干净的 ComfyUI 开始从安装、界面认识到第一个可运行的工作流再把图生图、局部重绘、插件安装、批量任务和接口调用全部过一遍适合真正想从零开始把 ComfyUI 工作流搭建搞明白的读者。先给结论ComfyUI 是一个本地部署的节点式 AI 绘画工具核心优势是可控性强、工作流可复用、显存利用比传统 WebUI 更灵活并且自带接口服务。它不只是“生成图片”的工具更接近一个工作流引擎——你可以把模型加载、提示词编码、采样、解码、保存图片拆成一个个节点手动连接随时调整参数整套流程还能导出成 JSON 文件分享给其他人。本文不讨论 WebUI 和 ComfyUI 谁更好只解决一个问题怎么从零开始跑通 ComfyUI并且能自己搭建常用工作流。这篇教程的实操内容分为五块环境准备与部署启动界面与节点基础认知文生图工作流搭建图生图与局部重绘插件安装、批量任务与接口调用。后面还会单独讲显存占用怎么看、节点报错怎么排查。下面直接进正文。1. ComfyUI 核心能力速览先给一张规格表让你快速判断这个项目适不适合自己。能力项说明项目类型本地部署的节点式 AI 绘画工具 / 工作流引擎主要功能文生图、图生图、局部重绘、LoRA 叠加、ControlNet、VAE 切换、视频生成取决于加载的模型界面方式浏览器访问节点画布式操作硬件门槛需要 NVIDIA 显卡显存建议至少 4G 起步具体以模型和分辨率为准支持平台Windows、Linux、macOS材料未细分以官方发布说明为准启动方式一键整合包启动、源码命令启动、Docker 部署是否支持 API是自带 HTTP 接口可提交工作流 JSON 执行任务是否支持批量任务支持队列机制也可通过脚本循环调用接口工作流复用支持导出/导入 JSON 工作流文件插件扩展支持自定义节点插件常用 ComfyUI Manager 管理适合场景本地 AI 绘画、工作流分享、批量出图、二次开发集成说明一点上表中的显存需求不是绝对的。SD1.5 类模型在低分辨率下门槛较低SDXL、视频生成类模型对显存和内存的要求明显更高实际占用必须按你本机模型版本、分辨率和采样步数来观察。从材料来看ComfyUI 在社区里热度最高的几个方向是用整合包快速本地部署、导入别人分享的工作流、搭建自定义工作流、以及通过 API 做批量调用。这些正是本文后面要展开的部分。2. ComfyUI 与 WebUI 怎么选很多新手先接触的是 WebUI因为操作界面更像普通软件。ComfyUI 的学习曲线确实更陡但它的核心价值在“工作流思维”。先说操作上的差异。WebUI 是页面表单模式你在固定字段里填提示词、选模型、点生成。ComfyUI 是画布连线模式每个功能都是独立的节点。比如文生图在 WebUI 里是“填好参数点按钮”在 ComfyUI 里则是Load Checkpoint 加载模型 → CLIP Text Encode 写正向提示词和负向提示词 → Empty Latent Image 设置画布尺寸 → KSampler 设置采样参数 → VAE Decode 解码 → Save Image 保存图片。每一步都是可见的。为什么要这样设计第一可控性更强。你可以自由控制中间数据流向比如把一张图的 Latent 接到另一个采样器里继续处理实现二次采样或局部重绘。第二工作流可复用。搭好一套图生图工作流保存成 JSON 文件别人导入就能用。这是 ComfyUI 传播效率高的原因。第三显存利用更灵活。ComfyUI 在节点执行顺序上有优化采样部分对显存的管理更细部分场景下可以用较小显存跑出 WebUI 跑不动的流程。但这属于经验判断具体取决于模型和参数。如果你是纯新手第一次打开 ComfyUI 也不需要慌。图像生成的核心逻辑没有变模型决定风格下限提示词决定内容方向采样参数决定画面质量。ComfyUI 只是把这些东西重新排列成了一幅流程图。建议一开始先照着后面的步骤搭一遍文生图不要急着下载一堆插件。先把主流程跑通再逐步加 LoRA、ControlNet就不会被“节点报错”劝退。3. ComfyUI 本地部署环境准备在安装 ComfyUI 之前先检查本机环境。这里给一套通用检查清单不写死具体版本因为不同整合包和源码版本要求会有差异。3.1 硬件检查显卡优先 NVIDIA 显卡能走 CUDA 加速。显存4G 起步可以跑小模型低分辨率流程8G 以上更从容可以尝试 SDXL更高显存可以尝试更大模型和视频生成。内存建议 16G 以上。大模型加载、长序列任务对内存敏感。磁盘空间模型文件通常 2G 到 7G 不等工作流、输出图片也会持续占用空间建议预留 20G 以上。3.2 软件检查显卡驱动NVIDIA 官网安装最新驱动保证 CUDA 可用。Python如果走源码安装建议使用 Python 3.10 到 3.12 之间的版本。Git用于拉取 ComfyUI 源码和插件。浏览器Chrome 或 Edge 均可运行在本地地址。3.3 模型文件准备ComfyUI 本身是执行引擎真正“画画”靠的是模型文件。新手建议先准备一个主模型就可以例如 SD1.5 系列或 SDXL 系列模型后续再按需补充 VAE、LoRA、ControlNet 模型。模型文件不是放到任意目录就行需要放到 ComfyUI 的 models 目录下对应的子目录。后面会专门讲目录结构。4. ComfyUI 安装与启动方式ComfyUI 的启动方式有很多种对新手最友好的是整合包对喜欢干净环境的人可以选择源码安装。下面两种方式都写清楚。4.1 方式一整合包一键启动社区里常见的“秋叶整合包”就是为降低入门门槛做的封装。这类整合包通常把 Python、依赖、ComfyUI 主程序、必要模型打包在一起下载解压后双击启动脚本即可。通用的启动流程大概是下载整合包并解压到本地目录。双击“启动”脚本Windows 下一般是A启动器.exe或.bat文件。等待命令行显示服务地址。浏览器打开http://127.0.0.1:8188。注意不同整合包的脚本名称和目录结构不完全一样以作者附带的说明为准。整合包适合不想折腾 Python 环境的人缺点是目录结构是别人定好的后续换版本、加插件时要注意兼容性。4.2 方式二源码安装启动如果你需要干净可控的环境或者想在 Ubuntu 等 Linux 服务器上部署用源码方式更合适。# 拉取 ComfyUI 源码示例目录按实际环境调整 git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI # 创建虚拟环境可选推荐 python -m venv venv source venv/bin/activate # Windows 下执行 venv\Scripts\activate # 安装依赖 pip install -r requirements.txt安装依赖后把模型文件放进models/checkpoints/目录然后启动python main.py启动成功后终端会出现类似下面的提示Starting server To see the GUI go to: http://127.0.0.1:8188这时候打开浏览器访问http://127.0.0.1:8188就能看到 ComfyUI 的节点画布界面。4.3 端口冲突怎么办默认端口是 8188。如果这个端口已经被占用启动时指定新端口python main.py --port 8189浏览器访问地址也同步改成http://127.0.0.1:8189。4.4 Ubuntu 部署提示Linux 环境下需要额外确认 CUDA 驱动和 PyTorch 版本与显卡匹配。建议先执行nvidia-smi查看驱动支持的 CUDA 版本再安装对应版本的 PyTorch。如果只是测试界面也可以用 CPU 推理跑通流程但生成速度会明显变慢不建议作为主力方式。5. ComfyUI 界面基础认知第一次打开 ComfyUI你看到的不是传统软件窗口而是一个空白画布。所有操作都在这个画布上完成。5.1 工作区结构画布中部节点摆放区域。画布空白处双击弹出节点添加菜单。画布右键拖拽平移画布。鼠标滚轮缩放画布。顶部或侧边菜单加载工作流、保存工作流、设置、队列管理入口。ComfyUI 的界面版本更新较快按钮位置可能有变化但核心交互逻辑是一致的添加节点 → 连接端口 → 执行。5.2 节点是什么一个节点就是“一个处理步骤”。它左侧是输入端口右侧是输出端口有的节点两侧都有。数据从一个节点流向另一个节点最终输出图片或保存结果。比如Load Checkpoint节点负责加载模型输出MODEL、CLIP、VAE三个数据流分别对应后面的采样器、提示词编码器和图像解码器。5.3 连线规则连接端口时要注意数据类型匹配。ComfyUI 端口会用颜色区分类型比如模型类的端口通常是紫色、CLIP 类端口是绿色、图像类端口是橙色。连接错误会直接报错无法执行。理解这个颜色规则就能避免大部分连线错误。6. 基础工作流搭建文生图现在进入实操。我们要搭建一条最基础的文生图工作流目的是理解每个节点的作用并跑出第一张图。6.1 需要的节点清单节点名称作用Load Checkpoint加载主模型CLIP Text Encode编码正向提示词CLIP Text Encode编码负向提示词Empty Latent Image创建空白潜空间图像设置宽高KSampler执行采样生成潜空间数据VAE Decode把潜空间数据解码为图像Save Image保存图片到输出目录6.2 连接步骤在画布空白处双击搜索并添加Load Checkpoint选择一个已放入models/checkpoints的模型文件。添加两个CLIP Text Encode节点一个作为正向提示词一个作为负向提示词。添加Empty Latent Image设置宽度、高度和批量数。SD1.5 类模型常用 512x512SDXL 类模型建议用 1024x1024。添加KSampler把 Load Checkpoint 的MODEL接到 KSampler 的model输入把正向提示词的输出接到positive负向提示词接到negativeEmpty Latent Image 的输出接到latent_image。添加VAE Decode把 Load Checkpoint 的VAE输出接到 VAE Decode 的vae输入把 KSampler 的LATENT输出接到 VAE Decode 的samples输入。添加Save Image把 VAE Decode 的IMAGE输出接进去。6.3 KSampler 参数怎么看KSampler 是工作流里最核心的采样节点。新手只需要先理解四个参数seed随机种子。固定 seed 后同参数下结果可复现随机 seed 会得到每次不同的结果。steps采样步数。步数越高细节越丰富但并非越高越好SD1.5 类模型 20 到 30 步足够。cfg提示词引导强度。这个参数经常被问简单说它控制生成结果在多大程度上遵循你的提示词。数值偏大画面容易过饱和、对比过强偏小则可能偏离主题。一般 7 左右起步再根据效果微调。denoise重绘幅度。默认 1.0适合文生图图生图时降低这个值可以让结果更接近原图。6.4 执行与验证连接完成后点击界面上的“执行”或“Queue Prompt”按钮。执行过程中节点会逐个点亮提示词编码节点先运行。采样器运行时间最长显存占用主要在这一步。最后解码并保存图片。成功标准是Save Image 节点弹出一张图片并且在output目录下能找到对应的 PNG 文件。如果某个节点标红说明这一环出错按后面第 11 章的排查方法处理。7. 进阶工作流图生图、局部重绘与 LoRA文生图跑通后你已经掌握了 ComfyUI 的基本逻辑。接下来扩展几种常见工作流。7.1 图生图工作流图生图的本质是把“输入图片”也加入流程。模板与文生图基本一致唯一多出的是Load Image节点。步骤添加Load Image上传一张本地图片。添加VAE Encode节点把图片编码成 Latent。用VAE Encode的输出替代Empty Latent Image的输出接入 KSampler 的latent_image。降低 KSampler 的denoise值例如 0.5 到 0.7保留原图结构只改变风格或细节。执行生成。这里的关键是 denoise 参数值越高偏离原图越多值越低越接近原图。图生图应用在“换风格”“优化草图”“老照片修复”等场景。7.2 局部重绘工作流局部重绘只修改图片的某个区域而不是整张图。在 ComfyUI 中比较通用的做法是配合Set Latent Noise Mask节点或图像遮罩类节点将局部区域标记出来让采样器只在这个区域内生成。简化的思路是先用Load Image加载原图 →VAE Encode得到 Latent → 在“遮罩图层”上把要修改的区域涂出来 → 将带遮罩的 Latent 送入 KSampler → denoise 设置为 0.6 到 0.9 → 解码保存。市场上的“抹掉人物”“替换物品”类效果底层基本都是这个逻辑。实际操作时遮罩节点在不同 ComfyUI 插件里的名称有差异建议先看一下工作流分享里是怎么连线的再套用到自己项目。7.3 LoRA 工作流LoRA 可以理解为“小模型叠加包”用来改变画风或生成某个特定角色。工作流中只需要加一个LoraLoader节点。连接方式把 Load Checkpoint 输出的MODEL和CLIP分别接入 LoraLoader 的对应输入输出再接回 KSampler 的model和提示词编码器的clip。LoraLoader 上有一个强度参数strength控制 LoRA 的影响程度常见范围是 0.6 到 1.0。提示词里要写触发词。触发词通常写在 LoRA 模型文件的说明里如果没写就要多试几个组合。8. ComfyUI 插件安装与模型管理工作流搭建到一定程度你会发现默认节点不够用了。ControlNet 姿态控制、视频生成、提示词自动补全这些能力都要靠自定义节点插件扩展。8.1 用 ComfyUI Manager 管理插件社区里最常用的是 ComfyUI Manager。安装后可以在 WebUI 界面里直接搜索、安装、升级插件不用手动往目录里丢文件。安装 Manager 的通用做法是从它的 GitHub 仓库克隆到ComfyUI/custom_nodes/目录然后重启 ComfyUI。不同版本的安装方式可能变化具体以项目 README 说明为准。安装完 Manager 后界面上会出现“Manager”按钮点进去可以直接浏览插件列表。建议新手只安装自己真正需要的插件装太多会增加节点冲突和启动失败的概率。8.2 模型目录结构ComfyUI 的模型文件按类型放到不同目录目录位置存放内容models/checkpoints主模型SD1.5、SDXL 等models/vaeVAE 模型models/lorasLoRA 模型models/controlnetControlNet 模型models/embeddings嵌入类文本模型output生成结果输出目录新手常犯的错误是把 LoRA 文件放进 checkpoints导致节点里看不到或者把 ControlNet 模型放到普通模型目录导致加载报错。统一按目录放节点列表里自然能识别。8.3 模型文件来源模型可以从各模型发布页或社区平台获取。下载时注意两点一是选择兼容你主模型的版本二是注意模型授权协议特别是商用场景。9. 批量任务与接口 API 调用ComfyUI 不仅是图形界面工具它也自带接口服务。这一点对需要批量出图或者做二次开发的用户非常关键。9.1 批量出图的思路在Empty Latent Image节点里把batch_size调大可以一次生成多张图。但更受控的方式是通过 API 提交多次请求每张图用不同提示词或不同 seed。批量任务建议先写好一个输入列表记录提示词、seed、输出文件名再逐条提交到接口最后对比结果选择最优图。直接调大 batch_size 虽然简单但遇到显存不足时更容易失败建议按实际显存控制批量数量。9.2 调用 API 的通用写法ComfyUI 启动后接口默认运行在http://127.0.0.1:8188。要把一个工作流提交到接口需要把画布上的工作流导出为 JSON然后通过 POST 请求发送。下面给一个 Python 请求的示例模板具体请求路径和字段需要按当前版本的接口文档核对import requests # ComfyUI 服务地址端口以实际启动为准 url http://127.0.0.1:8188/prompt # 这里的 prompt 需要替换成你从 ComfyUI 导出的工作流 JSON workflow_json { prompt: { 3: { class_type: KSampler, inputs: { seed: 12345, steps: 25, cfg: 7.0, sampler_name: euler, scheduler: normal, denoise: 1.0, } } }, client_id: test-batch } response requests.post(url, jsonworkflow_json, timeout60) print(response.status_code) print(response.json())如果你只是本地手动测试提交后可以到 ComfyUI 界面观察队列执行情况。接口调用适合接到自己的批量脚本或工具链里比如自动根据关键词列表生成多张候选图。9.3 批量任务的工程化建议每批任务单独记录日志包含请求时间、参数、返回状态。失败请求要重试但重试次数有限制避免死循环。显存不足时报错后应停止队列而不是快速并发重试否则容易拖垮服务。输出文件命名尽量带上提示词或 seed方便回溯。10. 显存占用与性能观察显存是本地部署最容易碰到的瓶颈。不要猜直接看数据。10.1 怎么观察显存占用Windows打开任务管理器 → 性能 → GPU可以看到“专用 GPU 内存”。Linux命令行使用nvidia-smi直接显示每个进程的显存使用。ComfyUI 执行时注意采样器节点是否长时间卡住如果卡住且显存接近上限大概率是显存不足。10.2 哪些因素最影响显存分辨率512x512 和 1024x1024 的显存占用差距是几倍级别。批量数batch_size每增加 1潜空间数据量就成倍增加。步数steps 主要影响耗时对显存影响相对较小。模型大小SDXL 类模型比 SD1.5 类模型需要更多显存。视频生成任务显存和内存要求都明显高于静态图。10.3 降低显存占用的常用手段降低分辨率到 512x512 或更低先测试流程是否能跑通。降低batch_size到 1。减少同时加载的模型数量不要同时加载多个 LoRA 或 ControlNet。关闭占用显存的其他程序比如高负载的游戏或渲染软件。在 Windows 下增大虚拟内存可以缓解显存不够带来的崩溃问题但虚拟内存无法完全替代显存。用一句话概括先把每一步的显存开销减到最小跑通流程再逐步加参数。11. 常见问题与排查方法ComfyUI 的用户经常在社区问类似“节点在执行过程中发生错误”“comfyui error report”这类报错。下面把出现频率最高的问题整理成一张排查表。问题现象可能原因排查方向解决方案启动后页面打不开端口冲突或服务未启动检查终端日志和端口占用更换端口重启python main.py --port 8189节点执行时标红报错输入类型不匹配、模型文件缺失、依赖缺少点击报错节点查看红色提示按报错信息检查连线类型和依赖报错提示缺少模块自定义节点安装不完整查看缺少的 Python 包名在 ComfyUI 目录执行pip install 包名采样器执行很慢显存不足或 CPU 推理查看 GPU 占用情况降低分辨率、减小批量数生成图片全黑或灰VAE 未加载或模型损坏检查模型文件和 VAE 路径重新下载模型或换模型测试提示词不生效正向/负向提示词接反核对 CLIP Text Encode 接线把负向提示词接到 negative 端口加载 LoRA 报错模型文件放错目录或版本不兼容检查 loras 目录和文件名放到 models/loras 后重启批量任务中途卡住显存不足或接口并发过重观察显存占用和服务日志减小批量数加入失败重试生成的图风格过于夸张CFG 设置过高查看 KSampler 的 cfg 值先降到 7 左右测试视频生成类工作流报错模型、插件或显存条件不满足查看具体节点报错按模型发布页要求确认显存和插件版本如果你看到的错误是“comfyui error report”格式核心做法是先看报错信息里的node字段定位是哪个节点出了问题再对照上表排查。不要急着重装整合包多数问题都是连线、路径和依赖引起的。12. 工作流搭建最佳实践与合规提醒工作流搭多了之后你会发现“能跑”和“好用”是两码事。这里分享几条工程化经验。12.1 最小可运行配置保持一套最小可运行的文生图工作流作为测试模板。遇到新模型、新插件先用这套模板验证不要一上来就加载复杂工作流。复杂工作流翻车时你很难定位是哪个环节出问题。12.2 工作流命名与目录管理建议按用途命名工作流例如文生图基础.json、图生图换风格.json、局部重绘.json。导出 JSON 时顺便记录模型名称和关键参数方便后续复现。输出目录也按日期或任务名分文件夹避免堆满图片后找不回来。12.3 模型与插件版本固定你昨天能跑通的工作流今天可能因为升级了某个插件就报错。先把 ComfyUI 主程序和插件的版本固定下来确认“稳定版本”后不要频繁升级。批量任务上线前先小规模跑一遍再全量执行。12.4 合法合规使用ComfyUI 本身是通用绘画工具但使用边界要明确。涉及真人肖像、他人作品、品牌 LOGO、受版权保护的画风时必须确认是否有合法授权。涉及人脸替换、声音克隆、数字人生成等场景更要严格遵守法律法规和平台规则。本地生成的结果如果用于商业发布需要对内容做人工复核确认不侵犯他人版权和肖像权。不要用任何方式生成违法违规内容也不要传播未授权素材训练出的模型。12.5 接口服务安全如果你的 ComfyUI 服务暴露在公网或局域网接口本身没有强访问控制容易被别人利用来消耗算力。建议只绑定本机地址或者用防火墙限制访问来源。在做批量调用时并发数要克制批量任务出问题先停止队列而不是盲目增加并发。13. 总结与下一步这次教程从环境准备开始到文生图工作流搭建再到图生图、LoRA、插件管理、API 调用和显存排查覆盖了 ComfyUI 工作流搭建最常用的一条路径。最值得先验证的是基础文生图工作流。第一次跑通后你会对节点连接和 KSampler 参数有直观理解。最容易踩的坑有三个模型文件放错目录、节点端口连错类型、显存不足导致采样器报错。这三类问题占到新手报错的大部分。下一步可以按自己的需求往两个方向走一是继续扩展工作流能力比如 ControlNet 姿态控制、提示词自动补全插件、视频生成模型二是把 ComfyUI 的接口接到自己的脚本或项目里做批量出图和自动化生成。每加一个新能力都在最小可运行工作流上先做验证再合并到正式流程。这套工作流搭建的思路比单纯保存一个别人的 JSON 文件更有价值。这套流程搭好后建议把关键工作流导出备份一份方便重装环境后快速恢复。