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

资讯详情

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

Codex生成ComfyUI工作流实战:从JSON到局域网访问全攻略

Codex生成ComfyUI工作流实战:从JSON到局域网访问全攻略 最近这阵子AI绘画圈子里讨论最多的组合已经不再单纯是“生成一张图”了而是“怎么让 AI 帮我把整套 ComfyUI 工作流搭起来”。标题里那个 Workbuddy看着像一个独立产品但拆开看它的核心其实是三件事绑在一起Codex 这个能写代码、能操作文件的智能体ComfyUI 这种节点式工作流引擎再加上让人头疼的局域网连接问题。先说我的判断Codex 这类智能体确实把 ComfyUI 工作流的“生成成本”降了一个量级。以前拖半天节点才能接好的流程现在一句话能给你一份 JSON。但别高兴太早——生成 JSON 不等于一键可跑。工作流里缺节点、模型路径不对、显存不够、局域网同事访问不到这些问题一个都不会因为“用了智能体”而自动消失。甚至可以说智能体越强你越需要具备判断它输出是否靠谱的基本功。这篇文章就把这三个环节拆开讲Codex 怎么装、怎么让它生成 ComfyUI 工作流生成之后加载报“缺失包”怎么处理最后是本机跑通之后怎么让局域网里的其他机器访问以及最常踩的几个网络排查思路。文章尽量不写空话给的是可以直接复制运行的命令和判断方法。1. 这篇文章真正要解决的问题如果你是 ComfyUI 玩家下面几种场景你一定不陌生第一搭工作流太费时间。文生图、图生图、局部重绘、批量处理节点一多连线一乱整个画布就是一团线。改一个参数要找半天节点在哪。第二别人分享的工作流你下载下来一加载满屏红色报错。要么提示“请安装缺失的包以使用此工作流”要么提示“要安装缺失的节点请先在你的 Python 环境中运行”。看到这句提示就头大。第三本机能正常打开 ComfyUI但局域网里的另一台电脑访问不了。更诡异的是那台电脑能上外网却连不上局域网连网关地址都 ping 不通。第四显卡明明还行一跑工作流就提示 GPU 显存不足。在 5070 这类显卡上跑稍大的模型表现尤为明显。这篇文章不会只给你一句“用智能体生成工作流”的漂亮话而是把从安装、生成、加载、运行到局域网访问的完整链路走一遍。你读完能获得三样东西一套用 Codex 生成 ComfyUI 工作流的可操作流程一份加载外部工作流时缺失节点的处理方法一组从本机到局域网连接失败的排查命令和判断逻辑。适合读这篇文章的读者大致有三类想让 AI 智能体帮自己搭 ComfyUI 工作流的 AI 绘画用户在 Windows 上用秋叶一键整合包跑 ComfyUI、但遇到各种环境问题的开发者以及准备在团队里共享 ComfyUI 服务、需要处理局域网访问和排障的运维型玩家。2. Codex 智能体与 ComfyUI 工作流它们是怎么结合起来的2.1 Codex 不只是聊天工具而是能动手干活的智能体很多人第一次接触 Codex以为它就是一个能回答代码问题的聊天窗口。实际上Codex 更适合被理解为一个“命令行智能体”它能读取项目里的文件能修改代码能执行命令还能在完成一步之后继续下一步。这意味着你给它一个任务它不只是给你建议而是真的去操作。比如你可以让它“把这个 JSON 文件里除了文生图之外的所有节点删掉重新连线并保存到指定目录”。它做得到。Codex 和 ComfyUI 工作流的结合点就在这里ComfyUI 的工作流本质是一个 JSON 文件里面的节点、参数、连线关系全部是结构化数据。而“生成、修改、校验结构化文本”恰恰是代码智能体最擅长的事情。与其把这说成“AI 会画工作了”不如说它是“AI 会用代码的方式帮你组装节点”。一字之差决定了你后续怎么用、怎么排查问题。2.2 ComfyUI 工作流的本质是 JSONComfyUI 是一款基于节点图的 AI 绘画工具。你不需要写程序而是把“加载模型”“文本编码”“采样器”“解码”“保存图片”这些节点拖到画布上再一条一条连起来。每个节点负责一个具体步骤节点的参数控制生成效果。这套节点图保存到本地就是一个 JSON 文件。工作流里有哪些节点、节点之间的连线是什么、每个节点的参数是多少全都在这个 JSON 里。所以当 Codex 说“我给你生成一个工作流”它真正生成的是一份 JSON。你可以直接把它保存到 ComfyUI 的工作流目录里然后在界面上加载。2.3 “一句话生成工作流”的现实边界这里必须泼一盆冷水。Codex 能生成可运行的工作流 JSON这在简单场景下完全没有问题比如基础的文生图、图生图、局部重绘。但“一句话生成”代表的是起点不是终点。一份工作流能不能真正跑起来还取决于你的模型文件是否存在、路径对不对你本地是否安装了工作流里引用的自定义节点你显卡的显存能不能撑住节点里配置的分辨率和 batch size模型格式是否匹配比如你是 SD1.5 模型还是 SDXL/SD3 模型你用的 ComfyUI 版本和自定义节点版本是否兼容。所以“一句话生成工作流”的真实价值是把过去半小时的拖拽工作压缩成几十秒。代价是生成之后你需要掌握加载、验证、补缺失节点、调显存这一套基本功。这也是后面几个章节要解决的问题。3. 环境准备与前置条件开始实操之前先把环境说清楚。这篇文章的例子默认在 Windows 上操作但命令本身在 macOS 和 Linux 上也能对应找到。3.1 安装 CodexCodex 的官方安装方式以官方文档为准最常见的做法是通过 npm 全局安装 CLI 工具。如果你电脑上有 Node.js 环境在命令行执行npm install -g openai/codex codex --version安装完成后需要登录 OpenAI 账号才能使用codex login登录之后会进入命令行交互界面。你在里面输入自然语言任务Codex 会读取当前目录下的文件、执行命令、生成代码。有一点必须提前说明Codex 是可以执行命令的智能体所以不要在你不信任的目录里放敏感文件也不要让它执行来源不明的脚本。这一点后面还会再强调。如果你用的是非官方模型服务比如想接入 DeepSeek 这类兼容接口的服务需要在配置里指定接口地址和密钥。具体配置方法在第 8 章会单独讲这里先不展开。3.2 安装 ComfyUIComfyUI 的安装有两条主流路线选择哪条取决于你的使用习惯。路线一官方手动安装。适合想自己控制环境、不依赖整合包的开发者。git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI pip install -r requirements.txt python main.py这条路线干净但要自己处理 Python 环境、CUDA 版本、依赖冲突。如果你对 Python 虚拟环境不熟悉很容易在依赖上卡住。路线二秋叶一键整合包。这是目前 Windows 用户最多的方式。整合包把 Python 环境、PyTorch、ComfyUI 本体、常用模型管理工具、启动器全部打包在一起解压就能用。选择整合包有一个隐藏点它自带的 Python 是内置的一般放在整合包目录下的python_embeded或类似目录里。后面手动安装缺失依赖包时就要使用这个内置的 Python而不是你系统里的 Python。很多报错都是因为用错了 Python 环境导致的这一点非常值得留意。对比维度官方手动安装秋叶一键整合包上手难度较高较低环境可控性高中手动装依赖直接用系统 Python 环境需要定位内置 Python排错难度自己面对所有依赖启动器已处理大部分推荐人群熟悉 Python 的开发者纯 AI 绘画用户3.3 确认显卡与 CUDA 环境无论走哪条路线都要先确认显卡能被识别。在命令行执行nvidia-smi能看到显卡信息、驱动版本和显存占用说明驱动正常。这里不用纠结驱动就一定是新的只要能被nvidia-smi识别即可。接着在 ComfyUI 所在 Python 环境里确认 PyTorch 能不能调用 GPU。如果用的是秋叶整合包进入整合包目录后用内置 Python 执行import torch print(torch.__version__) print(torch.cuda.is_available()) print(torch.cuda.get_device_name(0))如果torch.cuda.is_available()返回True说明框架层面没问题。如果返回False后面跑工作流大概率会极其卡顿或者直接失败这时候要先解决 CUDA 版本问题而不是急着生成工作流。4. 用 Codex 生成 ComfyUI 工作流完整流程拆解4.1 第一步定义清楚你想要的场景用智能体生成工作流最关键的不是智能体的能力而是你的输入是否明确。很多人一句话生成翻车是因为需求本身就是含糊的。不能只说“给我生成一个工作流”而要说明任务类型文生图、图生图、局部重绘还是批量处理目标模型本地有什么模型文件是 SD1.5 还是 SDXL输出要求保存为 ComfyUI 可以直接加载的 workflow JSON保存位置保存到 ComfyUI 的哪个 workflows 目录。比如你可以从命令行启动 Codex然后输入这样一段话你是 ComfyUI 工作流专家。请帮我生成一个基础文生图工作流。 要求 1. 使用 SD1.5 或 SDXL 模型。 2. 节点包含加载检查点模型Load Checkpoint、CLIP 文本编码CLIP Text Encode、空 Latent 图Empty Latent Image、KSampler 采样器、VAE 解码VAE Decode、保存图片Save Image。 3. 采样器参数设置为steps20cfg7sampler_nameeulerschedulernormalseed 用动态值。 4. 输出为完整可用的 ComfyUI workflow JSON 格式。 5. 将结果保存到 ComfyUI/user/default/workflows/my_first_workflow.json 6. 不要省略节点不要使用占位符以外的自定义节点。这里的重点是“不要省略节点”和“不要使用占位符以外的自定义节点”。如果你不强调这两点智能体很可能生成一个结构漂亮但依赖一堆你没装过的节点的“理想化工作流”。4.2 第二步检查并验证生成的 JSONCodex 生成结果后不要直接丢进 ComfyUI。先用 Python 验证一下 JSON 格式是否合法import json with open(my_first_workflow.json, r, encodingutf-8) as f: data json.load(f) print(JSON 合法) print(节点数量, len(data.get(nodes, [])))如果 JSON 解析失败说明智能体生成的 JSON 有语法问题让 Codex 重新修复直到通过校验为止。这里有一个非常实用的判断标准生成结果的质量要看它是否使用了你本地真实存在的模型文件名而不是随随便便写一个模型名。你可以先打开工作流 JSON搜索.safetensors或.ckpt看里面的模型文件名是否和你ComfyUI/models/checkpoints目录下的文件一致。不一致的话后面加载必然会报模型找不到。4.3 第三步把工作流保存到正确目录ComfyUI 会在user/default/workflows/目录下存放工作流文件。Codex 生成的 JSON 需要放到这个目录刷新浏览器页面后才能在 Workflow 菜单里看到。假设你的 ComfyUI 在D:\ComfyUI那么路径就是D:\ComfyUI\user\default\workflows\my_first_workflow.json如果你用的是秋叶整合包路径类似只是外层目录名可能不同。不确定的话在整合包目录下搜索workflows文件夹即可。4.4 第四步加载工作流打开 ComfyUI 页面后在 Workflow 菜单里选择 Open找到my_first_workflow.json并加载。如果一切正常你会看到节点图铺满画布。如果界面上出现红色节点说明有自定义节点缺失这就进入了第 5 章的流程。4.5 一个最小工作流的结构长什么样为了让不熟悉 JSON 结构的读者有个概念这里给一个工作流文件的骨架示例。实际使用时数据会比这个复杂得多但结构上是相近的{ last_node_id: 6, last_link_id: 5, nodes: [ { id: 1, type: CheckpointLoaderSimple, pos: [50, 100], size: [300, 100], widgets_values: [你的本地模型名.safetensors] }, { id: 2, type: CLIPTextEncode, pos: [400, 100], widgets_values: [a beautiful landscape] }, { id: 4, type: KSampler, pos: [750, 100], widgets_values: [20, 7, euler, normal] } ], links: [ [1, 1, 3, 1, CLIP], [2, 1, 4, 6, CONDITIONING] ] }这个骨架只是为了让你理解“节点”和“连线”在 JSON 里是怎么表达的不要直接拿去运行。实际可运行的工作流需要每个节点的完整参数、坐标、连线顺序全部正确。5. 加载工作流时的“缺失节点”与“缺失包”处理5.1 报错信息到底在说什么当你加载一个别人分享的工作流或者 Codex 生成的工作流引用了本地没有的节点ComfyUI 通常会弹出提示。常见的提示是请安装缺失的包以使用此工作流。 要安装缺失的节点请先在你的 Python 环境中运行。这句话其实分成两层意思第一层工作流里引用了某个自定义节点类型但你的 ComfyUI 里没有安装对应的插件或扩展。这个叫“缺失节点”。第二层即使节点插件装了它可能还依赖额外的 Python 包。这个叫“缺失包”。把这两件事分开后面处理起来就清晰了。5.2 优先使用 ComfyUI Manager处理缺失节点最推荐的做法是安装 ComfyUI Manager。它是 ComfyUI 的插件管理器可以扫描工作流里缺失的节点并在插件中心搜索安装。安装 Manager 之后加载工作流时它会直接提示“工作流缺少节点”并列出缺失的节点 ID 和名称。你只需点击搜索选择对应的插件仓库安装即可。大部分情况下Manager 会在安装节点的同时处理掉它的 Python 依赖。这不只是省事更是安全考量自己手动安装依赖时如果不清楚来源很可能会执行到有问题的安装命令。用 Manager 从官方插件源安装风险会低很多。5.3 手动安装缺失包的流程有些场景下 Manager 也解决不了问题比如节点已经安装但报错说缺少某个 Python 包。这时候就必须手动安装。安装之前先明确你用的到底是哪个 Python 环境。这里最容易踩坑。如果你用的是秋叶整合包不要直接打开一个命令行跑pip install xxx——那大概率装到了系统 Python 里ComfyUI 根本不会使用它。正确的做法是进入整合包目录找到它内置的 Python 可执行文件一般是你的整合包目录/python_embeded/python.exe然后在这个目录下打开终端执行cd /d D:\你的整合包目录 python_embeded\python.exe -m pip install 包名如果你用的是官方手动安装并且已经创建了虚拟环境先激活虚拟环境再安装# Windows venv\Scripts\activate # macOS / Linux source venv/bin/activate pip install 包名安装完成后重启 ComfyUI再重新加载工作流。如果报错消失说明问题解决。5.4 一个重要提醒包名要替换成实际报错里指出的名字。不同版本、不同节点依赖的包名不同。不要照着搜索引擎里的旧教程随便装一个大版本很可能会把 ComfyUI 自己的依赖搞乱。另外凡是让你“复制安装命令到终端执行”的提示一定要看清楚这个命令来自哪里。工作流本质上可以携带任意安装指令恶意工作流可以通过这个提示诱导你安装不安全的包。安装之前去 ComfyUI 官方讨论区或者插件项目的官方仓库确认是必要的谨慎。6. ComfyUI 局域网连接从本机到局域网6.1 默认情况下ComfyUI 只允许本机访问ComfyUI 默认启动时监听的是127.0.0.1也就是只有你自己这台电脑能打开。你在浏览器里访问http://127.0.0.1:8188正常但局域网里的其他电脑访问http://你的IP:8188必然失败。想要让局域网里的其他设备访问启动时要加上监听地址参数python main.py --listen 0.0.0.0 --port 8188--listen 0.0.0.0表示监听本机所有网络接口--port 8188是指定端口。如果你用官方手动安装直接在 ComfyUI 目录下执行即可。如果你用的是秋叶一键整合包可以在启动器的高级设置或启动参数里找到类似“监听地址”的配置项把地址改成0.0.0.0。不同版本整合包的界面不一样但思路是一样的。6.2 查看本机在局域网里的 IP启动之前先确认本机的局域网 IP。Windows 下执行ipconfig找到当前网卡的 IPv4 地址一般是192.168.x.x或10.x.x.x这种私有网段。这就是局域网里其他电脑访问你的地址。6.3 放行防火墙端口监听地址改好之后还有一个常见的坑防火墙。Windows 下如果防火墙默认拦截入站连接即使监听地址正确其他电脑也访问不到。需要给 8188 端口加一条入站规则。以管理员身份打开命令行执行netsh advfirewall firewall add rule nameComfyUI dirin actionallow protocolTCP localport8188如果是 Linux最常见的做法是sudo ufw allow 8188/tcp加完防火墙规则后在另一台电脑的浏览器里访问http://你的IP:8188正常情况下就能看到 ComfyUI 界面了。6.4 验证端口是否真的在监听如果访问还是失败先在本机确认端口是否真的在监听。Windows 下执行netstat -ano | findstr 8188如果输出里出现0.0.0.0:8188或:::8188说明监听正常。如果只出现127.0.0.1:8188说明监听地址没有生效重新检查启动参数。Linux 下对应命令是ss -lntp | grep 81886.5 安全提醒这里必须强调ComfyUI 本身默认没有用户认证。你把端口开放到局域网意味着同网段的任何人都可以往这个地址提交任务、读取生成结果。如果你的使用环境是公司内网、学校实验室或者家里和陌生人共用路由器的场景风险是真实存在的。建议只在你信任的局域网内开放此功能。如果需要跨网络访问不要直接把端口映射到公网而应该放在可信内网环境中通过带身份认证的反向代理或接入层来控制访问权限。7. 局域网访问失败的典型原因与排查流程7.1 最让人困惑的场景能上外网但连不上局域网很多人遇到过这种情况电脑的互联网访问一切正常网页能开视频能刷但 ping 不通局域网里的其他设备甚至连网关地址都不通。先说结论能上外网说明这张网卡的基本配置大概率没问题。连不上局域网设备问题通常出在链路隔离、路由选择或设备策略上而不是“网络整体断了”。最常见的原因有三个。第一个无线网络的 AP 隔离。很多路由器默认开启了这个功能用来隔离同一 WiFi 下的设备互相访问。开启后设备之间二层隔离能上网但互 ping 不通。如果你是用 WiFi 连接优先去路由器后台检查一下是否有“隔离”或“AP 隔离”选项。第二个网卡配置了错误的静态 IP 或子网掩码。比如两台电脑 IP 不在同一网段互相就无法直接通信。检查方法是在两台电脑上分别执行ipconfig /all对比 IP、子网掩码、网关是否属于同一规划。第三个主机防火墙。Windows 自带防火墙默认会阻止入站连接。如果你只是想被局域网访问除了给 ComfyUI 放行端口也可以临时关闭防火墙测试确认就是防火墙问题之后再精准添加规则。7.2 网关 ping 不通应该先查什么如果你发现连网关地址都 ping 不通先把问题缩小到“本机到路由器”这一段。按这个顺序检查# 1. 查看本机 IP、网关配置 ipconfig /all # 2. 查看网关 ipconfig | findstr Default Gateway # 3. 测试网关连通性 ping 你的网关IP网关 ping 不通原因通常是网线松动、WiFi 信号异常、网卡被禁用、IP 配置错误或者路由器拒绝回应 ping部分设备默认不开 ping 应答。这时候不要急着查 ComfyUI先解决最基础的链路问题。7.3 目的 MAC 地址与实际主机对不上是怎么回事搜索热词里有人提到TCP 连接从局域网发起私网地址对应源 MAC 地址没问题但目的 MAC 地址不一定对应主机。这句话有点绕但解释清楚后并不复杂。局域网通信在二层靠 MAC 地址转发在三层靠 IP 地址路由。当你的电脑要访问另一台机器时需要先通过 ARP 协议把目标 IP 解析成目标 MAC 地址。执行arp -a会看到 IP 和 MAC 的映射表。正常情况下目标 IP 对应的 MAC 应该是那台机器网卡的 MAC。但实际场景里会出现几种例外你访问的是网关而网关设备启用了虚拟 MAC 或高可用方案ARP 表里的 MAC 是虚拟地址不一定对应某一块物理网卡局域网里有人手动绑定了静态 ARP导致 IP 和 MAC 映射错误网络跨了三层设备中间有交换机或路由器做了转发导致你看到的 MAC 是下一跳设备的 MAC而不是最终目标主机的 MAC。如果访问不通并且怀疑 ARP 有问题可以先清理 ARP 缓存再重新解析arp -d然后在另一台机器上 ping 一下目标 IP让它重新发送 ARP 广播刷新映射表再回到原机器看arp -a的对应关系。判断逻辑很简单如果目标 IP 和你在同一个网段ARP 表里的 MAC 应该是它的真实网卡 MAC。如果不在同一个网段ARP 表里的 MAC 是网关的 MAC这是正常的不要看到 MAC 对不上就认为被“劫持”了。7.4 端口连通性测试网络链路通不代表端口通。在客户端电脑上要测试 8188 端口是否真的可以访问。Windows 上推荐用 PowerShell 的 Test-NetConnectionTest-NetConnection 192.168.x.x -Port 8188如果TcpTestSucceeded返回True说明端口可达。返回False说明链路通但端口未开放需要回到服务端检查监听地址和防火墙。Linux 或者 macOS 下可以用 ncnc -vz 192.168.x.x 81887.5 常见局域网访问问题汇总问题现象可能原因排查方式解决方案本机能访问其他电脑访问不了启动时没有加--listen 0.0.0.0netstat -ano | findstr 8188看监听地址重新指定监听地址启动访问被拒绝或超时Windows 防火墙拦注入站临时关闭防火墙测试添加 8188 入站规则能上网但 ping 不通局域网设备AP 隔离检查路由器无线隔离设置关闭 AP 隔离或改用网线网关 ping 不通网卡/IP 配置错误ipconfig /all查看配置改为自动获取 IP 或修正配置ARP 表 MAC 异常静态 ARP 或跨三层arp -a查看映射arp -d清理缓存重试端口测试失败监听地址或防火墙问题Test-NetConnection回到服务端查监听和防火墙8. 常见运行时问题显存不足、Codex 接口报错与模型接入8.1 5070 显卡跑工作流提示 GPU 显存不足热词里有一个高频问题ComfyUI 在 5070 显卡上跑工作流提示 GPU 显存不足。首先明确一点显存不足不一定代表显卡不行更常见的是工作流配置超过了当前显卡的承载范围。比如你加载了一个较大的 SDXL 或 SD3 模型又把分辨率开到 1024x1024batch size 设为 4再挂上一个占用显存的高精度 VAE显存就会迅速打满。排查要从几个方向入手。先看显存到底被什么占用nvidia-smi这个命令可以查看 GPU 显存总量、当前占用、占用显存的进程。如果发现其他进程占用了大量显存先关掉。然后是工作流侧优化。常用的手段包括降低生成分辨率比如从 1024 降到 768 或 512降低 batch size从 4 改到 1使用量化模型。比如 GGUF 格式的量化模型能在显存有限的显卡上运行更大的模型关闭或替换高显存消耗的 VAE清理 ComfyUI 运行过程中残留的显存缓存。ComfyUI 本身也有显存管理参数。如果你的显卡显存确实偏小可以尝试启动时带上低显存模式python main.py --lowvram如果显存用到极限还经常爆也可以试试python main.py --novram--novram会强制 ComfyUI 尽可能少地占用显存代价是速度更慢。它不是首选但有时候能救命。具体参数以你所用 ComfyUI 版本的官方文档为准。8.2 Codex 请求接口报错怎么处理有用户反馈Codex 在请求模型接口时报错比如请求/responses接口时出现“本地请求转发失败”一类的问题。这类报错通常是本地配置的自定义请求转发服务没有正常工作或者前后配置发生冲突。处理思路如下。第一确认你是否配置了自定义接口地址。如果只是使用官方服务其实不需要任何转发配置。直接在安装后运行codex login登录官方账号即可。第二检查环境变量里是否残留了自定义接口地址。命令行执行# Windows set | findstr /i OPENAI_ BASE_URL API_KEY # Linux / macOS env | grep -i OPENAI_如果发现OPENAI_BASE_URL这类变量指向了一个你不再使用的地址就需要清掉。Windows 下执行set OPENAI_BASE_URLLinux / macOS 下执行unset OPENAI_BASE_URL第三如果确实需要接入非官方模型服务比如想接 DeepSeek 这类兼容 OpenAI 接口的服务做法是在配置里指定接口地址和密钥。常见的方式是通过环境变量指定# 示意配置具体变量名以 Codex 官方文档为准 OPENAI_BASE_URLhttps://api.deepseek.com/v1 OPENAI_API_KEY你的密钥配置完成后先测试接口地址是否可用再重新启动 Codex。这里要提醒
返回列表