☰
ComfyUI本地部署完全指南:从环境配置到文生图工作流实战
2026/10/14 5:26:05 网站建设 项目流程

ComfyUI这两年在国内AI绘画圈里已经从“小众工具”变成“人手必备”了。很多人一开始是从WebUI入门的,用久了就发现出图流程稍微复杂一点,比如要做局部重绘、要叠多个LoRA、要控制生成批次,WebUI的页面就变得又卡又乱。这时候看到别人分享的ComfyUI工作流,那种“节点连线”的界面,第一反应是抗拒,第二反应是真香。这篇教程没有废话,直接从本地部署讲起,把环境配置、模型放置、文生图工作流一步一步拆给你看。既适合第一次接触ComfyUI的新手,也能帮已经装了但总觉得“跑图不正常”的朋友排查问题。文中的所有方案都是基于我个人的实际装机经验,不是纸上谈兵。

1. 本地部署前,先把这几个底层问题想明白

1.1 显卡显存决定你能玩多大

写任何本地部署教程,我都习惯先聊显卡。很多朋友下了一堆整合包,装完之后打开界面,结果一生成就报错,八成卡在显存上。

Stable Diffusion出图的过程分两半:前半段是“文本编码 + 噪声预测”,后半段是“VAE解码出像素”,全程都在GPU显存里做。显存不够最直接的后果不是不能跑,而是要用CPU硬扛,一张512x512的图能等好几分钟。更现实的是,不同底模对显存要求差别很大:

  • 玩SD 1.5系列模型,512x512分辨率,显卡显存4G以上就能顺畅跑;
  • 玩SDXL,1024x1024分辨率,建议8G显存起步;
  • 玩FLUX这类新架构模型,模型文件本身十几个G,16G显存都是入门线,想流畅反复调参最好上24G。

所以部署之前先打开任务管理器,或者用我下面会说的nvidia-smi命令看一眼,至少确认你的显卡型号和显存大小。只有集成显卡或者显卡太旧的话,老实说,本地玩文生图会很痛苦,不如考虑用云显卡服务或者直接玩在线出图,别硬折腾。

1.2 整合包和源码部署,我劝你先分清楚

现在网上流传最多的是“秋叶ComfyUI整合包”,解压即用,确实适合只想安安稳稳出图的朋友。但整合包有个麻烦:你很难搞清楚它内部到底用了哪一套Python环境、哪个版本的PyTorch,遇到要装自定义节点或者升级依赖的时候,搞不好就把环境弄乱了。

我的习惯是直接用官方源码部署。虽然第一次要敲的命令多几条,但好处非常明显:每个依赖装在哪个虚拟环境里清清楚楚,出问题能精准定位;想更新就git pull;想给某套工作流单独做隔离也很方便。而且源码部署本质上没有比解压整合包多多少操作,只是把“黑盒”变成了“白盒”而已。

如果你已经用了整合包,后面的配置部分也能对照着看,因为底层原理完全一样。只是整合包帮你省掉了装环境的过程,遇到问题时的排查思路仍然通用。

1.3 先把基础工具准备齐:Python、Git、目录规划

ComfyUI官方推荐Python 3.10以上,Windows下我建议装3.10.x或者3.11.x,不要追最新版。很多C扩展包对新版本Python的预编译支持会慢半拍,等你某天想装一个加速依赖时,就会卡在“没有对应版本的预编译包”这种问题上。

Git也是必需的,不光是为了克隆源码,后面装插件、更新插件的命令全是git clone。

另外强烈建议把ComfyUI项目单独放在一个空间充足的盘里,因为模型和虚拟环境加起来经常占用几十个G。我自己在D盘专门建了一个D:\AiComfy目录,所有模型、Python环境、插件都放在这个项目树里,以后备份和迁移都方便,不会出现C盘爆满的惨剧。

2. 驱动、CUDA和PyTorch:跑图环境的“铁三角”

2.1 先用一行命令检查显卡驱动

打开命令行工具(Windows下是cmd或者PowerShell,Linux下是终端),输入:

nvidia-smi

输出信息里有两项最关键:右上角显示的是Driver Version,下面表格里还会显示一个CUDA Version。很多人误以为这里显示的CUDA Version就是系统已经装好的CUDA,其实它只是当前驱动支持的最高CUDA版本,并不代表你已经安装了CUDA环境。

显卡驱动只需要满足一个原则:支持你接下来要装的PyTorch所对应的CUDA版本就行。驱动建议装NVIDIA官方提供的Game Ready或者Studio驱动,Studio驱动稳定性通常稍好一点。驱动版本别太低,老驱动对新显卡支持很差,经常会出现“CUDA初始化失败”的奇怪毛病。

2.2 PyTorch的安装才是重头戏

ComfyUI跑在PyTorch框架上,而PyTorch又依赖CUDA。官方部署流程里其实不需要手动装完整CUDA Toolkit,只需要安装GPU版PyTorch包,它会自动带上对应的CUDA runtime组件。这一点新手特别容易理解反。

安装GPU版PyTorch时,推荐直接去PyTorch官网找到针对当前系统和CUDA版本的安装命令。目前常见的是cu121、cu124、cu126这类版本标记,命令长得像下面这样:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

这里的cu124表示CUDA 12.4版本。实际配置时要以PyTorch官网当前提供的最新版本为准,因为CUDA版本和显卡驱动版本是配套的。装完之后必须用下面这句验证GPU能不能被正确识别:

python -c "import torch; print(torch.cuda.is_available())"

如果输出True,这块就过了。我见过不少朋友装完PyTorch之后实际在CPU上跑的例子,根本原因就是装成了CPU版,所以这一步千万别偷懒。输出False时,优先检查安装命令里有没有带--index-url,或者去查torch版本里有没有+cu后缀。

2.3 创建干净的虚拟环境

ComfyUI官方现在建议把项目装在venv虚拟环境里,不要直接装到系统Python环境。原因很简单:ComfyUI依赖的包版本比较挑,直接装在全局环境里很容易破坏别的项目,其他项目的依赖也可能反过来把ComfyUI搞挂。

在Windows下创建虚拟环境的常用步骤是:

cd D:\AiComfy python -m venv venv venv\Scripts\activate

看到命令行前面出现(venv)标记,说明已经进入这个隔离环境了。后续所有pip安装命令都要在这个激活状态下执行,否则就白装进系统里了。Linux下对应的激活命令是source venv/bin/activate,这一点要记清楚,别在Windows教程里复制Linux命令然后发现找不到activate文件。

3. 拉取源码、安装依赖、启动ComfyUI

3.1 克隆ComfyUI官方仓库

进入项目目录,执行:

git clone https://github.com/comfyanonymous/ComfyUI.git

如果国内直连官方仓库比较慢,也可以用一些镜像地址拉取。注意这里只是普通的代码克隆操作,和下载普通开源项目没区别,选一个你认为方便的源就行。克隆完成后,ComfyUI目录下会自动生成基本文件结构,包括main.py、requirements.txt、models目录等。

3.2 按requirements安装Python依赖

进入ComfyUI目录:

cd ComfyUI pip install -r requirements.txt

如果你的pip下载速度慢,可以换成国内镜像源,例如清华或者阿里云的PyPI镜像,用法就是给pip加-i参数。这一步纯粹是网络加速问题,不涉及代理那套东西。

装依赖过程中最常碰到的报错是某个编译型包装失败,比如torch装错成了CPU版,或者triton编译失败报出一大段红色错误。此时先回头确认虚拟环境有没有激活,再确认安装的是GPU版PyTorch,最后再检查网络问题。依赖装完之后再跑一次torch.cuda.is_available(),确保整个过程没有装错。

3.3 启动参数和首次访问

激活虚拟环境后,直接执行:

python main.py

默认监听8188端口,浏览器会自动打开,或者手动访问http://127.0.0.1:8188。看到那个黑底节点操作界面,说明第一步部署成功了。

如果需要局域网内其他设备访问,可以加参数启动:

python main.py --listen 0.0.0.0

如果显存紧张,可以加--lowvram;如果显存很大,可以加--highvram来减少反复加载模型造成的等待。比较理想的组合是我个人常用的:

python main.py --cuda-malloc --disable-auto-launch

--cuda-malloc可以明显降低显存碎片,对反复调参很友好;--disable-auto-launch关掉自动跳浏览器,避免每次启动都被浏览器弹窗打扰。

首次启动还会自动补齐models文件夹里所有子目录。你只需要把下载好的模型文件放进对应子目录,刷新界面就能在节点里看到。

4. 模型、VAE、CLIP:配置最容易出问题的环节

4.1 看懂models目录结构

ComfyUI的模型存放目录比WebUI清晰得多,这是它的一个优点。启动之后,你会在ComfyUI根目录看到models子目录,里面常见的文件夹有:

目录名作用
checkpoints主模型,也就是大模型,通常后缀是.safetensors
vae单独的VAE文件
lorasLoRA模型
clipCLIP文本编码器,部分新模型需要
text_encoders新架构模型的文本编码器
unet某些新模型拆出来的UNet文件
diffusion_models拆分式扩散模型文件
controlnetControlNet模型
upscale_models放大模型

老手一般会把文件按目录归位,不要全都塞进checkpoints。ComfyUI大部分模型加载节点都会在指定目录里找文件,放到别的地方就会报“模型文件不存在”,其实可能只是路径放错了。

4.2 主模型到底怎么选、怎么放

整个文生图环节里,checkpoints是最核心的模型。下载的时候注意后缀是.safetensors,尽量不要用.ckpt格式,前者加载更快,也没有历史包袱。

如果是SDXL模型,通常下载到的就是一个完整checkpoint,里面已经内置VAE,算是懒人首选。如果是SD 1.5模型,很多分享包里的模型不一定自带了正确VAE,那就需要额外找一个通用VAE文件,比如常见的vae-ft-mse-840000,放到models/vae目录里。

放完模型之后,重启一下ComfyUI,或者点界面左上角的刷新按钮。节点里面选择模型的地方就能看到你放进去的文件了。模型文件名建议改成纯英文,中文文件名在部分环境下会出现编码错误,出图时白屏或者报错都遇到过。

4.3 CLIP和文本编码器别胡乱删

最近新出的底模开始把CLIP拆得越来越细。比如FLUX除了UNet模型,还需要单独的clip_l和t5xxl文本编码器。下载这类模型时,别人标注了要放在哪个文件夹,就老老实实放到对应的clip或text_encoders目录里,别全部塞进checkpoints里图省事。

我自己踩过一个坑:某次图生图老跑出灰蒙蒙的图,检查了很久发现是VAE选错,换回正确的VAE之后立刻恢复正常。如果你的输出颜色发灰、发白或者细节突然变差,先检查VAE,再检查CLIP,最后才怀疑模型本身。顺序别搞反,否则浪费时间在模型上反复下载。

4.4 关于“模型下载不到”的补充

新朋友最容易卡在“模型去哪下载”上。常规渠道包括Hugging Face、CivitAI以及国内一些模型站。下载时优先看别人标的文件类型:是checkpoint还是LoRA,是完整版还是拆分版。很多“模型下载不了”的问题,其实是因为下载到的文件本身就是损坏的,或者文件名后缀不对导致ComfyUI识别不了。

网络不好的情况下,可以用huggingface-cli的断点续传功能,或者直接用浏览器插件下载,只要能确保文件完整性就行。下载完先看一眼文件大小是不是和页面上标的一致,差太多就说明文件缺了,这种模型加载后要么报错要么出黑图。

5. 文生图工作流:从零拼出第一张图

5.1 认识最基本的节点链

ComfyUI默认新工作流可能是空白的,也可能带有一个基础示例。文生图最保守的一套核心节点如下:

  1. Load Checkpoint:选择主模型
  2. CLIP Text Encode(Prompt):写正向提示词
  3. CLIP Text Encode(Negative):写反向提示词
  4. Empty Latent Image:设定输出图的宽高
  5. KSampler:采样器节点,负责去噪生成
  6. VAE Decode:把潜空间张量解码成像素图
  7. Save Image:保存到output目录

连接关系可以这样理解:模型节点把MODEL、CLIP、VAE三条输出分别接给采样器、文本编码器、VAE解码器;文本编码器的正反两个conditioning输出接给采样器的两个输入;采样器输出的LATENT接给VAE解码的samples;解码后的图像接给保存节点。

理清这个思路之后,后面再加ControlNet、LoRA、修脸、放大这类节点时就不会乱了。ComfyUI的节点本质上就是把Stable Diffusion的推理流程图形化,流程搞懂,插件再多都是在这条链上插花。

5.2 采样参数到底应该怎么调

很多人拿到工作流直接照抄参数,结果出图不满意又不知道改哪里。其实理解参数含义之后,判断起来就快了。

  • steps:采样步数。SD 1.5常见20到30步,SDXL 20步左右就够,FLUX则要看具体工作流设置。步数太多不等于更精致,反而可能引入奇怪纹理或者拖慢速度。
  • cfg:提示词相关度。SD 1.5常用7,SDXL常用7到10。cfg太高画面容易过饱和、发硬,太低则内容容易离散、糊成一团。
  • sampler_name:采样器决定去噪算法。euler、dpmpp_2m都是我常用的;追求细腻画质可以试dpmpp_2m_sde,代价是速度更慢。
  • scheduler:调度器。karras在多数模型上表现很稳,normal则和Stable Diffusion默认行为更贴近。
  • seed:随机种子。固定种子后,同样参数下重复出图结果一致;想探索构图就随机,想复现别人效果就固定。

一句经验:画质发灰先调cfg和VAE,构图不清晰先加步数,色彩脏乱先检查CLIP和反向提示词。复现别人工作流时,先固定别人的seed,再逐步调整自己的参数,这样排查起来最快。

5.3 实操生成与保存

实操流程很简单:选好模型,写好提示词,设置好尺寸和参数,点击右侧的Queue按钮。底部会出现任务进度,完成之后,Save Image节点会在output目录下生成一张PNG图片。

第一次跑图建议用偏小的尺寸,比如512x512或者768x768,先把流程跑通,再往高分辨率冲。如果加载模型时看到底部日志里出现“Model loaded”字样,说明模型读取正常;如果卡在“Loading model”很久,要么模型文件太大,要么显卡没被正确识别。

还有一个很容易被忽略的点:批量生成时,Empty Latent Image节点的batch_size参数可以一次生成多张。很多人做多图对比时喜欢反复点Queue,其实直接调大batch_size效率更高,而且一次生成时显存复用会更充分。

5.4 常用加速和人体经验

当前版本的ComfyUI已经默认启用不少优化,但如果你的显卡支持,还可以考虑装xformers或者triton来进一步提速。装xformers的命令通常是:

pip install xformers

装完之后启动时可以用--xformers参数开启。注意部分显卡驱动和PyTorch版本组合下,xformers会报不兼容,遇到这种情况直接卸载就行,不装也不影响正常使用。

另外两个我个人强烈推荐的小习惯:

每次改大参数之前,先用小尺寸快速跑一张验证效果,再应用到正式尺寸,节省时间; 出图不满意时优先改动提示词而不是硬调步数和cfg,因为后者容易把画面带到奇怪方向。

6. 常见问题排查与提速技巧

6.1 六个高频报错速查表

现象可能原因解决方向
生成时报CUDA out of memory显存不足降低分辨率、开启低显存模式
提示xxx model not found模型没放到对应目录检查models下各子目录
跑一张图CPU占用很高torch装成了CPU版重装GPU版PyTorch
浏览器打不开界面端口8188被占用用--port参数换端口
出图发灰发白VAE错误或缺失换正确VAE
加载特别慢显卡没被识别检查nvidia-smi和torch版本

6.2 端口冲突和访问问题

8188端口被占用时,要么找到占用进程并结束它,要么启动时换一个端口:

python main.py --port 8888

局域网访问时,--listen 0.0.0.0加上防火墙放行对应端口即可。这里提醒一句:不要把绑定公网IP和本地监听混为一谈,本地网络不要随意暴露到公网,不然别人能直接控制你的出图服务,安全上很危险。

另外,如果你在Linux服务器上跑,记得用screen或nohup挂后台,不然ssh断开之后ComfyUI就跟着停了。常见的启动方式是:

nohup python main.py --listen 0.0.0.0 --port 8188 > comfy.log 2>&1 &

然后通过日志文件排查运行情况。

6.3 自定义节点和插件管理

ComfyUI生态最强大的地方就是custom_nodes。最简单的插件安装方式是把插件仓库克隆到这个目录:

cd custom_nodes git clone https://github.com/某个插件仓库.git cd .. python main.py

重启后插件会出现在界面上。插件装多了之后启动会变慢,如果某个插件让你启动直接报错,删除对应插件目录就能回到干净环境。我平时用ComfyUI-Manager做插件管理,但不要贪多装一堆用不上的。每次新装插件之后,先跑一次最简单的文生图,确认没破坏环境再加下一个。

6.4 提速的底层思路

出图速度取决于采样步数、图像分辨率、模型大小和显存带宽。除了调低分辨率之外,还有一个容易被忽略的点:尽量使用FP16精度。如果显卡支持,可以在启动时加--force-fp16。显卡性能较强的可以尝试官方推荐的高性能参数组合,但前提是先确认自己的驱动和PyTorch版本支持FP16相关特性。

还有一个很反直觉的经验:显存不大时,不要开太多后台应用。浏览器多开几十个标签、后台有视频在放,都会占用显存。我自己的机器8G显存,跑SDXL时经常开着好几个网页和通讯软件,结果总卡在OOM上;后来把浏览器关掉,同样的参数就能跑得稳稳当当。

6.5 出图结果不满意怎么调

如果模型和参数都没问题,但图就是不好看,优先级是这样的:

  1. 换提示词表达方式,写得更具体,比如加上镜头、光线、材质描述;
  2. 换采样器和调度器组合,不同模型对sampler的适配程度不同;
  3. 换主模型,SD 1.5和SDXL模型画风差异巨大;
  4. 考虑加LoRA微调风格,比如人像、插画类LoRA;
  5. 最后才考虑加ControlNet做结构化控制。

很多人一上来就推ControlNet,其实新手阶段最好只做提示词和模型切换,等基础节点手感稳定之后再上ControlNet,不然问题会被叠加得越来越复杂。

我这个月实际重装的一遍流程

顺便记录一下我这个月在一台新机器上重装的全过程,供参考。机器是Windows 11,显卡为RTX 4070 12G显存。我的顺序是先装Python 3.11.9,然后装Git,接着建目录和虚拟环境,激活后先装GPU版PyTorch,验证torch.cuda.is_available()为True,再克隆ComfyUI源码,进入目录执行pip install -r requirements.txt,最后python main.py --cuda-malloc启动。

整个流程大概二十分钟,其中下载模型另算时间。过程中唯一一次报错是我手误在系统全局环境里装了PyTorch,没激活虚拟环境就跑requirements,导致ComfyUI启动时找不到torch。后来激活venv重新安装,问题立刻消失。所以再次强调:每次打开新终端,先确认(venv)是不是出现了。

如果你跟我一样同时玩WebUI和ComfyUI,建议两者用完全独立的虚拟环境和模型目录,或者通过软链共享模型文件,但环境一定要隔离。两套工具混装的后果就是各种版本冲突,排查起来真的很头大。

我个人在实际操作中的体会是,ComfyUI最吸引人的地方不是所谓“高级”,而是把每一步生成流程都透明化了。你看到的是因果链路,而不再是黑盒按钮。哪怕你最后还是会回到WebUI去批量出图,也值得花一个晚上把ComfyUI本地方案跑通一次。同样的提示词,在ComfyUI里稍微调一调连接方式,能玩出的花样比想象中多太多了。这篇部署和文生图教程,希望帮你把第一晚熬得顺利一点。

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

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

立即咨询