Windows上源码部署ComfyUI:Anaconda环境与PyTorch避坑指南
熬过AI绘图工具的入门期之后我基本固定在ComfyUI上走完了从下载模型到部署工作流的所有环节。折腾过几轮整合包最终还是转向了Anaconda环境下的源码安装——这个方案干净、可控、升级方便出了问题也知道去哪里修。如果你也想从零部署一套自己的ComfyUI用源码方式装好它这篇指南应该能帮你省掉不少弯路。需要先说清楚的是这不是一篇讲工作流节点怎么连的教程而是把你从一台“裸机”带到“浏览器能打开ComfyUI界面、本地能出图”这一步。整个过程全部在Windows系统上演示Linux和macOS差别不大命令稍有不同涉及的坑基本都是我实际踩过的。1. 为什么绕开整合包选择源码安装1.1 ComfyUI到底是一个什么东西ComfyUI本质上是一套基于节点的图像生成工作流引擎。它不像WebUI那样把所有功能堆在一个页面里而是让你把模型加载节点、正向/反向提示词节点、采样器节点、VAE解码节点像拼积木一样连起来。这种设计带来的好处非常直接显存占用可控、流程透明、每个环节的输出都能单独预览。这套系统依赖Python运行核心是通过PyTorch驱动GPU做张量运算。模型文件本身不放在项目目录里而是放在models下的checkpoints、loras、vae这些子文件夹里。理解了这个目录结构后面配置起来会顺手很多。1.2 源码安装相比整合包赢在哪里整合包一键包确实省事解压就能用。但它的短板也很明显Python环境是绑死的、依赖版本是定死的、你想装一个新插件可能直接装不上出了问题只能删掉重来。源码安装的思路是你自己创建一个干净的Python虚拟环境把ComfyUI的代码clone下来再用pip把依赖装进去。整个过程每一步都可见出问题知道是哪里挂的升级也只需要git pull一把。说白了整合包是一辆组装好的车源码安装是给你一套零件和图纸装一遍之后你对这辆车的结构就熟了。1.3 Anaconda在这里面扮演什么角色Anaconda的核心价值是环境管理。ComfyUI对Python版本和PyTorch版本都有要求不同项目之间还可能互相冲突。用conda创建独立环境相当于给每个项目分配一间单独的隔音房互不干扰。另一个原因是PyTorch安装时的CUDA版本选择。显卡驱动支持的最高CUDA版本决定了你能装哪个cu版本而conda环境可以让你针对不同项目切换不同的PyTorch环境不用因为某个项目需要老版本就动系统级环境。提示如果你不想装Anaconda全家桶也可以用Miniconda轻量得多。后面所有conda命令两种工具都能用。2. 从安装Anaconda到创建干净虚拟环境2.1 Anaconda安装与源配置下载Anaconda安装包后一路默认即可。但有一个关键选项安装过程中会询问是否将conda加入PATH建议勾选省得后面每次都要手动找路径。装完之后第一件事是配国内镜像源。conda默认源在境外下载速度很难看容易让人以为卡死了。修改用户目录下的.condarc文件写入清华源或阿里源地址。这一步不做后面创建环境时下载Python解释器会非常煎熬。配置完成后在命令行里输入conda info能看到当前环境信息和源地址确认源已经生效。2.2 创建ComfyUI专用虚拟环境以Python 3.11为例这是当前兼容性比较好的版本执行conda create -n comfyui python3.11这里的comfyui是环境名你可以随意起。创建过程中会提示安装哪些包输入y确认。为什么要单独指定Python版本因为ComfyUI的某些依赖对Python版本有要求。3.10和3.11目前都挺稳3.12以下版本的某些第三方节点可能还没适配建议先用3.11。创建好之后激活环境conda activate comfyui命令行前面出现(comfyui)字样就说明已经进入环境。后续所有安装操作都要在这个状态下进行。2.3 环境管理的基本操作几个常用的环境命令先记住conda env list # 查看所有环境 conda deactivate # 退出当前环境 conda env remove -n comfyui # 删除环境 conda env export environment.yaml # 导出环境配置最后一个命令特别有用。你配好一个稳定的环境之后导出一份yaml文件换机器的时候直接conda env create -f environment.yaml就能恢复。相当于给环境做了一个快照存档。3. 源码获取与核心依赖安装3.1 拉取ComfyUI源码激活环境后找一个放项目的目录比如D:\AI执行git clone https://github.com/comfyanonymous/ComfyUI.git如果你所在网络环境下GitHub访问不畅clone速度很慢可以把地址换成镜像站。这个细节处理完项目代码就落到本地了。进入项目目录cd ComfyUI目录里面能看到main.py、requirements.txt、models文件夹等。main.py就是启动入口requirements.txt列了所有Python依赖。3.2 PyTorch安装是成败关键ComfyUI的核心运算完全依赖PyTorch这一步最容易出错。安装PyTorch之前先确认你的显卡支持哪个CUDA版本。查看方式在命令行执行nvidia-smi看右上角的CUDA Version。这个数字代表你的驱动最高支持到多少比如显示12.x就代表可以装CUDA 12.x对应的PyTorch版本。打开PyTorch官网的安装向导页选择你的系统、包管理工具pip、Python版本、CUDA版本它会生成一行安装命令。例如pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121这里cu121代表CUDA 12.1下载的是预编译好的二进制包包含GPU支持安装包比较大耐心等它跑完。如果你没有独立显卡只有核显或者显存实在太小可以先装CPU版pip install torch torchvision --index-url https://download.pytorch.org/whl/cpuCPU版也能跑就是速度会让人崩溃出个512分辨率的图可能要等上好几分钟。建议还是想办法搞张显卡N卡优先。注意安装时别用新版Python自带的pip直接装默认版本的torch默认索引源可能拉到CPU版GPU等于白装。务必用官网生成的那条命令。装完之后验证一下python -c import torch; print(torch.__version__); print(torch.cuda.is_available())如果输出True说明GPU版本的PyTorch装好了后面ComfyUI就能调用显卡。3.3 安装项目依赖回到ComfyUI项目目录安装requirements.txt里的依赖pip install -r requirements.txt这一步会把ComfyUI运行所需的其他组件一并装好比如transformers、safetensors、opencv等。中途可能会因为网络问题某个包下载失败重新执行一次即可pip会跳过已经装好的。如果你希望后面方便安装各种自定义节点还建议顺手装上pip install gitpython很多节点管理器会用到gitpython来拉取更新。4. 第一次启动与基础验证4.1 启动命令与常用参数依赖都装完之后运行python main.py首次启动会加载一些配置看到类似Starting server的日志然后提示访问127.0.0.1:8188。打开浏览器如果能看到一个深色界面左边是节点列表中间是画布恭喜你ComfyUI本体已经跑起来了。常用启动参数先记住几个python main.py --listen 0.0.0.0 --port 8188--listen 0.0.0.0表示允许局域网内其他设备访问配合局域网IP就能在平板或另一台电脑上操作。--port可以改端口默认8188够用不冲突就不用改。如果你想提升生成速度可以加python main.py --force-fp16这会让部分模型强制使用半精度计算显存占用更小速度更快代价是对显卡有要求。老卡如果出图出现黑图、花屏去掉这个参数再试。4.2 放模型文件完成第一次出图内置的默认工作流会加载一个SD1.5的checkpoint模型。你需要把模型文件放进ComfyUI/models/checkpoints目录。市面上常见的SD1.5模型比如各种融合版、二次元/写实底模下载后放入即可。模型文件一般是4GB左右或2GB左右的safetensors格式。放好之后回到浏览器界面点击界面上的加载默认按钮然后把节点里的模型选择器切到你刚放进去的模型。填入正向提示词、负向提示词点击右侧的Queue按钮。此时命令行会滚动出一堆张量运算日志等待几十秒界面上会显示出生成的图。提示首次生成时模型要加载进显存所以第一张图通常会比后面的慢很多。别急这是正常的。4.3 目录结构与模型类型ComfyUI/models下面按类型分了多个子目录放错位置会导致节点找不到文件。常见对应关系checkpoints完整模型大模型lorasLoRA插件模型vaeVAE解码器文件embeddings文本嵌入/词向量controlnetControlNet辅助模型如果某个工作流报模型文件找不到先检查是不是放错了目录或者文件名是否包含中文字符。ComfyUI对中文文件名支持不太好经常会出现加载失败建议所有模型文件都改成英文名。5. 进阶配置让ComfyUI用起来更顺手5.1 模型目录整合避免磁盘爆炸玩久了你就会发现模型文件动辄几个GB如果每个项目都复制一份硬盘很快就吃不消了。更合理的做法是把模型放在一个公共目录里然后用符号链接把项目内的models文件夹映射过去。具体操作Windows下在命令行执行mklink /D D:\AI\ComfyUI\models\checkpoints D:\AI\shared_models\checkpoints这样ComfyUI读取checkpoints时会直接读取共享目录里的文件不用复制。其他模型类型同理可以逐个映射。macOS/Linux下用ln -s。这个技巧能极大缓解存储压力尤其是你同时装了多个AI绘图工具、想共用底模和LoRA的时候。5.2 安装ComfyUI-Manager插件ComfyUI在0.3.0及以上版本已经内置了Manager但如果你用的是旧代码可以通过git安装cd custom_nodes git clone https://github.com/ltdrdata/ComfyUI-Manager.git重启ComfyUI界面上会多出Manager按钮。这个插件帮你管理自定义节点的安装、更新、缺失节点修复。以后从网上找到某个工作流文件、打开发现一堆红色节点点一下Manager里的Install Missing Custom Nodes就能自动处理省掉手工找插件的麻烦。自定义节点的安装目录是ComfyUI/custom_nodes各种第三方节点都放这里。手动装的话就是clone到该目录然后重载。多数情况下Managera能搞定不需要手动操作。5.3 局域网共享与远程访问前面提到的--listen参数可以让其他设备访问本机ComfyUI。如果你需要在外网访问可以考虑内网穿透工具具体不做推荐。需要注意的是ComfyUI默认没有任何认证机制暴露到公网等于把显卡权限送给别人强烈建议只在可信局域网内开启监听。另外你可以在电脑运行中也开启python main.py --listen 0.0.0.0 --port 8188 --enable-cors-header--enable-cors-header是给某些浏览器插件调用API时用的不需要可以不加。6. 常见问题与排错速查6.1 启动时提示No module named torch原因很明显PyTorch根本没装上或者装错了环境。检查当前环境是不是comfyui命令行前缀有没有环境名然后在当前环境下重新执行torch的pip安装命令。6.2 浏览器打开空白或一直在加载经常出现在首次启动后。先把命令行日志看一遍一般会提示端口被占用、config文件有误等。端口被占用时换一个端口python main.py --port 8189如果日志显示加载模型失败多半是checkpoints目录没有模型文件或模型文件名不合法。确认一下文件位置和名称。6.3 出图时提示CUDA out of memory显存不够用了。解决办法有几种减小生成分辨率先从512x512开始降低batch size批处理数量添加--lowvram参数强制使用低显存模式换用轻量模型如果你用的是4GB显存的卡建议把分辨率控制在512级别然后用SD1.5小模型。SDXL大模型在8GB显存以下基本跑不动不是不能跑是慢得没法用。6.4 模型文件下载后加载失败有一种常见情况是下载文件不完整。下大模型建议用支持断点续传的工具或者看文件大小是否与官方的完全一致通常有MD5校验信息。另外有些模型是diffusers格式的文件夹不是单个safetensors文件ComfyUI默认不认这种格式需要转换或拷贝对应的safetensors版本。6.5 依赖版本冲突怎么排查ComfyUI更新后偶尔会出现某个依赖版本不兼容表现是启动时import报错。推荐两个办法把ComfyUI更新到最新版后重装requirements用Anaconda环境导出配置重装一个干净环境再恢复不建议在报错后盲目pip install某个特定版本容易引发新的冲突。判断依据是看它的issue页面有没有人反馈同样问题等官方或社区给出兼容版本。最后再分享一点我的实操习惯环境和项目稳定下来后建议养成几个习惯每次更新ComfyUI之前先备份custom_nodes里自己改过配置的节点定期导出环境配置conda env export模型文件统一用英文命名并记录在一个文本清单里。我最开始也是从整合包入手的后来因为想装一个第三方节点装不进去被迫转向源码安装。折腾一次之后彻底回不去了——依赖自己装、环境自己建、启动参数自己定出了问题能准确说出是哪一步坏了。ComfyUI的玩法很大工作流只是冰山一角。等你把这套环境弄明白了再去看各种进阶教程会发现思路清晰很多。这次部署过程中我自己比较满意的处理是模型目录的符号链接方案它让我在多套工具之间共享了同一个底模库磁盘占用直接少了一半。如果你也在为硬盘空间发愁这个技巧值得一试。