资讯动态

ComfyUI 节点式工作流实战:把「改一次参数重跑一遍」变成自动流水线,6 步跑通

发布时间:2026/9/27 11:04:12 来源:尧图企业网站定制
ComfyUI 节点式工作流实战把「改一次参数重跑一遍」变成自动流水线6 步跑通【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface. The fastest local inference engine in the world.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUIComfyUI 是一个基于节点式工作流的 AI 内容创作引擎图像、视频、3D、音频都能用同一套图来驱动。这篇文章面向有技术背景但刚接触它的工程师先讲清楚节点图到底省了什么再给你一条 10 分钟跑通本地服务的路径最后落到自定义节点开发和 API 批量自动化。 先看清楚节点式工作流省掉了什么别被节点两个字唬住它解决的就是一个很具体的问题对话式工具的生成链路是固定的你想换任何一个环节都得从头点一遍。ComfyUI 把链路本身摊开在画布上——每个环节是一个节点连线就是数据流向。这带来三个实在的好处单点替换想换采样器就只动采样器那个节点上下游不用碰可复用整条工作流就是一份 JSON能进版本库、能 diff、能当模板分发一份图两种跑法同一份工作流人可以在界面上拖程序也可以通过 API 直接喂参数。拿一个贴近实际的任务来说给 50 个 SKU 各出 4 张电商封面prompt 和随机种子各不相同。对话式工具意味着手点 200 次节点式工作流意味着把生成链路画一次然后循环提交 200 份参数。 十分钟跑通ComfyUI 安装与启动手动安装一共就三步拿代码、装依赖、起服务。git clone https://gitcode.com/GitHub_Trending/co/ComfyUI cd ComfyUI pip install -r requirements.txtREADME 里提到 Python 3.12/3.13 支持得很好PyTorch 建议用较新的版本。模型文件放进models/下对应的子目录如models/checkpoints、models/vae、models/loras目录结构本身就是分类方式。如果模型放在共享盘上仓库根目录的extra_model_paths.yaml.example告诉你怎么配置多路径复制一份改名去掉.example即可。启动时真正值得记住的是这几个内存相关的开关定义在comfy/cli_args.pypython main.py --listen --port 8188 # 常规启动 # 显存吃紧时按需加开关 python main.py --lowvram # 文本编码器放 CPU 跑 python main.py --novram # 更激进的省显存模式 python main.py --gpu-only # 反方向全部留在 GPU 上大多数情况下--lowvram一档就够--novram是兜底选项。生成慢但能跑通就先接受它。 最小工作流拆解一张图是怎么生成的第一次打开界面别急着画自己的图把默认工作流读懂它就是节点图的最小完整样例一个 CheckpointLoader 加载模型两个 CLIPTextEncode 分别喂正向和负向提示词一个 EmptyLatentImage 定尺寸KSampler 执行采样VAEDecode 解码最后 SaveImage 落盘。这份图存下来就是一份 JSON每个节点有个数字 id节点间的连线用[源节点id, 输出序号]表达。script_examples/basic_api_example.py里就是默认工作流导出的机器可读版本界面里File → Export (API)可以拿到任意工作流的同一格式。理解了这套结构后面所有自动化都是它的直接推论。⚙️ 核心机关为什么改一个参数只跑一半这是 ComfyUI 最值钱的部分也是界面背后真正的执行引擎comfy_execution/graph.py和comfy_execution/caching.py。机制不复杂提交一次执行时引擎从输出端往回走给每个节点按节点类型 输入内容算一个签名签名没变的节点直接吃缓存只重算签名变了的那条路径。你只改了 KSampler 的 seed那么 CLIP 编码、模型加载全是缓存命中实际只跑采样和解码。节点想主动退出缓存也很直接——在IS_CHANGED方法里返回变化量即可custom_nodes/websocket_image_save.py里就用time.time()强制每次重跑。显存侧是同一套思路模型用完后从 GPU 卸载、需要时再换入配合对量化模型的支持这就是它能压到很低显存运行的原因。你调参时感受到的这次怎么这么快本质都是缓存命中。 写一个自己的节点30 行 Python 就够自定义节点没有魔法约定就两条文件丢进custom_nodes/目录并暴露一个NODE_CLASS_MAPPINGS字典。以仓库自带的示例custom_nodes/websocket_image_save.py为例class SaveImageWebsocket: classmethod def INPUT_TYPES(s): return {required: {images: (IMAGE,)}} RETURN_TYPES () FUNCTION save_images OUTPUT_NODE True CATEGORY image def save_images(self, images): # 逐张转换后经 websocket 发送略 return {} NODE_CLASS_MAPPINGS {SaveImageWebsocket: SaveImageWebsocket}四行声明定义了节点的全部接口INPUT_TYPES声明输入端口和类型RETURN_TYPES声明输出端口FUNCTION指向实现方法OUTPUT_NODE标记它是链路终点。端口类型就是类型检查的依据连错线在提交时就会被拦下。重启服务后新节点自动出现在分类菜单里不需要额外注册步骤。 接进程序用 API 做批量生成工作流能存成 JSON意味着它天然适合程序消费。服务端的入口在server.py关键端点就三个POST /prompt提交执行、GET /history/{id}查结果、/upload/image传图。script_examples/basic_api_example.py是最短可用的客户端import json from urllib import request def queue_prompt(prompt): data json.dumps({prompt: prompt}).encode(utf-8) request.urlopen(request.Request(http://127.0.0.1:8188/prompt, datadata)) # 提交前在 JSON 上直接改参数即可 prompt[6][inputs][text] masterpiece best quality man prompt[3][inputs][seed] 5 queue_prompt(prompt)批量任务的做法就是循环里拼参数、提交、记下prompt_id然后轮询 history 收结果。提交是异步的客户端发完就走服务端的队列自己排所以并发多少张封面并不受你本地点鼠标的速度限制。✅ 把默认工作流从头到尾跑一遍弄清 4 个核心节点各管什么 ✅ 用File → Export (API)导出工作流 JSON用一次POST /prompt提交它 ✅ 给一个常用环节写自定义节点体会INPUT_TYPES的端口声明 ✅ 显存不够时按--lowvram→--novram的顺序试开关并观察哪些节点命中缓存 ✅ 把批量任务写成循环拼参数 轮询 history的最小脚本图只画一次之后的每一张输出都只是机器排班表上的一个条目。【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface. The fastest local inference engine in the world.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑