☰
ComfyUI原生版安装指南:从环境配置到首次出图
2026/10/24 7:02:20 网站建设 项目流程

ComfyUI 这个名字,这两年在做图圈子里出现的频率已经高到没法忽视了。它是目前最主流的节点式 Stable Diffusion 前端之一:把原来一堆藏在滑块和输入框后面的参数,全部摊开成一个个可以拖拽、可以连线的节点,采样器、CLIP、VAE、ControlNet 各管一段,数据从哪来、到哪去,一眼能看明白。缺点也很直接:官方只发一个不带任何预装环境的原始包,Python、显卡驱动、依赖库、模型目录,全得自己搭。这篇就聊原生版安装这条路,从环境准备到第一次出图,一步步走完。适合完全没碰过命令行的小白,也适合被整合包更新慢、出问题不知道怎么查的人。

1. 为什么我建议从原生包开始折腾

1.1 节点式工作流到底解决的是什么问题

先说清楚 ComfyUI 是个什么东西,不然装完了也是一脸懵。传统 WebUI 那种界面,本质是把一条固定管线包装成表单:你填提示词、设步数、选模型,后台按写死的顺序跑一遍。想在中途插一手,比如先放大再局部重绘、或者让两个模型分别出图再混合,就得靠插件打补丁,而且很多时候补丁之间还会打架。

ComfyUI 换了个思路,它不做表单,它做图。每个处理环节都是一个节点,节点有输入接口和输出接口,你把线连起来,就定义了一条数据流。加载模型是一个节点,编码提示词是一个节点,采样是一个节点,VAE 解码是另一个节点。想加个中间环节?插一个节点进去,连线改一下就行,不用等谁给你写插件。这个设计的好处是可解释、可复用、可存档:整条流程能导出成一个 JSON,别人拿到文件,模型放对位置,一键就能跑出完全一样的管线。

代价就是学习曲线。第一次打开那个灰扑扑的画布,只有右键菜单和一堆连线,确实会懵。但真正理解了“数据往哪流”这件事之后,你会发现它的自由度反而是它最值钱的地方。所以安装这件事,我的态度是:别怕动手,装一次比看十篇教程管用。

1.2 原生包、整合包、线上版该怎么选

现在常见的三种上车方式,各有各的适用人群,我按自己的使用经验列个对照,你可以对号入座。

方式上手难度可控性更新及时度适合人群
原生包手动安装中,需要敲几条命令最高,环境完全自己掌握项目更新即可拉取想长期用、想装插件、想改源码
免配置整合包低,解压即用中,环境被封装成黑盒依赖打包者节奏只想快速出图看看效果
在线运行环境极低,网页打开就能用低,装不了重插件由平台决定临时体验、设备不够

我推荐原生包的核心理由不是“显得专业”,而是出问题之后能查。整合包最大的坑在于环境是别人封装好的,报错信息里那些路径你根本对不上,装个需要编译的插件可能直接崩,而你连 Python 装在哪都不知道。原生包虽然要自己装一遍,但每一个目录、每一个虚拟环境你都心里有数,报错的时候能顺着线索往下摸。

当然也不是说整合包一无是处。如果你只是想在周末出几张图发朋友圈,没必要折腾这一套,直接下载别人打包好的版本就行。这篇文章面向的是打算把这件事长期做下去的人。

1.3 装之前先想清楚:你的机器扛不扛得住

这一段可能有点扫兴,但必须提前说。ComfyUI 本身很轻,几 MB 的代码,跑不动的原因九成在显卡。

判断标准很朴素:显存决定你能跑多大的图和多复杂的管线。用常见的 SD1.5(512×512 基准分辨率)出图,6GB 显存就够起步;用 SDXL 那一档的模型跑 1024×1024,8GB 会比较从容,12GB 以上才谈得上舒服;如果还要叠 ControlNet、放大模型、视频生成这类重活,显存消耗是翻着倍往上走的。

显存不够也不是完全不能玩,启动时加--lowvram或者--medvram参数,能把一部分计算挪到内存里,代价是速度明显变慢。极端情况下还有--cpu参数,纯 CPU 跑,一张图等几分钟到十几分钟,属于能跑但不建议日常用的范畴。

硬盘方面,模型文件是大头。一个 SD1.5 底模两三个 G,SDXL 底模六七个 G,再加 VAE、LoRA、ControlNet,起步预留 50GB 比较稳妥。固态硬盘强烈建议,模型加载速度差距非常明显。

提示:笔记本用户注意,双显卡切换的机型有时会默认用核显跑,导致报错说找不到设备,这种情况要在系统设置里把 Python 指定到独立显卡上。

2. 装之前先摸清家底:环境清单与版本逻辑

2.1 硬件与系统的底线要求

系统层面,Windows 10/11 六十四位是最省心的选择,Linux 用户基本不会遇到什么障碍,macOS 走 MPS 后端也能跑,只是生态里很多插件优先适配的是另一套环境,踩坑概率略高。

显卡驱动这块,我建议先更新到较新的版本再动手。原因很简单:ComfyUI 依赖的深度学习框架需要调用显卡的通用计算接口,驱动太老会导致框架装上了也调不动,表现出来就是启动日志里一句“CUDA 不可用”,然后所有计算默默退回 CPU,你还以为是电脑太慢。

检查方法很直接,打开命令行敲一条:

nvidia-smi

能看到一张表格,右上角写着你当前的驱动版本和支持的 CUDA 版本上限。把这两个数字记下来,下一步选框架版本的时候要用。如果这条命令提示找不到,八成是驱动没装或者没装对,先去显卡厂商那边把驱动补上,别急着往下走。

2.2 Python 版本为什么是踩坑重灾区

这是整个安装流程里我最想强调的一节。ComfyUI 需要一个特定的 Python 版本,而这个版本选错了,后面会连环崩。

先说结论:优先 3.10 或 3.11,别用太新的版本。Python 3.12 及以上虽然语言层面没问题,但深度学习生态里大量依赖需要预编译的二进制包,新版本 Python 的预编译包往往要等一段时间才跟上。你可能会遇到那种最烦人的报错——某个包在源码编译阶段卡住,然后吐出一大屏红色文字,最后告诉你“需要安装构建工具”。对新手来说这基本就是劝退点。

还有一个高频事故:电脑上装了多个 Python,命令行里敲python --version显示的是 3.13,你以为万事大吉,结果 ComfyUI 实际调用的是另一个。所以在创建虚拟环境之前,一定要确认版本号,而且要用绝对路径去调用,不要依赖环境变量里的默认指向。

# 先确认版本 python --version # 或者明确指定解释器 C:\Python311\python.exe --version

Windows 用户安装 Python 时,那个“Add Python to PATH”的勾选框建议勾上,虽然我会在后面的步骤里用绝对路径规避它,但勾上能省不少事。

2.3 Git、编译工具和目录规范

Git 的作用是把项目源码拉到本地,也是后续更新的主要手段。Windows 装 Git 一路下一步就行,装完在命令行敲git --version有输出就算成。

编译工具属于“不一定会用上,但用上了没装会很痛”的东西。后面装某些插件时,如果它依赖的包没有现成的预编译版本,pip 就会尝试本地编译,这时候没有编译器就会失败。Windows 上装一下微软官方的 C++ 生成工具(选“使用 C++ 的桌面开发”那一项)可以一劳永逸,装它要占用几个 G 的空间,但能省下未来无数次折腾。

目录规范这一条是我踩过坑之后的血泪总结:整个安装路径里不要出现中文、空格和特殊符号。像D:\我的AI\ComfyUI 安装这种路径,看着挺清楚,实际上很多底层库对非 ASCII 路径的支持是有问题的,表现出来往往是加载模型时报“文件不存在”,可你明明看见文件就在那。我一般会建一个干净的路径,比如D:\AI\ComfyUI,简单直接。

再顺手把存放模型的盘符规划一下。项目本身不大,但模型目录会越来越膨胀,把它放在容量充足的盘上,后续扩容也方便。

3. 原生包安装全流程实操

3.1 获取源码与目录规划

官方提供两种获取方式。第一种是直接下载压缩包解压,好处是简单,坏处是后续更新只能重新下;第二种是用 Git 克隆,好处是一条命令就能更新,坏处是需要先装 Git。我选第二种。

# 进入你规划的目录 cd /d D:\AI # 从项目官方仓库克隆(地址以项目页面公布的为准) git clone <官方仓库地址> ComfyUI cd ComfyUI

克隆下来之后,用dir(Windows)或ls(Linux/macOS)看一眼目录结构,你会看到main.py、requirements.txt、comfy、comfy_extras、models、custom_nodes这几个关键项。确认main.py在,说明源码完整。

这里补充一个概念:官方还发布过 Windows 免配置的便携版,解压就能跑,内部自带了一个精简的 Python 环境。它确实方便,但那个内置环境是封闭的,你想升级某个库、想装需要特定版本的插件,就会非常别扭。原生安装的意义就在于这个环境是你自己的。

注意:不要图省事把项目文件夹放在系统盘的用户目录下,一是空间容易被模型撑爆,二是某些系统级的权限保护会让写入失败,表现为保存图片时报错。

3.2 创建独立虚拟环境

这一步是很多人跳过的,但我强烈建议做。虚拟环境的作用是把 ComfyUI 的依赖和系统里其他 Python 项目隔离开,各玩各的,互不污染。

# 在项目根目录下创建虚拟环境,命名为 venv python -m venv venv # Windows 激活 venv\Scripts\activate # Linux / macOS 激活 source venv/bin/activate

激活成功的标志是命令行前面多了一对括号,显示(venv)。这个时候再敲python --version,输出的就是虚拟环境里的解释器,跟系统全局的隔离开了。

为什么值得多这一步?因为 ComfyUI 的依赖树挺深的,而且插件开发者经常要求特定版本的某个库。没有虚拟环境的话,你装 A 插件顺手升级了一个包,B 插件可能当场就废了,排查起来毫无头绪。有了虚拟环境,最坏的情况也就是把venv文件夹删掉重建,十分钟的事。

顺便说一句,激活状态只对当前这个命令行窗口有效,关掉重开就要重新激活一次。这也是后面我要写启动脚本的原因之一。

3.3 安装 PyTorch 与项目依赖

这是整个安装的核心环节,也是最容易出错的地方。

先说框架版本怎么选。要把两件事对上:你的驱动支持到哪一档 CUDA,以及你要用哪个版本的框架。上一步用nvidia-smi查到的那个版本号,是驱动能支持的上限,你装的计算版本不能超过它。比如驱动显示支持到 12.1,那你装 cu121 或 cu118 都没问题,装 cu124 就大概率报错。

一步到位的做法是先只装框架,装完立刻验证:

# 以 cu121 为例,具体可选版本以框架官方提供的索引为准 pip install torch torchvision torchaudio --index-url <对应版本的索引地址>

装完之后必须验证,别装完就直接往下走。验证命令就三行:

import torch print(torch.__version__) print(torch.cuda.is_available())

第三行输出True才算真的装到位。如果输出False,别急着继续,先解决这个。常见原因有两个:装成了纯 CPU 版本(版本号里没有 cu 字样);或者驱动版本太低,框架识别不到设备。前者重装带 cu 标记的版本,后者去更新驱动。

框架没问题了,再装项目依赖:

pip install -r requirements.txt

这一条命令会拉一堆库下来,包括图像处理、模型加载、界面相关的各种包。过程中如果出现红色报错,先别慌,看最后几行。如果提示某个包“Failed building wheel”,说明缺编译工具,回去把第 2.3 节那一步补上。如果提示版本冲突,记下冲突的两个包名,单独指定版本装。

还有一个提速技巧:默认的包索引在某些时段速度会比较感人,可以临时换成速度更快的镜像源,装完依赖再换回来。这个操作只影响下载速度,不影响装出来的东西。

3.4 写一个双击就能启动的脚本

装完之后每次用都要开命令行、激活环境、敲启动命令,太啰嗦了。写个批处理脚本一劳永逸。

在项目根目录新建一个文本文件,改名为启动.bat(或者英文名,避免编码问题),内容大致是这样:

@echo off cd /d %~dp0 call venv\Scripts\activate python main.py --preview-method auto pause

逐行解释一下,因为这几行里每一行都有用:

  • cd /d %~dp0把工作目录切到脚本所在的文件夹,这样不管从哪里双击都能正确启动,顺便解决了“手滑在错误的目录下执行”的问题。
  • call venv\Scripts\activate激活虚拟环境。这里必须用call,直接写会让批处理在激活后就中断。
  • --preview-method auto是开启采样过程预览,能边跑边看到图逐渐成型,调试的时候特别有用。
  • pause让窗口在程序退出后停住,不然闪一下就没,报错信息根本来不及看。

Linux 或 macOS 用户写个start.sh,内容对应:

#!/bin/bash cd "$(dirname "$0")" source venv/bin/activate python main.py --preview-method auto

记得给执行权限chmod +x start.sh。

启动成功后,命令行最后会打印一个本地地址,默认是127.0.0.1:8188,复制到浏览器打开就能看到那个灰色大画布了。如果 8188 端口被别的程序占了,启动会失败,加--port 8189换一个就行。

3.5 模型文件该放哪:目录对照表

界面能打开了,但没模型照样出不了图。ComfyUI 对文件位置的要求很严格,放错地方界面的下拉框里就是空的。

模型类型存放路径常见格式说明
底模(Checkpoint)models/checkpoints.safetensors / .ckpt主模型,出图的核心
VAEmodels/vae.safetensors负责解码色彩,缺失会偏色发灰
LoRAmodels/loras.safetensors风格与角色微调
ControlNetmodels/controlnet.safetensors姿态、边缘、深度约束
放大模型models/upscale_models.pth / .safetensors高清放大用
文本编码器models/clip.safetensors部分工作流需要单独指定
自定义节点custom_nodes文件夹插件都装这里

几个实操中的细节值得说:

文件优先选.safetensors格式,它比老的.ckpt更安全,加载时不会执行代码。文件名建议用英文和数字,别用中文,有些加载逻辑在遇到非 ASCII 文件名时会出岔子。放好文件后不用重启,在界面上点一下刷新按钮,或者按 R 键,列表就会更新。

模型体积大,千万别重复存好几份。如果你之前在别的工具里已经下过一批模型,可以直接把整个models目录搬过来,或者建立符号链接指向原位置,省硬盘。Windows 上建符号链接需要管理员权限,命令是mklink /D 目标 源,方向别搞反了。

注意:VAE 这一项经常被忽略。有些底模是内置 VAE 的,有些不是,不含 VAE 的底模跑出来画面会明显发灰发白。遇到这个现象,先去检查是不是缺 VAE,别一上来就怀疑参数。

4. 第一次跑通:从空白画布到出图

4.1 界面交互的基本功

第一次打开画布,你会看到一个可以无限拖动的灰色空间,默认已经摆了一个“Load Checkpoint”节点。别急着右键乱点,先掌握四个基本操作:

平移:按住空格或者鼠标中键拖动。缩放:滚轮。添加节点:在空白处双击或者右键,会弹出带搜索框的菜单,输入关键词就能过滤。连线:从一个节点右侧的小圆点拖到另一个节点左侧的对应圆点,颜色对不上的接口连不上,这是个很直观的防错设计。

所有节点都可以拖动、可以折叠、可以复制。选中一批节点按Ctrl+C、Ctrl+V能整块复制,做多分支对比的时候很有用。还有一个我天天用的快捷键:选中某个节点后按Ctrl+M可以暂时静音它,调试的时候不用把线拆了重连,比删了再补快得多。

管理多条工作流的时候,用右侧面板的保存功能存成文件,下次直接拖进画布就恢复了。这个 JSON 就是你的“流程资产”,比截图有用一百倍,因为它是可执行的。

4.2 搭一条最简出图链路

不用背,直接调用内置范例最快。在画布上双击,搜索Load Default,或者在菜单里加载默认工作流,出来一条从加载模型到保存图片的完整链路。这条链路的结构是:

Load Checkpoint(加载底模)→ 分出两路,一路进CLIP Text Encode(正向提示词)和另一路(反向提示词)→ 两路提示词和底模一起进KSampler(采样器)→ 输出进VAE Decode(解码成图)→Save Image(保存)。

连线的时候注意 KSampler 有几个关键输入:model接底模输出的模型,positive接正向提示词编码,negative接反向,latent_image接一个空 Latent。空 Latent 节点需要你自己加,搜索Empty Latent Image,里面填分辨率和批次。512×512 是最稳的起步尺寸,因为大多数底模都是按这个尺寸训练的。

KSampler 里的参数,第一张图建议这样设:

参数建议值说明
steps20-25步数少质量差,太多收益递减
cfg7提示词贴合度,越高越死板
sampler_nameeuler最通用的采样器,速度快
schedulernormal与 euler 搭配的常规调度
denoise1.0从空 Latent 起步必须是 1.0
seed随便填个数字固定它才能复现同一张图

denoise这个参数是新手最容易搞错的。从零开始出图时它必须是 1.0,表示完全重绘;只有做图生图、放大这类“基于已有图像”的流程时,才把它调低。看到别人说“0.5 重绘”就跟着改,然后发现出来的图糊成一团,问题就出在这。

点右侧的 Queue Prompt 按钮(或者按Ctrl+Enter),命令行窗口开始滚动日志,画布上的节点会依次亮起表示正在执行。第一次跑会慢一些,因为模型要从硬盘加载进显存。

4.3 盯着显存看:什么时候该紧张

第一次跑通之后,建议打开任务管理器看一眼显存占用,这个数字会成为你后面所有参数调整的依据。

我的经验值是:出 512×512 的图,占用在 3-5GB 波动;出 1024×1024,8GB 显存的卡会跑到 7GB 以上,接近天花板;一旦叠了 ControlNet,再往上加 2-3GB 很正常。如果显存占用贴着上限跑,你会听到风扇狂转,然后要么报“显存不足”,要么整台机器卡死。

几个缓解手段,按效果排序:

第一,降分辨率。1024 降到 768,显存占用能掉一大截,这是最直接的办法。第二,加启动参数--lowvram,让框架更积极地释放不用的模型块。第三,用--medvram折中一下,速度损失没那么大。第四,把批次大小从 4 降到 1,出图数量少了但单张更稳。

还有一个容易被忽略的点:ComfyUI 会把模型缓存在显存里以便快速复用,如果你频繁切换不同底模,缓存可能越堆越多。启动参数里加--disable-smart-memory可以让它更激进地清理,代价是切换模型后首次出图变慢。这个参数在显存紧张的时候很好用。

5. 报错排查实录:这些坑我都踩过

5.1 依赖与环境类问题速查

装依赖这关是最容易卡住新手的,我整理了一张对照表,覆盖大部分高频情况。

报错特征根本原因处理方式
No module named xxx依赖没装全重新执行pip install -r requirements.txt,注意确认在虚拟环境里
Failed building wheel缺编译器补装 C++ 生成工具,或换预编译版本
ImportError: DLL load failed运行库缺失补装系统运行库合集
装包极慢、超时下载源问题临时换索引源
版本冲突警告两个包互相要求不同版本单独指定版本装,或先装主包再装插件

No module named这一类,九成是“以为在虚拟环境里其实不在”。判断方法很简单,看命令行前面有没有(venv)。没有的话,你装的包进了全局环境,项目自然找不到。

版本冲突这类问题更麻烦一些。我的处理原则是:先保证 ComfyUI 主程序能跑,再去装插件。顺序反过来的话,插件引入的依赖可能把主程序需要的东西降级掉。真遇到死锁,把venv删了重建,重装一遍主程序依赖,往往比一点点拆解冲突更快。

5.2 显卡相关报错的处理思路

启动日志里出现Torch not compiled with CUDA enabled,说明装的是 CPU 版本框架,重装带 cu 标记的版本即可。出现CUDA out of memory,就是显存真的不够,参考 4.3 节的手段。

还有一种情况是设备能找到,但跑起来异常慢,出图时间比预期长好几倍。这时候检查一下日志开头有没有打印设备名称,如果显示的是 CPU 而不是显卡型号,说明框架在用 CPU 算。原因可能是驱动版本太老,也可能是装了不匹配的计算版本。

驱动版本这件事,我的建议是保持在一个较新但稳定的版本上,别追最新。最新的驱动偶尔会有兼容性问题,而你很难第一时间联想到是驱动惹的祸。

5.3 那些看起来不像问题的问题

有几类“故障”其实不是故障,新手容易误判。

启动特别慢,卡在导入阶段十几秒:正常现象,框架初始化要加载大量的库和算子,机械硬盘上更明显。放固态盘能改善。

界面能打开但出图按钮点了没反应:看命令行窗口,出图日志是在命令行里滚的,界面上看不到进度很正常。

保存的图片找不到:默认存在项目目录下的output文件夹,按日期分子目录。如果你改过启动参数里的输出路径,去那找。

杀毒软件报毒然后文件被删:深度学习框架的某些二进制文件容易被误判。真遇到了,把项目目录加到信任列表,别直接关掉防护。

浏览器打开是白屏:可能是浏览器缓存,也可能是端口填错。换个浏览器或者开无痕窗口试试,能快速排除。

6. 装完之后:更新、插件与备份

6.1 更新的正确姿势

原生包的优势这时候体现出来了。更新就两步:

git pull pip install -r requirements.txt

第二条命令不能省。项目更新时经常会引入新的依赖,只拉代码不装依赖,启动时报个No module named你还以为是更新坏了。

但这里有个必须提醒的风险:如果你已经装了一堆插件,git pull之后主程序跑不起来是常有的事,因为插件可能还没适配新版本。我的习惯是更新前先把整个项目文件夹复制一份备份,出问题直接回滚,比一行行排查快得多。

如果是那种需要回退到某个旧版本的情况,可以用git log看提交记录,git checkout <提交号>切回去,然后再装一遍那次的依赖。

6.2 插件管理:别一次装一堆

自定义节点是这个生态最活跃的部分,也是环境最容易崩的地方。我的建议是一次只装一个,装完立刻重启验证。一次装十个,出问题的时候你根本不知道是哪个惹的祸。

插件安装方式通常是进custom_nodes目录,用 git 克隆下来,然后回到主目录执行pip install -r <插件目录>/requirements.txt。很多人漏掉后一步,结果插件在界面里出现了,点下去就报缺模块。

真要装插件,社区里有个管理器类的扩展能省不少事,它把安装、更新、依赖处理做成了图形化操作。但我还是会提醒一句:这类管理器在批量更新时容易把环境搞乱,日常用的时候尽量手动单个操作。

6.3 备份什么、怎么备份

这件事我吃过亏,所以单独说。需要备份的东西按重要性排:

第一是工作流 JSON,这是你花了时间调出来的管线,丢了最心疼,而且文件很小,多存几个地方没成本。第二是模型文件,尤其那些难找的,重新下可能要好几天。第三是custom_nodes目录,插件配置都在里面。第四才是主程序本身,那个随时能重新拉。

我自己的做法是把models目录和output目录放在一个固定的位置,定期整体复制到另一块盘。项目本身反倒是轻量备份,更新前复制一个文件夹就够了。这样即使哪天环境彻底搞崩,重装半小时就能恢复,模型一个都不用重下。

另外提醒一句,output目录会随着使用无限膨胀,出图多了动辄几十个 G。定期清理不需要的图片,或者把它指向一个容量更大的盘,能省不少麻烦。我一般会在启动参数里把输出路径固定下来,免得哪天忘了清理把主盘塞满。

最后分享一个我个人的习惯:装完之后的第一件事,是把那几条验证命令(Python 版本、torch 版本、CUDA 是否可用)记在一个 txt 里放在项目根目录。以后不管换了机器还是隔了半年再回来,照着敲一遍,三十秒就能判断环境是不是还正常,比凭记忆猜可靠得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询