ComfyUI工作流合集:从加载到避坑的完整指南
简介这份资源是面向AI绘画与自动化流程爱好者的ComfyUI工作流合集适合希望低门槛上手节点式AI创作、又不想从零搭建流程的初学者与进阶用户。压缩包共1310个文件约113.09MB以687个ipynb笔记本和540个json工作流配置为主另含png、jpg示例图、md说明文档及少量yml、py脚本覆盖图像生成、风格调整、文本编辑与内容创作等场景。资源中每个工作流均预先配置好节点可直接作为起点进行定制组合并附有文档与教程辅助理解具体功能与操作方法。目前已有649人学习下载读者可借此快速掌握ComfyUI操作技巧在模块化节点组合中探索无限创作可能同时提升自身AI知识与实践水平。1. 从一堆散装节点说起这套 ComfyUI 工作流合集到底能省掉多少重复劳动如果你搭过 ComfyUI大概率经历过这个场景为了跑通一张图在画布上拖了二十几个节点Checkpoint、LoRA、ControlNet、采样器、VAE 解码、后处理全串一遍调通之后关掉第二天想复现发现连线忘了、参数记不清、模型路径对不上只能从头再拖一遍。这套 ComfyUI workflows collection 就是冲着这个痛点来的——它把常见生成任务已经固化成了可直接加载的 workflow 文件你打开就能看到完整的节点拓扑、参数配置和模型挂载关系不用再从零搭链路。它解决的不是“能不能生成”的问题而是“能不能稳定复现”的问题。适合两类人一类是刚接触 ComfyUI、被节点连线劝退的新手需要一份能跑通的参照物另一类是有一定经验、但每次做同类任务都要重新调参数的从业者想拿现成工作流当起点改。下面我按“先看懂结构、再动手跑通、最后避坑”的顺序拆一遍。2. 工作流文件的结构与加载逻辑先搞懂 JSON 里存了什么2.1 workflow 与 API 格式的区别ComfyUI 的工作流文件本质是 JSON但有两种形态很多人第一次导入失败就是没分清。一种是带完整画布信息的 workflow 格式包含节点坐标、连线、分组框、颜色标记用菜单里的 Load 加载另一种是 API 格式只保留节点 id、class_type 和 inputs用于脚本批量调用用 Load API Format 或者直接 POST 到 /prompt 接口。合集里的文件大多是前者因为要给人看、给人改。你打开一个 .json能看到 nodes 数组里每个对象都有 pos、size、flags、order 这些字段links 数组记录端口连接关系。理解这一点很关键如果你手动改过节点顺序或者删过节点links 里的索引可能对不上加载后就会出现连线错位甚至节点丢失。2.2 加载工作流的标准步骤把文件放进 ComfyUI 的 workflows 目录或者直接在界面里拖入。加载后先别急着点生成按下面顺序检查一遍# 1. 确认 ComfyUI 服务已启动默认监听 8188 python main.py --listen 127.0.0.1 --port 8188 # 2. 工作流文件建议统一放在这个目录方便界面左侧列表直接读取 ComfyUI/user/default/workflows/ # 3. 如果是从压缩包解出来的先看文件编码部分老工作流是 GBK 存的 file -i your_workflow.json第一步启动服务时--listen和--port按你本机情况改本地跑就 127.0.0.1。第二步的目录是 ComfyUI 默认读取工作流的位置放进去之后刷新页面就能在侧边栏看到。第三步容易被忽略有些工作流是早期版本导出的JSON 里带 BOM 或者非 UTF-8 编码加载时报 “Invalid JSON” 就是这个原因用编辑器转成 UTF-8 无 BOM 再存一次即可。2.3 节点缺失的排查方法加载后如果画布上出现红色节点说明你本地没装对应的自定义节点。ComfyUI 不会自动帮你补得手动装。常见做法是打开 ComfyUI Manager点 “Install Missing Custom Nodes”它会读工作流里引用的节点包名去匹配。如果 Manager 里搜不到就去工作流的 JSON 里搜type字段找到那个节点类名再去对应的仓库手动 clone 到 custom_nodes 目录。import json # 读取工作流列出所有节点类型快速定位缺哪些 with open(workflow.json, r, encodingutf-8) as f: wf json.load(f) node_types set() for node in wf.get(nodes, []): node_types.add(node.get(type)) for t in sorted(node_types): print(t)这段脚本的作用是把工作流里用到的节点类型全部打印出来你拿这个列表去比对 custom_nodes 目录下已安装的包缺哪个一目了然。参数上没什么要调的注意encodingutf-8别省否则遇到中文节点名会报错。输出结果里如果看到ImpactPack、WAS_Node_Suite这类基本就是需要额外装的自定义节点包。3. 典型工作流的参数配置从文生图到图生图怎么改3.1 文生图工作流的核心参数合集里最常见的文生图工作流核心链路是 Checkpoint Loader → CLIP Text Encode正向/负向→ KSampler → VAE Decode → Save Image。加载后你要改的无非几个地方参数位置作用常见取值ckpt_nameCheckpoint Loader指定主模型按你本地 models/checkpoints 里的文件名填stepsKSampler采样步数2030再高收益递减cfgKSampler提示词引导强度79太高容易过饱和sampler_nameKSampler采样器euler / dpmpp_2m 常用schedulerKSampler调度器normal / karrasseedKSampler随机种子固定值可复现-1 随机width/heightEmpty Latent Image出图尺寸512×512 起步SDXL 用 1024改 ckpt_name 时注意工作流里存的是作者本地的模型文件名你本地不一定有同名文件。常见做法是先把你的模型文件名改成和工作流一致或者在节点下拉框里重新选。steps 和 cfg 这两个参数是玄学重灾区同一组提示词换个采样器效果差很多建议先按表里的范围试别一上来就拉满。3.2 图生图与 ControlNet 的接入点图生图工作流比文生图多一个 Load Image 节点和 VAE EncodeKSampler 的 denoise 参数从 1.0 降到 0.40.7 之间。denoise 越低越接近原图越高越自由。这个参数没有标准答案取决于你想保留多少原图结构。ControlNet 的接入方式是在正向/负向提示词编码之后、KSampler 之前插入 ControlNet Apply 节点。你需要额外加载 ControlNet 模型并在 Load Image 之后接一个预处理器节点比如 Canny、OpenPose、Depth。工作流里如果已经连好了你只需要把 Load Image 换成自己的图确认 ControlNet 模型名对得上。# 批量修改工作流里的模型路径避免一个个手点 import json with open(workflow.json, r, encodingutf-8) as f: wf json.load(f) # 把 ckpt_name 统一替换成你本地的模型文件名 target_ckpt sd_xl_base_1.0.safetensors for node in wf.get(nodes, []): if node.get(type) CheckpointLoaderSimple: node[widgets_values][0] target_ckpt with open(workflow_patched.json, w, encodingutf-8) as f: json.dump(wf, f, ensure_asciiFalse, indent2)这段脚本解决的是批量替换模型名的问题。当你下载了多个工作流每个里面写的 ckpt_name 都不一样手动改容易漏。widgets_values是 ComfyUI 存节点控件值的地方CheckpointLoaderSimple 的第一个值就是模型名。注意不同节点的 widgets_values 顺序不一样改之前先打印出来确认索引别盲改。3.3 批量生成与队列控制合集里有些工作流带了批量逻辑比如通过 ImpactPack 的 Seed 节点或者 WAS Node Suite 的文本批处理。核心思路是把提示词或种子做成列表让 ComfyUI 依次排队执行。你可以在界面右侧的 Queue 面板看到待执行任务也可以调 “Batch count” 让同一组参数跑多次。如果要做大批量建议用 API 模式而不是界面模式。把工作流导出成 API 格式用脚本循环改参数、POST 到 /prompt这样不占界面资源也方便记录每次的参数组合。4. 避坑与常见问题加载失败、爆显存、出图全黑怎么排查4.1 加载后节点全红或连线断裂现象打开工作流画布上一片红色节点或者连线看起来连上了但实际没通。 原因缺少自定义节点包或者工作流版本与你的 ComfyUI 版本不兼容节点类名变了。 解决先用 2.3 的脚本列出节点类型对照缺失的包逐个安装。如果是版本问题去工作流 JSON 里看version字段太老的工作流建议找作者更新版或者手动替换掉废弃节点。4.2 生成时报 CUDA out of memory现象点生成后进度条走到一半卡住控制台报显存不足。 原因模型太大、分辨率太高、batch size 太大或者同时加载了多个大模型。 解决先把 batch size 降到 1分辨率降到 512 或 768。如果还不行启动时加--lowvram或--medvram参数让 ComfyUI 分步加载模型。SDXL 工作流在 8G 显存以下的卡上跑基本都要开 lowvram。4.3 出图全黑或全灰现象流程跑完了Save Image 出来的图是纯黑或纯灰。 原因VAE 不匹配或者 KSampler 的 denoise 设成了 0或者 latent 尺寸和模型不匹配。 解决先检查 VAE Decode 节点挂的是不是和 Checkpoint 配套的 VAE。有些工作流用了外挂 VAE你本地没有就会 fallback 到默认的导致解码异常。其次看 denoise图生图工作流如果误设成 0输出就是原图的模糊版甚至全灰。最后确认 Empty Latent 的宽高是 64 的倍数不是的话某些模型会出问题。4.4 提示词生效但风格完全不对现象图能出但风格和预期差很远LoRA 好像没起作用。 原因LoRA 加载节点的权重没设对或者 LoRA 文件名和触发词不匹配。 解决检查 LoraLoader 节点的 strength_model 和 strength_clip默认 1.0太高会过拟合0.60.8 比较稳。另外确认提示词里带了 LoRA 的触发词很多 LoRA 不写触发词等于没加载。工作流里如果 LoRA 是写死在节点里的换成你自己的 LoRA 时记得同步改触发词。5. 进阶用法把工作流拆成可复用的模块跑通几个工作流之后你会发现很多链路是重复的Checkpoint 加载、VAE 解码、图片保存这些在每个工作流里都一样。与其每次从头改不如把它们抽成模板。我一般的做法是建一个 base 工作流只保留 Checkpoint Loader、VAE Decode、Save Image 三个节点中间留空。遇到新任务时复制这个 base再往里插 KSampler 和 ControlNet 链路。这样模型路径和输出设置不用反复改。另一个技巧是用 ComfyUI 的 Group 功能把功能块框起来命名成 “加载区”“采样区”“后处理区”。导出时分组信息会一起存进 JSON下次打开一眼就能找到要改的地方。对于经常调的参数可以在节点上右键 “Add Note”把取值范围写在备注里省得每次翻文档。验证工作流是否真的可复现我习惯固定 seed 跑三次对比输出图的哈希值。如果三次不一致说明链路里有随机源没固定住常见的是 KSampler 的 seed 没锁或者某个自定义节点内部用了随机数。这个检查花不了几分钟但能避免后面批量生成时出现不可控的差异。从那以后我每次拿到新工作流都强制先跑一遍固定 seed 的验证确认链路稳定了再改参数。希望帮到你。本文还有配套的精品资源点击获取