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 python=3.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/cpu

CPU版也能跑,就是速度会让人崩溃,出个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:完整模型(大模型)
  • loras:LoRA插件模型
  • vae:VAE解码器文件
  • embeddings:文本嵌入/词向量
  • controlnet:ControlNet辅助模型

如果某个工作流报模型文件找不到,先检查是不是放错了目录,或者文件名是否包含中文字符。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的玩法很大,工作流只是冰山一角。等你把这套环境弄明白了,再去看各种进阶教程,会发现思路清晰很多。

这次部署过程中我自己比较满意的处理是模型目录的符号链接方案,它让我在多套工具之间共享了同一个底模库,磁盘占用直接少了一半。如果你也在为硬盘空间发愁,这个技巧值得一试。

相关新闻

Looped-DiT-B32 文生图模型下一步走向何方:官方采样代码发布预测与完整路线图展望

Looped-DiT-B32 文生图模型下一步走向何方:官方采样代码发布预测与完整路线图展望

【免费下载链接】Looped-DiT-B32 项目地址: https://ai.gitcode.com/SenseNova/Looped-DiT-B32 点击查看 免费下载 Looped-DiT-B32 是 SenseNova 开源的一款文生图扩散 Transformer(AI 绘图模型),当前仓库已提供训练 290k 步的 E…

2026/10/20 1:49:09 阅读更多 →
AI芯片选型指南:从120种候选到3种的实操筛选流程

AI芯片选型指南:从120种候选到3种的实操筛选流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:48:09 阅读更多 →
g4f又添新成员:ERNIE免费模型接入统一接口实测

g4f又添新成员:ERNIE免费模型接入统一接口实测

前两天我照例把本地环境的g4f升级到最新版,然后顺手翻了一下provider列表。看到新增项里居然躺着“ernie”这个条目时,我第一反应是愣了一秒:国产大模型也进这个生态了?仔细确认了一下,确实是。这篇文章就顺着这个发现…

2026/10/20 1:48:08 阅读更多 →

最新新闻

投机推理:突破大模型自回归瓶颈的并行验证加速技术

投机推理:突破大模型自回归瓶颈的并行验证加速技术

1. 大模型推理的“车堵一条道”困局老做推理优化的朋友都有过这种体验:GPU 明明算力爆炸强,但每次生成一个 token 都得几毫秒甚至几十毫秒,batch 稍微大一点,延时就像坐火箭一样往上蹿。一开始我们都骂“模型太大了”,…

2026/10/20 7:13:55 阅读更多 →
Spring Boot+微信小程序汽车用品商城开发:从车型适配到支付回调

Spring Boot+微信小程序汽车用品商城开发:从车型适配到支付回调

先说句实在话:汽车用品这个品类,看着和普通电商差不多,但等你真把“Spring Boot 微信小程序”这套销售系统落地时,会发现一堆让人挠头的细节——车型适配怎么做、库存怎么拆、微信支付回调怎么验签、审核类目怎么过。这篇文章不聊…

2026/10/20 7:13:55 阅读更多 →
Delta机器人正逆运动学C#实现:高精度实时解算模块

Delta机器人正逆运动学C#实现:高精度实时解算模块

简介:本资源是一套面向机器人控制开发者与自动化专业学习者的Delta并联机器人运动学算法C#实现工程,聚焦高速拾放场景下的正向/逆向运动学求解这一核心难点。项目以Visual Studio解决方案形式组织,含41个文件,涵盖6个核心C#源码&a…

2026/10/20 7:13:55 阅读更多 →
无语言基础模型如何实现通用视觉异常检测?原理与落地

无语言基础模型如何实现通用视觉异常检测?原理与落地

这两年做计算机视觉落地,特别是工业视觉相关的项目时,我几乎绕不开一个词:异常检测。不管是手机外壳上的划痕、布料上的断纱,还是电路板上的漏焊,本质都是同一件事——在绝大多数正常样本中,把分布外的那一…

2026/10/20 7:13:55 阅读更多 →
Chatterbox TTS实战:开源语音合成全家桶部署与调优指南

Chatterbox TTS实战:开源语音合成全家桶部署与调优指南

去年底我就在关注开源TTS圈子的动向,当时看到Chatterbox TTS这个项目时,第一反应是"又一个语音合成模型",但真正部署完、跑了几天推理之后,我改变了看法——这玩意儿不是单个模型,而是一整套开箱即用的语音合…

2026/10/20 7:13:55 阅读更多 →
微服务商城对接支付宝支付:独立支付服务与异步回调实战

微服务商城对接支付宝支付:独立支付服务与异步回调实战

1. 支付服务在微服务架构里的定位做电商项目,前面把商品、库存、订单、用户这些服务都搭起来之后,早晚要面对一个绕不开的环节——支付。我这次在基于Vue和SpringCloudAlibaba的微服务商城项目里,把支付单独拆成了一个平台服务,专…

2026/10/20 7:12:54 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →