1. 项目概述与方案选型
1.1 核心需求解析
这几年AI出图工具一个接一个冒出来,在线网站确实方便,但用久了谁都逃不过那几个痛点:排队等半天、免费额度用光、生成内容受平台审核限制、想微调模型又没权限。更不用说一旦断网,手里一个能用的工具都没有。我大概在两年前开始折腾本地AI出图环境,从最早的SD WebUI一路换到ComfyUI,期间踩了无数坑,也积累了不少真正能落地的经验。
所谓“本地搭建AI出图环境”,本质上就是把AI绘画所需的模型、运行框架和依赖库全部装到自己电脑上,由本地显卡完成计算和推理,不依赖任何在线服务。装上之后,你就能获得一个完全自主可控的出图工具:不限次数、不限分辨率、离线可跑、模型随便换,最关键的是所有数据都留在本地,不存在隐私泄露的问题。
这篇文章适合这几类人:正在用在线AI绘图工具但觉得不够自由的用户、想把显卡利用起来但又不知道从何下手的新手、已经在用WebUI想出图效率更高准备迁移到ComfyUI的老手。我尽量把每个环节都讲透,包括为什么这么做、哪些地方容易踩坑,只要你有一台配置还过得去的NVIDIA显卡电脑,跟着操作下来就能跑通第一张AI图。
1.2 方案对比:本地部署与在线工具
先说结论:不想折腾的人用在线工具完全没问题,但如果你有高频出图、模型定制、批量生成、隐私保护之类的需求,本地部署是绕不开的选项。
在线工具的最大优势是零门槛:打开网页、输入提示词、点生成,三步完事。但劣势同样明显——生成一张图常常要等好几分钟,高峰期更是排队一小时出图十秒钟;免费额度用完就只能充值;对画面内容的审核限制也经常会误伤正常创作;更别说很多网站根本不提供模型微调、ControlNet局部重绘这类进阶玩法。
本地部署看上去要多花些时间,但装上之后是真省心。以我实测过的数据来说,一张512x512的基础图在8GB显存的显卡上大约10到20秒出图,1024x1024的高清图也就一分钟上下,而且同时开两三个进程跑批量任务也不心疼。更重要的是,本地环境让你能接触到AI绘画的全部技术细节:模型是哪个版本的、采样器用什么算法、CFG对画面影响有多大,这些参数你都能亲手调、亲眼看到变化。对想真正学习AI绘画原理的人来说,这一步绕不过去。
1.3 工具选型:ComfyUI还是WebUI
确定走本地路线后,第一个要做的选择是:用ComfyUI还是Stable Diffusion WebUI(简称WebUI)。
WebUI是老牌方案,Graphical界面做得非常友好,新手开箱即用。所有参数都摆在你面前,点几下就能出图,教程也最多,遇到问题随便一搜就能找到解决方案。我最初就是用WebUI起步的,第一周就出了上百张图,上手体验确实没得说。
ComfyUI则是另一种思路,它是节点式工作流设计,整个出图过程从加载模型、编写提示词、设置采样参数到保存图片,全部由一个个节点连接而成。第一次打开的人大概率会被满屏的线和节点吓到,但用熟练之后你会明显感觉到它有多强大:显存占用更低(实测同参数下比WebUI省20%左右)、工作流可以高度复用、节点化调度让复杂任务(比如多人重绘、多阶段生成)变得轻而易举。
如果非要给个建议:纯新手先装ComfyUI反而更合适——因为它的节点结构天然地把AI绘画的流程可视化了,每一张图由什么生成、中间经历了哪些步骤,一眼就能看懂。理解原理之后再回头看WebUI,很多东西就通了。
2. 搭建前的硬件检测与基础准备
2.1 显卡是决定成败的第一要素
本地AI出图对电脑的要求说高也高、说低也低,但有一项是硬指标——显卡。AI绘图的底层计算是大量的矩阵运算,最适合用GPU并行处理,显卡的算力和显存直接决定了你能跑多大的模型、多高的分辨率。
NVIDIA显卡是目前最省心的选择,因为AI绘画框架普遍基于CUDA(英伟达的并行计算平台)开发,驱动装上以后基本零障碍。AMD显卡理论上也能跑,但需要额外的转换层,性能和稳定性都打折扣,我不太推荐新手用A卡入坑。
显存大小是比显卡型号更关键的参数。我用一张表直观说明:
| 显存容量 | 体验情况 | 适合做什么 |
|---|---|---|
| 4GB | 很吃力,仅能跑小模型低分辨率 | 勉强测试,不建议认真用 |
| 6GB | 入门可用,能跑SD1.5基础模型 | 512x512图像,简单调参学习 |
| 8GB | 比较舒适的主流水平 | 1024x1024左右图像,LoRA微调 |
| 12GB+ | 非常流畅 | 高分辨率、多模型切换、大Batch |
| 24GB+ | 几乎无瓶颈 | 模型训练/微调 |
内存建议16GB起步,32GB更宽裕——加载模型时要先把权重数据读入内存再传给显存,内存太小会导致频繁的磁盘交换,出图速度直接拉胯。硬盘方面,模型文件动辄好几个GB,留出至少50GB的空间再开工。
2.2 Python环境与虚拟环境创建
ComfyUI是基于Python开发的,所以第一步是确认电脑上有没有Python。
有些教程说“下载解压整合包,双击启动就行”不用管Python,确实有这类整合包,但我还是建议你理解环境搭建的原理,后面自己装插件、调依赖的时候才能不抓瞎。
我推荐用Miniconda来管理Python环境,因为它能创建相互独立的虚拟环境,不同项目用不同的Python版本和包依赖,互不干扰。当初我第一次折腾时直接往系统Python里装包,结果把环境搞乱了,好几个项目都跑不起来,后来才老老实实学虚拟环境。
# 安装Miniconda后,创建AI出图的专用环境 conda create -n aigc python=3.10 conda activate aigc注意Python版本选3.10或3.11就好,太新的版本有些依赖库还没跟上,容易装到一半报错。
2.3 安装ComfyUI本体:Git方式与整合包
ComfyUI的安装渠道主要有两种:Git克隆官方仓库,或者下载网友做好的整合包。
Git方式最干净,所有代码和依赖都在你的掌控之中,更新也方便,一条git pull就能升级到最新版。但前提是你得装好Git,并且愿意处理依赖安装过程中可能出现的各种报错。
# 克隆官方仓库 git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI # 安装依赖 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 pip install -r requirements.txt这里有个容易踩坑的地方:PyTorch默认安装的是CPU版本,如果不指定--index-url从CUDA的源安装,装完以后虽然能运行,但出图慢到怀疑人生。上面代码里的cu121表示CUDA 12.1版本,你可以先运行nvidia-smi查看自己驱动支持的CUDA版本,然后去PyTorch官网找到对应的安装命令。
整合包则适合不想折腾的人。有热心网友把Python、依赖、ComfyUI本体甚至常用模型都打包好了,解压即用,启动脚本一键运行。它的好处是省事,坏处是你不知道环境里到底装了什么东西,出了问题很难排查,插件兼容性也可能有隐患。我的建议是:先图省事用整合包跑通一遍流程,之后想认真玩再换Git方式也不迟。
3. 模型体系认知与关键文件准备
3.1 模型的基本分类与作用
环境装好只是完成了地基,真正让AI出图“有脑子”的是模型文件。很多新手上来就问“模型在哪下载”,但连模型分几种都不知道,结果把文件下了一堆,放到错误的位置,出图一片乱七八糟。
先理解AI出图的基本原理:你输入的提示词会先被编码成机器能理解的特征向量,然后在一个充满噪声的图(可以理解成一张全是雪花点的电视画面)上不断去噪,逐渐还原出与提示词匹配的画面。整个过程中,最关键的是下面几类文件:
Checkpoint大模型是核心权重文件,通常2GB到7GB不等,GPU推理时主要计算的就是它。目前开源生态里最主流的还是SD系列模型和它的社区微调版本,它们各自擅长不同风格的画面,有偏写实的、有偏二次元的,还有专门做了优化能够稳定生成特定题材的模型。
LoRA模型是小体量的风格或角色插件,一般几十MB到几百MB,作用是在不改变大模型主体的前提下,施加一个特定的“风格偏移”。想生成某个特定画师风格、某个角色形象,在正向提示词里加上LoRA触发词就能实现。
VAE负责图像解码,把潜在空间里的特征还原成最终的像素图。现在主流的大模型很多已经内置了VAE,不需要单独配置,但老版本模型可能会生成发灰发白的图片,这时候手动指定一个修好的VAE文件就能解决。
ControlNet是可选的“神级辅助模块”,它能让生成结果严格遵循你给定的线条图、深度图、姿态骨架等参考信息。想保持人物姿势、想控制画面构图,靠描述可不行,必须上ControlNet。
3.2 模型下载渠道与目录结构
模型下载是个非常关键的环节。主流的模型社区有Civitai等,中文社区也有不少爱好者维护的模型库。下载的时候要看清模型页面的说明,确定它是Base模型还是LoRA,适用的底模是哪一类型,免得下错。
不管从哪下载,目录结构是有严格要求。ComfyUI的models文件夹下分了很多子目录:checkpoints放主模型,loras放LoRA模型,vae放VAE文件,controlnet放ControlNet模型。放错位置系统就认不出来,这在初期是最高频的错误。
以我本地的目录结构为例给你参考:
ComfyUI/ ├── models/ │ ├── checkpoints/ # 大模型,如 majicmixRealistic.safetensors │ ├── loras/ # LoRA风格/角色模型 │ ├── vae/ # VAE文件,一般无需放 │ ├── controlnet/ # ControlNet模型 │ └── upscale_models/ # 放大模型 ├── custom_nodes/ # 扩展插件目录 ├── input/ # 输入图片存放处 └── output/ # 生成结果输出目录还要提醒一点:模型文件名尽量改成易识别的名字,比如majicmixRealistic_v7.safetensors,别用一串乱码式的哈希值文件名。因为后面工作流里保存的就是这个文件名,命名清晰了,回头整理和排查问题都方便。
3.3 工作流文件的加载与保存
ComfyUI的一大特色是工作流可视化。别人分享的生成参数和节点连接方式,通常以图片形式发布——对,就是一张看起来普普通通的PNG图片,但里面嵌着完整的节点信息和参数。你把这张图直接拖进ComfyUI界面,系统就会自动重建出整套工作流。
这个特性极大降低了学习成本。我在初学阶段的做法是:看到网上有人分享不错的图,先拖进ComfyUI看关键参数和节点排列,再对照实际生成效果反推每个节点的作用。比看一百篇文档都管用。
自己调好的工作流也要记得保存。点击界面上的Save按钮会存成一个JSON文件,以后想复用直接拖进来就行。工作流这种“一次搭建、反复使用”的特性,也是我最终彻底转向ComfyUI的原因。
4. 实操全流程:跑通本地AI出图
4.1 启动ComfyUI服务
环境、模型都就位后,就可以启动服务了。如果你用的是Git方式安装的ComfyUI,在命令行里进入ComfyUI目录,激活虚拟环境,然后运行:
conda activate aigc python main.py启动过程中你会看到它加载各种依赖库,然后显示类似这样一行:
To see the GUI go to: http://127.0.0.1:8188用浏览器打开这个地址,就能看到ComfyUI的主界面了。默认端口是8188,如果被占用可以在启动命令里加--port 8189换个端口。
如果显卡比较老,或者显存只有4GB、6GB,建议用这个启动参数:
python main.py --lowvram--lowvram模式会把部分计算临时转移到内存,虽然慢一点但能大幅降低显存溢出概率。另外注意,如果你用的是整合包,直接运行脚本启动即可,效果一样。
4.2 认识默认工作流:文生图的完整链路
ComfyUI打开后默认加载的是一个“文生图”的基础工作流,别看它只有几个节点,这已经涵盖了完整的出图链路。第一次接触的人建议先别急着改任何参数,先用默认配置跑一张图,感受一下整个流程。
默认工作流的核心节点包括:
Load Checkpoint(加载检查点):这是最左侧的节点,负责把大模型载入显存。点击choose checkpoint to load下拉框能切换模型,选好后模型会同时输出三个口:MODEL(用于采样)、CLIP(用于文本编码)、VAE(用于图像解码)。
CLIP Text Encode(文本编码):有正向和负向两个节点,分别对应你输入想要的提示词和不想要的提示词。它的作用是把文字转换成特征向量,供后续采样器理解你的意图。
KSampler(采样器):这是整个工作流的核心。它会根据文本特征在噪声图上进行多步去噪,一步步把模糊的噪声画面塑造成清晰图像。节点里有seed(随机种子)、steps(采样步数)、cfg(提示词引导强度)、sampler_name(采样算法)、scheduler(调度算法)等一排参数,后面逐个讲。
VAE Decode(图像解码):把采样完成后还在“潜空间”的特征数据解码成我们能看到的RGB图像。
Save Image(保存图像):把解码后的图像保存到output目录,你会看到控制台还有图片预览,能直接看结果。
理解这条链路太重要了。AI出图不是一个黑盒魔法,而是一条明确的数据流:模型理解语言、采样器逐步去噪、解码器还原画面。后期你添加任何高级节点,本质上都是在改造这个流程的某一环。
4.3 第一次写提示词与调节参数
默认工作流里,正向CLIP Text Encode节点里写着text占位符,把鼠标点上去改文字就行。英文提示词是目前的主流习惯,因为大量模型用英文语料训练,生成效果更稳定。但ComfyUI也支持中文,你可以先试中文,再对照英文效果,感受模型对两种语言的理解差异。
我来演示一个实际案例,以生成一张猫的图片为例,在正向提示词里填:
a cute cat sitting on the windowsill, soft morning light, detailed fur, high quality负向提示词填一些常见的不想要元素:
blurry, low quality, distorted, extra fingers, watermark点击“Queue Prompt”按钮(或者按Ctrl+Enter),观察右下角的进度条,一般十几秒后就能看到结果了。
接下来看几个最影响出图效果的参数,这些也是新手最常问的:
Steps(采样步数):数值越大,去噪过程越精细,画面细节越多,但用时也线性增加。SD基础的模型大约在20到30步之间就能达到不错效果,再往上加收益不明显,我日常固定28步。
CFG(引导强度):控制生成画面与提示词的贴合程度。默认7.0是个甜点值,越大画面越死板、容易过曝,越小就越散漫、可能跑题。新手建议锁定7到8,不要乱动。
Seed(随机种子):这是复现神器。每次生成用的随机种子不同,出来的图也不同。如果调出一张接近满意的图,把它的seed值固定下来,再去微调提示词或参数,就可以在“不让画面结构乱跳”的前提下逐步优化。
Sampler(采样器):不同采样器在速度和画质上的侧重不同。我常用的是DPM++ 2M Karras,速度快画质好,适合日常使用。Euler a则偏向艺术感和稳定性。初期建议不要纠结,记住一个固定的先用起来,出图效果不满意再换。
综合起来,一个比较稳妥的新手首发配置是:CFG为7,Steps为28,采样器选DPM++ 2M Karras,分辨率按显卡显存来,8GB显卡用1024x1024以下都没问题。
5. 进阶玩法:从基础出图到可控创作
5.1 图生图:在参考图基础上创作
文生图跑通之后,下一步自然是图生图。图生图的意思是,给你一张参考图片,AI在它的基础上生成新的变体,保留构图和主要内容,但有风格或细节上的变化。这在创作中非常实用,比如你拍了一张自己的照片,想换成动漫风格、油画风格,就能用它实现。
ComfyUI中实现图生图的核心思路在于:把参考图当成初始噪声图,而不是从纯噪声开始去噪。具体操作是用Load Image节点加载图片,经过VAE Encode把它编码成潜空间的图像特征,再把它接入KSampler的latent_image输入口——这正是采样器开始去噪的起点。
这样做的好处非常直观:起点不再是纯噪声,所以生成结果在整体布局和内容上会贴近参考图。你只需要再调节一个denoise参数。这个值控制“重绘幅度”,它必须在0到1之间。设成0.3左右时,AI基本保留原图构图,只改细节;设成0.7以上时,AI会大幅重绘,可能离原图已经很远了。初期建议从0.5开始,多试几次压感。
5.2 LoRA模型的接入与触发词
想给生成的图加特定风格,比如某个画师风格、某个角色的特征,就要用到LoRA了。ComfyUI默认工作流里没有LoRA节点,需要右键菜单选“Add Node”搜索Load LoRA找到并添加进来,然后用连线把它的输入输出口接进链路:模型权重和CLIP特征都要经过LoRA节点后再送入采样器。
这样接入的逻辑是:LoRA本质上就是一个“增量调整器”,在大模型的基础上施加一个特定的权重偏移,从而把生成结果推向某个方向。它的strength参数控制这个方向的力度,0表示完全不用,1表示全量使用。我实际测试中,0.6到0.9是多数LoRA模型的推荐区间——调得太高容易产生过拟合,画面出现明显畸变或重复纹理。
每条LoRA模型都有配套的触发词,下载页面一般都会写清楚。例如某些角色LoRA需要你在提示词里加上特定的角色名,否则即使挂载了LoRA,它的效果也发挥不出来。这步容易被忽略,但漏掉的后果就是LoRA看起来“一点用都没有” 。
5.3 ControlNet:把构图主动权拿回手里
ControlNet是ComfyUI里我最推荐的进阶组件,没有之一。它能让你把参考图中的空间信息——边缘、骨骼、深度——提取出来,再用这些信息去严格指导生成过程。举个例子:你想让生成的人物保持某个特定姿态,靠提示词写得再细也没用,但把人体的骨骼姿态图丢给ControlNet,AI就会不折不扣地按这个姿态生成,这在人物创作中简直是指哪打哪。
ComfyUI装ControlNet的方法是在custom_nodes目录下安装对应插件,然后到models/controlnet放进相应的模型文件。实际使用时要加入Load ControlNet Model节点和Apply ControlNet节点,把输入图片通过Load Image加载后给ControlNet模型处理,再把处理过的条件注入到KSampler的模型路径中。
需要注意ControlNet的控制强度同样有一个strength参数,值越大对构图束缚越紧。设成1.0时几乎笔笔都按参考走,但有时画面会僵硬;比较理想的做法是设0.7到0.9,既保住了构图,又保留了AI的想象力空间。
6. 常见报错与性能优化排查实录
6.1 “Out of Memory”显存爆掉怎么办
这是新手遇到最多的问题,没有之一。报错通常长这样:
torch.OutOfMemoryError: CUDA out of memory.它是什么意思?就是显卡显存被吃光了,系统没法继续分配空间,只能强制终止。触发原因主要有三个:大模型本身就占用好几个GB;分辨率太大或者batch_size设置太高;后台同时跑着别的显存占用程序。
排查思路从最直接的开始:第一步降低分辨率,比如1024x1024改成768x768;第二步检查batch_size是不是设大了,改回1;第三步关掉其他占用显存的软件,比如浏览器里的视频播放、各种带硬件加速的应用;第四步给QSampler节点换更省显存的VAE解码方式;最后一步不得已就启动时加上--lowvram参数。
从原理上讲,显存溢出多数不是你没条件跑,而是单次任务的显存峰值超过了可用量。只要把峰值降下来,任务就能继续。所以调整分辨率、降低batch_size、减小图像批处理数,都是立竿见影的手段。
6.2 生成速度慢,怎么榨干显卡性能
很多人在本地出图的第一反应是:怎么比在线网站还慢?这通常跟软件配置和硬件加速有关,而不一定是显卡不行的锅。
先检查你安装的PyTorch是不是带CUDA的GPU版本。这个我前面强调过,如果当时偷懒没加--index-url,系统装的是CPU版本,出图速度就是灾难级别。确认方法是看命令行启动日志,里面有类似CUDA available: True这样的字段。
显存小的话,可以确保模型正确加载为半精度(fp16),显存占用直接减半,采样速度也相应提升。ComfyUI默认在部分显卡上会自动启用半精度,某些模型上还要自己在Load Checkpoint节点里设置dtype为fp16。
另一个常见优化是启用xformers加速库。在启动命令后面加--xformers参数即可,它能优化Transformer结构里的注意力计算,在许多显卡上有显著加速效果,通常提升20%左右。
最后,采样步数和采样器也会直观影响耗时。用少两步的采样器不如直接用低步数,DPM++ 2M Karras这种两阶推进的采样器20步的效果有时比某些单步采样的40步还要好。步数够用就行,盲目堆高带来的画质收益很低。
6.3 常见问题排查速查表
| 报错/现象 | 可能原因 | 解决办法 |
|---|---|---|
| CUDA unavailable / no NVIDIA driver | 显卡驱动未装或CUDA版本不匹配 | 更新NVIDIA驱动,用nvidia-smi查看支持的CUDA版本 |
| OOM 显存不足 | 模型太大、分辨率过高、后台占显存 | 降低分辨率、改小batch、加--lowvram启动参数 |
| 生成图片全黑/全噪点 | 模型路径或模型选择错误、VAE有问题 | 检查Checkpoint节点选的模型是否损坏,尝试切换模型 |
| 生成图发灰发白 | VAE未生效或模型内置VAE不佳 | 在模型目录放入修好的VAE并手动指定 |
| 中文提示词无效 | 模型训练语料以英文为主 | 尽量用英文提示词,或同时搭配英文关键词 |
| ControlNet节点报错 | 插件版本和ComfyUI不兼容 | 更新custom_nodes下的插件到最新版 |
| LoRA模型加载后无效 | 未添加触发词或模型不适配底模 | 查看LoRA页面说明,写对触发词,换相近底模 |
这段内容建议截图收藏,等你跑了一段时间后回过头来再看,会发现自己已经在不知不觉中遇到过并解决了其中不少问题。
7. 本地出图环境的成本效益分析
7.1 时间成本与学习曲线
有朋友问过我:折腾这么久,值得吗?我觉得这个问题不能一概而论。前期搭建环境、下载模型、调试工作流,确实花了我整整两个周末的时间,中途一度想摔键盘。但过了那个坎之后,价值就完全体现出来了。
效率方面,我用在线工具的时候,每天大概产出三五十张图,其中一半时间在等队列。本地环境搭好之后,同样的工作量一小时不到就跑完了,而且可以开着ComfyUI挂着跑一整个晚上,第二天醒来直接收图。
隐私方面是另一个隐性收益。做原创内容的都知道,有些素材在发给在线平台前总有顾虑。本地出图的所有操作完全离线,底稿和生成结果都不出自己电脑。对一些有保密需求的商业项目来说,这个优势是决定性的。
7.2 硬件投入与使用建议
你可能关心的是硬件投入。如果你手头已经有一块8GB显存以上的NVIDIA显卡,那零成本就能开始,不需要再添任何设备。如果显卡性能不够,我建议先别急着买,用现有设备跑一跑入门工作流,等确定了自己对AI出图是真爱之后,再考虑升级显卡,那时候你买到的东西会更有针对性。
一个小建议:显卡品牌和型号尽量选择显存大、兼容性好的主流型号。AI领域变化快,显存容量决定了你未来能尝试多大规模的实验。预算允许的情况下,12GB到16GB显存目前是一个比较均衡的选择。
8. 聊聊我踩过的几个坑
最后分享几个实际踩坑的经历,希望能给你的搭建过程减掉一些弯路。
第一次入坑时,我图省事变装了网上某款一键整合包,结果里面的Python依赖是阉割版,装一半就卡住。折腾了半天还是推倒用Git方式重新装,反而更快。现在我的态度是:环境搭的东西,越透明越好。
下载模型也有过翻车经历。有一回下了个6GB的大模型,放进目录后一直加载不出来,排查半天发现是文件名带了中文和空格,ComfyUI处理路径出了兼容问题。改掉文件名后瞬间正常。遇事不决,先检查路径和文件名,这个习惯能帮你省很多时间。
还有一次大半夜排查“生成图特别糊、噪点很多”的问题,一直找不到原因。后来发现是显卡驱动在当天自动更新了,把图形相关的加速状态改了,导致ComfyUI的计算异常。重启电脑和框架之后恢复正常。这个情况虽然不是高频,但遇到莫名其妙、聚巴找不到原因的异常,优先考虑驱动环境变化。
我的体会是,本地搭建AI出图环境最考验人的不是技术难度,而是耐心。每个问题都有对应解法,关键在于保持“拆问题”的思路:先定位是环境问题、模型问题还是参数问题,再一步步缩小范围。你在这个排查过程中积累的经验,恰恰是那些只停留在在线工具的人永远接触不到的核心能力。