ComfyUI的安装、远程访问与模型管理
ComfyUI安装在一台带GPU的Linux主机上,浏览器从另一台电脑访问。安装本身不复杂,容易留下问题的是远程监听:直接让ComfyUI暴露在局域网甚至公网,模型、工作流和生成结果都会跟着暴露。
最后的结构是ComfyUI只监听本机回环地址,Nginx再提供一个带认证的入口;跨网络访问时继续套SSH隧道或VPN,不直接开放ComfyUI端口。
用comfy-cli安装
官方的comfy-cli可以管理安装、启动、更新、模型和自定义节点。单独创建Python环境,避免和其他推理项目互相污染:
1 | conda create -n comfy-env python=3.11 -y |
ComfyUI还需要与显卡匹配的CUDA、ROCm或其他运行时。comfy install成功并不代表GPU环境一定正确,首次启动后仍要看终端里识别到的设备和PyTorch后端。
先让服务只监听回环地址:
1 | conda activate comfy-env |
这里传给ComfyUI本身的参数放在--之后。使用回环地址监听以后,即使Nginx配置出错,8189端口也不会直接出现在其他主机上。
用Nginx增加访问入口
Basic Auth适合给内网或SSH隧道再加一道门槛,但它本身不加密密码。下面仍然只让Nginx监听回环地址:
1 | sudo apt update |
创建/etc/nginx/sites-available/comfyui:
1 | server { |
ComfyUI的队列和进度更新会使用WebSocket,因此Upgrade和Connection这两项不能省略。启用站点前先检查配置:
1 | sudo ln -s /etc/nginx/sites-available/comfyui \ |
从自己的电脑建立SSH隧道:
1 | ssh -L 8188:127.0.0.1:8188 user@192.0.2.10 |
浏览器随后访问http://127.0.0.1:8188。如果改成局域网监听,应同时用主机防火墙限制来源;需要公网访问则应配置HTTPS或放在可信VPN之后,不能只依赖明文Basic Auth。
模型放在哪里
ComfyUI会按模型用途读取不同目录,下载前要先看工作流中节点需要的类型。完整Checkpoint通常放在models/checkpoints,VAE、LoRA、文本编码器和扩散模型分别有自己的目录,不能只看扩展名全部堆到一起。
comfy-cli可以直接按URL下载到相对目录:
1 | comfy model download \ |
从Hugging Face只取仓库里的单个文件时,hf命令更方便:
1 | python -m pip install --upgrade 'huggingface_hub[cli]' hf_xet |
先下载到临时目录,再移动到对应模型目录,可以避免中途失败留下一个看起来正常、实际不完整的文件。模型来源只使用作者仓库、Hugging Face等可追溯页面,不使用带提取码的二次打包资源。
如果多个ComfyUI实例需要共享模型,不必复制几份。官方支持在ComfyUI根目录创建extra_model_paths.yaml,从外部目录增加搜索路径:
1 | shared_models: |
路径调整后要重启ComfyUI。某个模型在节点下拉框里消失时,先检查它是否放对目录,以及YAML缩进和实际文件权限,不要立刻重新下载。
查看safetensors元数据
模型文件名经常被改过,只凭名称很难判断来源和用途。safetensors文件如果带有元数据,可以在CPU上读取,不需要把权重加载进显存:
1 | from safetensors import safe_open |
元数据可能为空,也不能单独证明文件安全或模型来源可靠;它只是在模型无法识别时多提供一条线索。
更新前留一份可回退状态
ComfyUI和自定义节点更新频繁,工作流失效往往不是主程序单独造成的。comfy-cli支持快照和更新,操作前先看当前命令帮助,记录核心版本、自定义节点和Python环境,再逐项升级。不要在同一次变更里同时更新ComfyUI、PyTorch、显卡驱动和全部节点,否则出问题后很难确认是哪一层发生变化。