外观
首页背景
视频
图片
🎨 配色方案
只记在你这台设备上,不影响别人看到的颜色。深浅仍按右上角的月亮钮切换。
← 全部资料 2026-10-02
  • 大模型
  • 调参
  • 实测
  • 图片
  • 视频
全文 5685 字 · 约 14 分钟

ComfyUI节点使用教程

ComfyUI节点使用教程,由ai编写,可以偶尔解决一下困难

1. 基础概念

理解这四样东西,ComfyUI 就没有神秘感了:

概念含义你的环境里对应什么
MODEL扩散模型的 UNet/DiT 主体,负责”去噪”z_image_turbo_bf16、qwen_image_2.1_*
CLIP文本编码器,把提示词变成向量qwen3vl_8b_*、qwen_3_4b
VAE潜空间 ↔ 像素空间的编解码器ae.safetensors、qwen_image_2.1_vae_bf16
LATENT压缩后的”潜空间图像”,尺寸约为像素的 1/8采样器之间传递的就是它

生成流程的本质:空潜空间 → 采样器反复去噪 → VAE 解码成像素图

一个常见误解:节点不是按位置执行的,而是按连线依赖执行的。你把它摆在画布任何角落都不影响结果。

为什么现在不用 CheckpointLoader

老式单文件模型(.ckpt / .safetensors 里同时打包 UNet+CLIP+VAE)用 Load Checkpoint 一次加载。

但你现在用的 Z-Image 和 Qwen-Image 都是分离式的——模型被拆成三个文件分发:

UNETLoader   → 加载 diffusion model   → 输出 MODEL
CLIPLoader   → 加载 text encoder      → 输出 CLIP
VAELoader    → 加载 VAE                → 输出 VAE

所以你的工作流里看到三个独立加载器,这是正常且必须的。


2. 数据流与节点图规则

接口类型必须匹配

每个节点的输入输出都带类型标签。只有同类型才能连线:

MODEL → MODEL ✅
IMAGE → MASK  ❌ 连不上(需要 ImageToMask 转换)

你的环境里出现过的类型:MODEL CLIP VAE CONDITIONING LATENT IMAGE MASK CONTROL_NET。

节点颜色含义

外观含义
红框 + UNKNOWN节点所属插件未安装
红色输出点该输出的下游有错误
节点整体变红执行失败

常用操作

操作方法
添加节点空白处双击 / 右键 → Add Node
搜索节点双击画布,直接输入名字
绕过节点选中后按 Ctrl+B(保留连线但跳过执行)
删除节点选中按 Delete
整理连线拖动节点,连线自动跟随
查看节点文档右键节点 → Node Info

3. 模型加载节点

3.1 UNETLoader — 加载扩散模型

路径:model/loaders | 显示名:Load Diffusion Model

输入类型说明
unet_name下拉选择从 models/diffusion_models/ 与 models/unet/ 扫描
weight_dtype枚举default / fp8_e4m3fn / fp8_e4m3fn_fast / fp8_e5m2

输出:MODEL

你环境里可选的文件:

qwen_image_2.1_bf16.safetensors          13.25 GB
qwen_image_2.1_int8_convrot.safetensors   6.76 GB
z_image_turbo_bf16.safetensors           11.46 GB

weight_dtype 怎么选(这是 12 GB 显存的关键开关):

值用途
default按文件本身的精度加载。先试这个
fp8_e4m3fn把权重转成 FP8,显存直接减半,画质损失很小
fp8_e4m3fn_fast同上,但用更快的 FP8 矩阵乘(需要较新 GPU)
fp8_e5m2动态范围更大,精度略低

对你的建议:z_image_turbo_bf16 是 11.46 GB,而你只有 12 GB 显存。如果加载时报 OOM,把 weight_dtype 改成 fp8_e4m3fn,或改用 qwen_image_2.1_int8_convrot(6.76 GB)。


3.2 CLIPLoader — 加载文本编码器

路径:model/loaders | 显示名:Load CLIP

输入类型说明
clip_name下拉从 models/text_encoders/ 与 models/clip/ 扫描
type枚举(29 个选项)必须与模型架构匹配
device(可选)default / cpu编码器放 GPU 还是 CPU

输出:CLIP

type 是关键,选错必报错。 你环境里的 29 个可选值中,与本机模型相关的:

你的模型应选的 type
z_image_turbo_bf16用 stable_diffusion 或该模型文档指定值
qwen_image_2.1_*qwen_image
qwen3vl_8b_* / qwen_3_4b配合 Qwen-Image 时选 qwen_image

完整 29 项:stable_diffusion stable_cascade sd3 stable_audio mochi ltxv pixart cosmos lumina2 wan hidream chroma ace omnigen2 qwen_image hunyuan_image flux2 ovis longcat_image cogvideox lens pixeldit ideogram4 boogu krea2 joyimage mage minimax yue2

device = cpu 的用途:文本编码器很占显存(你的 qwen3vl_8b_bf16 就是 16.33 GB)。把它放 CPU 能腾出大量显存给扩散模型,代价是提示词编码变慢(只算一次,影响不大)。小显存跑大模型时非常有用。


3.3 VAELoader — 加载 VAE

路径:model/loaders | 显示名:Load VAE

输入类型
vae_name下拉选择

输出:VAE

你环境里的可选值:

ae.safetensors                     0.31 GB   ← 配套 Z-Image (Flux VAE)
qwen_image_2.1_vae_bf16.safetensors 0.63 GB  ← 配套 Qwen-Image 2.1
pixel_space                                  ← 特殊选项,跳过 VAE

⚠️ VAE 必须与模型配套。 用错 VAE 会出现色彩失真、灰蒙蒙、噪点。Z-Image 用 ae,Qwen-Image 用 qwen_image_2.1_vae_bf16。


3.4 CheckpointLoaderSimple — 加载整合包

路径:model/loaders | 显示名:Load Checkpoint

输入类型
ckpt_name下拉(从 models/checkpoints/ 扫描)

输出:MODEL、CLIP、VAE(三个一起给)

你环境里 checkpoints 目录为空,所以这个节点暂时用不上。仅在拿到 SD1.5/SDXL/Flux 单文件整合包时才用。


4. 提示词与条件节点

4.1 CLIPTextEncode — 文本编码

路径:model/conditioning | 显示名:CLIP Text Encode (Prompt)

输入类型
textSTRING(多行文本框)
clipCLIP

输出:CONDITIONING

标准用法:接两个,一个写正向提示词、一个写负向。

CLIPLoader ──┬── CLIPTextEncode(正向词) ──→ KSampler.positive
             └── CLIPTextEncode(负向词) ──→ KSampler.negative

注意:Qwen-Image / Z-Image 这类自然语言驱动的模型,提示词应该写成完整句子,而不是 SD1.5 时代的 tag, tag, tag 堆叠风格。


4.2 TextEncodeQwenImageEdit — Qwen 图像编辑专用编码

路径:model/conditioning(你的环境已加载)

这是 Qwen-Image 编辑模型专用的条件节点——文生图用 CLIPTextEncode,而”改图”(image-to-image / 局部重绘)要用它。

输出:CONDITIONING

你装了 6 个 Qwen-Image-Edit-2509-* 系列 LoRA,正是配合这个节点做定向编辑(换光、换背景、多角度等)。


4.3 TextEncodeZImageOmni — Z-Image 专用编码

路径:model/conditioning

Z-Image 的专用文本编码节点(Omni 表示支持多模态输入)。用 Z-Image 时应优先用它而非通用 CLIPTextEncode。


4.4 ConditioningCombine / ConditioningSetArea

节点作用
ConditioningCombine把两组 CONDITIONING 合并(例如两个提示词共同作用)
ConditioningSetArea限定提示词只作用于画面某个矩形区域

5. 采样节点(核心)

5.1 KSampler — 最常用的采样器

路径:model/sampling

输入类型默认值说明
modelMODEL—扩散模型
seedINT0随机种子;固定它可复现同一张图
stepsINT20采样步数
cfgFLOAT8.0提示词引导强度
sampler_name枚举(46 项)euler采样算法
scheduler枚举(9 项)normal噪声调度曲线
positiveCONDITIONING—正向条件
negativeCONDITIONING—负向条件
latent_imageLATENT—输入潜空间
denoiseFLOAT1.0去噪强度

输出:LATENT

核心三个参数怎么调

steps(步数)

场景建议值
普通模型20 ~ 30
Turbo / Lightning / 蒸馏模型4 ~ 8(多了反而变差)
追求极致质量40 ~ 50(收益递减明显)

你的 z_image_turbo、以及那个 6step-lora,都是少步数模型——步数设 20 是浪费且会劣化画质。

cfg(引导强度)

值效果
1.0几乎不引导 —— Turbo/LCM 类模型的正确值
4 ~ 7常用区间,兼顾遵循度与自然度
8 ~ 12严格遵守提示词,但过高会过曝、色彩失真
> 15基本不可用

denoise(去噪强度) —— 图生图/重绘的关键:

值效果
1.0完全重绘(纯文生图)
0.6 ~ 0.8保留大致构图,改变细节
0.3 ~ 0.5轻度修饰,大幅保留原图
< 0.3几乎不变

采样器选择(46 个选项中常用的)

采样器特点
euler通用、快,默认首选
euler_ancestral加随机性,画面更”活”,但不易复现
dpmpp_2m质量与速度平衡好,很流行
dpmpp_2m_sde细节更丰富,稍慢
dpmpp_2m_sde_gpu同上,GPU 优化版
dpmpp_3m_sde更高质量,更慢
lcmLCM 加速模型专用
ddim经典,兼容性最好
uni_pc少步数下表现不错
res_multistep新式多步求解器
heun / heunpp2二阶方法,步数可少但每步更慢

带 _cfg_pp 后缀的(如 euler_cfg_pp、dpmpp_2m_cfg_pp)是”CFG++“变体,可在低 CFG 下改善效果。

调度器选择(全部 9 个)

调度器特点
simple线性均匀,最通用
normal默认值,类似 simple
karras高质量,末端步长更密
sgm_uniformSD3/Flux 类模型常用
exponential指数衰减
betaBeta 分布调度
ddim_uniform配合 ddim 采样器
linear_quadratic二次曲线
kl_optimal新式优化调度

5.2 KSamplerAdvanced — 高级采样器

比 KSampler 多出 4 个控制项,用于分阶段采样:

额外输入说明
add_noiseenable/disable —— 是否添加初始噪声
noise_seed独立于 seed 的噪声种子
start_at_step从第几步开始
end_at_step到第几步结束
return_with_leftover_noise是否带着残余噪声返回

典型用途:两阶段高清修复

阶段1: KSamplerAdvanced(add_noise=enable,  end_at_step=15,
                        return_with_leftover_noise=enable)
          ↓ 潜空间放大
阶段2: KSamplerAdvanced(add_noise=disable, start_at_step=15, end_at_step=30)

这样能在放大后继续采样,而不重新注入噪声。


5.3 SamplerCustomAdvanced — 模块化采样

路径:model/sampling

把 KSampler 拆成 4 个独立节点组合,灵活度最高:

RandomNoise      → noise      ┐
BasicGuider/CFGGuider → guider ├→ SamplerCustomAdvanced → LATENT
KSamplerSelect   → sampler    │
BasicScheduler   → sigmas     ┘
子节点作用
RandomNoise生成噪声,输出 NOISE
BasicGuider无 CFG 引导(cfg=1 场景,Turbo 模型用)
CFGGuider带 CFG 的引导,需要 positive/negative
KSamplerSelect只选采样算法
BasicScheduler只选调度器 + steps + denoise

用 Turbo/蒸馏模型时:BasicGuider + KSamplerSelect 的组合比 KSampler 更省资源,因为它根本不计算负向 → 少跑一遍模型。


6. 潜空间与解码节点

6.1 EmptyLatentImage — 空潜空间

路径:model/latent

输入说明
width / height像素尺寸,节点内部自动除以 8
batch_size一次生成几张

输出:LATENT

尺寸规则:

  • 必须是 8 的倍数(否则自动取整,可能报错)
  • 常用:1024×1024、896×1152、1152×896、1216×832
  • 显存与面积成正比:1024² 的显存占用是 512² 的 4 倍

你的 12 GB 显存,Z-Image 11.46 GB 模型下,建议从 1024×1024 起步。如果要 2K 出图,走”生成 → 放大”两阶段,而不是直接给大尺寸。


6.2 EmptySD3LatentImage — SD3/Flux 用空潜空间

路径:model/latent

与 EmptyLatentImage 的区别:支持不同通道数的潜空间(SD3/Flux 是 16 通道,SD1.5/SDXL 是 4 通道)。

用 Flux、SD3、以及**你那个 ae.safetensors(Flux VAE)**相关模型时,优先用这个。


6.3 VAEDecode — 潜空间转图像

路径:model/latent

输入类型
samplesLATENT
vaeVAE

输出:IMAGE

它是工作流的终点前一站——采样器输出的是 LATENT,必须解码才能看。


6.4 VAEEncode — 图像转潜空间

输入类型
pixelsIMAGE
vaeVAE

输出:LATENT

用途:图生图(img2img)。把已有图片编码成潜空间,再送采样器加噪重绘。


7. 图像处理节点

7.1 LoadImage — 加载图片

路径:image

输入说明
image从 input 目录选择

输出:IMAGE、MASK(第二个输出是图片自带的 alpha 通道遮罩,做局部重绘时很有用)

你的 input 目录里已有的图片(25 张):

01.jpg
108060117_p0_master1200.jpg ~ 96743659_p0_master1200.jpg (多张)
ComfyUI_00030_.png / ComfyUI_00104_.png
hero-poster.jpg
(其余为哈希命名的图片)

7.2 SaveImage / PreviewImage

节点作用输出位置
SaveImage保存到磁盘G:\Comfy-Desktop\ComfyUI-Shared\output
PreviewImage只在界面预览不落盘

SaveImage 的 filename_prefix 决定文件名前缀。你之前在 RMBG 工作流里用的 CropInpaint/%date:yyyy-MM-dd... 就是利用日期变量自动分目录。


7.3 ImageScale — 缩放到指定尺寸

路径:image/upscaling | 显示名:Upscale Image

输入可选值说明
image—输入图
upscale_methodnearest-exact bilinear area bicubic lanczos插值算法
width / heightINT目标尺寸
cropdisabled / center比例不符时是否居中裁剪

插值算法怎么选:

算法适用
lanczos放大首选,最锐利
bicubic放大/缩小都稳,通用
bilinear快,质量一般
area缩小首选,抗锯齿好
nearest-exact像素风、遮罩图(保持硬边缘)

⚠️ 遮罩(MASK)缩放务必用 nearest-exact,否则边缘会产生半透明灰边,导致重绘区域渗出。


7.4 ImageScaleBy — 按倍数缩放

同样是 5 种插值算法,但输入是 scale_by(浮点倍数,如 2.0)而非绝对尺寸。适合”放大两倍”这种相对操作。


7.5 ImageBatch — 批量拼接(已弃用)

显示名带 (DEPRECATED)。把两张图沿批次维合并。新工作流建议用 ImageStitch(你的环境已加载)替代,后者支持更多拼接方式。


7.6 ImageBlend — 图像混合

输入说明
image1 / image2两张图
blend_factor0~1,混合比例
blend_mode混合模式(正常/正片叠底/滤色等)

7.7 其他常用图像节点

节点作用
ImageInvert颜色反相
ImageCrop裁剪指定区域
ImageFromBatch从批次里取出第 N 张
ImageStitch拼接多张图(新式)
ImageCompositeMasked按遮罩合成两张图,重绘工作流核心
ImageUpscaleWithModel用 ESRGAN 等超分模型放大
UpscaleModelLoader加载超分模型

8. 遮罩与局部重绘节点

局部重绘(Inpainting)是你环境里用得最多的一类——你装了 comfyui-inpaint-cropandstitch 和 comfyui-inpaint-nodes 两个插件。

8.1 基础遮罩节点

节点作用
SolidMask生成纯色遮罩(全白/全黑起点)
MaskToImage遮罩转图像(可视化检查用)
ImageToMask图像通道转遮罩
InvertMask遮罩反相
CropMask裁剪遮罩
GrowMask膨胀/收缩遮罩(正数外扩,负数内缩)
FeatherMask羽化遮罩边缘,让重绘过渡自然

GrowMask + FeatherMask 是重绘质量的关键两件套:先外扩几像素(避免边缘残留),再羽化(避免硬拼接缝)。

8.2 SetLatentNoiseMask — 设置潜空间噪声遮罩

输入类型
samplesLATENT
maskMASK

输出:LATENT

它决定了”只重绘遮罩区域”。把它插在 VAEEncode 和 KSampler 之间:

LoadImage → VAEEncode → SetLatentNoiseMask → KSampler → VAEDecode
                  ↑
              (遮罩来源)

配合 KSampler 的 denoise 使用:denoise=1.0 时遮罩外完全不变,遮罩内完全重绘。

8.3 VAEEncodeForInpaint — 重绘专用编码

一步完成 VAEEncode + 遮罩处理,内部会把遮罩区域做特殊处理(填充灰值),专门为重绘优化。

8.4 InpaintModelConditioning — 重绘条件

输入类型
positive / negativeCONDITIONING
vaeVAE
pixelsIMAGE
maskMASK
noise_maskBOOLEAN

输出:CONDITIONING ×2、LATENT

用于专门的 inpaint 模型(如 Flux Fill、SDXL Inpaint)。它与 SetLatentNoiseMask 的区别:后者适用于普通模型,前者针对重绘模型优化。

8.5 ImageCompositeMasked — 按遮罩合成

重绘的最后一步:把重绘结果按遮罩贴回原图。

输入说明
destination底图
source要贴上的图
mask贴哪些区域
x / y偏移
resize_source是否缩放 source

8.6 你的 inpaint 插件提供的高级节点

comfyui-inpaint-nodes(Acly) —— 13 个节点:

节点作用
INPAINT_ColorMatch把重绘区域的颜色与周围匹配,消除色差(你之前缺的就是它)
INPAINT_MaskedBlur只在遮罩内模糊
INPAINT_MaskedFill只在遮罩内填充
INPAINT_ShrinkMask收缩遮罩
INPAINT_ExpandMask扩张遮罩
INPAINT_StabilizeMask稳定遮罩边缘
INPAINT_MaskBoundingBox取遮罩包围盒
INPAINT_DenoiseToCompositingMask把去噪结果转成合成用遮罩
INPAINT_LoadInpaintModel加载 LaMa/MAT 等专用重绘模型
INPAINT_InpaintWithModel用专用模型重绘
INPAINT_LoadFooocusInpaint / INPAINT_ApplyFooocusInpaintFooocus 重绘模型
INPAINT_VAEEncodeInpaintConditioning重绘条件编码

comfyui-inpaint-cropandstitch —— 提供:

节点作用
Inpaint Crop把遮罩区域裁出来(可放大处理后再贴回)
Inpaint Stitch把处理完的图贴回原位置

Inpaint Crop → 处理 → Inpaint Stitch 是提升重绘质量的核心技巧:在小区域上以高分辨率重绘,再贴回大图,避免整图放大带来的显存压力。


9. LoRA 与 ControlNet

9.1 LoraLoader — 加载 LoRA(模型 + CLIP)

路径:model/loaders

输入说明
modelMODEL(上游模型)
clipCLIP
lora_name选择 LoRA 文件
strength_modelLoRA 对模型的影响强度(常用 0.8~1.0)
strength_clipLoRA 对文本编码器的影响强度

输出:MODEL、CLIP(都要重新接给下游)

接线注意:LoRA 是串联的——加载后必须用它的输出,而不是原来的模型输出:

UNETLoader → LoraLoader → (model 输出给 KSampler)
CLIPLoader → LoraLoader → (clip 输出给 CLIPTextEncode)

多个 LoRA 可以串接(LoraLoader → LoraLoader)。

strength_model 调参:

  • 1.0 标准强度
  • 0.6 ~ 0.8 风格轻微渗透
  • 1.2 ~ 1.5 强化,但容易结构崩坏
  • 负值 = 反向应用(削弱该风格)

9.2 LoraLoaderModelOnly — 只作用于模型

不需要 clip 输入,只影响 MODEL。更省资源——当 LoRA 只训练了 UNet 部分(大多数风格 LoRA)时用它。

9.3 你环境里的 LoRA 清单

Qwen-Image-2.1-viggle-turbo-v0.2.1-6step-lora-r128.safetensors   ← 648 MB,你在用的
Qwen-Image-2.1-viggle-turbo-v0.2.1-6step-lora-r256.safetensors
Qwen-Edit-2509-Multiple-angles.safetensors                        Qwen-Image-Edit-2509-Anything2RealAlpha.safetensors
Qwen-Image-Edit-2509-Fusion.safetensors
Qwen-Image-Edit-2509-Light-Migration.safetensors
Qwen-Image-Edit-2509-Relight.safetensors
Qwen-Image-Edit-2509-White_to_Scene.safetensors
qwen_miratsu_style_20ep.safetensors

6step-lora 是蒸馏加速 LoRA:加载它后,KSampler 的 steps 应设为 6 左右、cfg 设为 1.0。用默认的 steps=20, cfg=8 会又慢又难看。

r128 和 r256 是同一 LoRA 的不同秩(rank),r256 容量更大、体积略大、效果略强。

9.4 ControlNet 相关

节点作用
ControlNetLoader加载 ControlNet 模型 → 输出 CONTROL_NET
ControlNetApplyAdvanced应用 ControlNet 到条件上

ControlNetApplyAdvanced 参数:

输入类型说明
positive / negativeCONDITIONING原条件
control_netCONTROL_NET从 Loader 来
imageIMAGE控制图(线稿/深度/姿态)
strengthFLOAT控制强度,0.5~1.0 常用
start_percentFLOAT从采样进度百分之几开始生效
end_percentFLOAT到百分之几停止
vae(可选)VAE某些模式需要

输出:修改后的 positive 和 negative

start_percent / end_percent 的实用技巧:

  • 0.0 → 0.7:前期强控制构图,后期让模型自由发挥细节
  • 0.0 → 1.0:全程严格控制
  • 0.3 → 1.0:先让模型自由起草,后期用控制修正结构

10. 放大与高清修复

10.1 两种放大路线

路线节点特点
潜空间放大LatentUpscale快,但会丢失细节、可能产生畸变
像素空间放大ImageUpscaleWithModel + ESRGAN慢,质量高

10.2 潜空间放大

LatentUpscale 在潜空间直接放大,然后可再接一段采样器补充细节。

输入可选值
upscale_methodnearest-exact bilinear area bicubic lanczos
width / height目标尺寸
cropdisabled / center

10.3 标准高清修复流程

① 512×512 生成 → ② LatentUpscale 到 1024×1024
   → ③ KSampler(denoise=0.5) 补细节 → ④ VAEDecode

第 ③ 步的 denoise 是关键:

  • 0.4 ~ 0.55:补充细节且不改变构图(推荐)
  • 0.7+:相当于重新画一遍,可能跑偏
  • < 0.3:几乎无效果

10.4 超分模型放大

节点作用
UpscaleModelLoader加载 .pth 超分模型(如 4x-UltraSharp)
ImageUpscaleWithModel用加载的模型放大图像

你环境里 upscale_models 目录当前为空,需要时把超分模型放进去即可。


11. 工作流实战:从零拼一条文生图链路

以你的 Z-Image Turbo 为例,完整最小链路:

┌─ UNETLoader ────────────────┐
│  unet_name: z_image_turbo_bf16.safetensors
│  weight_dtype: default
└──────────┬──────────────────┘
           │ MODEL
           ├──────────────────────────────┐
           │                              │
┌─ CLIPLoader ──────────────┐             │
│  clip_name: qwen_3_4b...  │             │
│  type: (按模型文档)        │             │
└──────────┬────────────────┘             │
           │ CLIP                         │
     ┌─────┴─────┐                        │
     ↓           ↓                        │
┌─ TextEncode ─┐ ┌─ TextEncode ─┐         │
│ 正向提示词    │ │ 负向提示词    │         │
└──────┬───────┘ └──────┬───────┘         │
       │ positive       │ negative        │
       └────────┬───────┘                 │
                ↓                         ↓
         ┌────────────────────────────────────┐
         │           KSampler                 │
         │  steps: 6~8   (Turbo 模型!)        │
         │  cfg: 1.0     (Turbo 模型!)        │
         │  sampler: euler                    │
         │  scheduler: simple                 │
         │  denoise: 1.0                      │
         └──────────────┬─────────────────────┘
                        │ LATENT
     ┌─ EmptyLatentImage ─┐        │
     │  width: 1024       │────────┘
     │  height: 1024      │
     │  batch_size: 1     │
     └────────────────────┘
                        │ LATENT
                        ↓
                 ┌─ VAEDecode ─┐
                 └──────┬──────┘
                        │ IMAGE
                        ↓
                 ┌─ SaveImage ─┐
                 │  filename_prefix: z_image
                 └─────────────┘

VAE 从哪来? 单独加一个 VAELoader 选 ae.safetensors,接到 VAEDecode 的 vae 输入。

如果想加 LoRA

在 UNETLoader 和 KSampler 之间插入 LoraLoaderModelOnly:

UNETLoader → LoraLoaderModelOnly(lora_name=6step-lora-r128, strength_model=1.0) → KSampler

并相应把 steps 降到 6。


12. 你的环境专属配置

12.1 模型目录(容易踩的坑)

你的 ComfyUI 同时搜索两个地方:

目录内容谁放的
G:\Comfy-Desktop\ComfyUI-Shared\modelsDesktop 下载的模型Desktop 下载器
G:\Comfy-Desktop\ComfyUI-Installs\ComfyUI\ComfyUI\models你现在用的大部分模型手动下载

放模型时两个地方都可能生效,但要注意 UNETLoader 等下拉菜单里显示的是合并结果。

12.2 你已有的模型资产

类别文件大小
diffusion_modelsz_image_turbo_bf16.safetensors11.46 GB
qwen_image_2.1_bf16.safetensors13.25 GB
qwen_image_2.1_int8_convrot.safetensors6.76 GB
text_encodersqwen3vl_8b_bf16.safetensors16.33 GB
qwen3vl_8b_int8_convrot.safetensors8.71 GB
qwen3vl_8b_w4a8.safetensors5.88 GB
qwen3.5_9b_qwen_image_2.1_pe_t2i.int8_convrot.safetensors8.82 GB
qwen3.5_9b_qwen_image_2.1_pe_i2i.int8_convrot.safetensors8.82 GB
qwen_3_4b.safetensors7.49 GB
vaeae.safetensors0.31 GB
qwen_image_2.1_vae_bf16.safetensors0.63 GB
loras9 个(见 9.3 节)共 3.79 GB
RMBGRMBG-2.0/model.safetensors843.89 MB

12.3 已装的自定义节点

插件提供的能力
ComfyUI-Manager (4.2.2)插件管理器
comfyui-inpaint-nodes (Acly)13 个重绘节点,含 INPAINT_ColorMatch
comfyui-inpaint-cropandstitch (3.0.17)裁剪-重绘-拼接
comfyui-rmbg (3.1.0)背景去除(RMBG-2.0 / BEN2 / BiRefNet 等)
rgthree-comfy实用工具节点(含 Image Comparator)
was-ns (3.0.1)WAS Node Suite 图像工具集

12.4 网络加速配置(已配好)

项目配置作用
pip 镜像%APPDATA%\pip\pip.ini → 清华源装依赖不再卡
uv 镜像%APPDATA%\uv\uv.toml → 清华源Desktop 更新加速
git 镜像~/.gitconfig 中 insteadOf → ghfast.topGitHub 克隆可用
HF 镜像环境变量 HF_ENDPOINT=https://hf-mirror.com插件自动下模型走镜像

若插件仍去连 huggingface.co,说明它没读 HF_ENDPOINT,此时按插件文档把模型手动下载到它期望的目录(通常 models/<类别>/<模型名>/)。

12.5 已知的本地补丁

文件补丁内容
custom_nodes\comfyui-rmbg\py\AILab_RMBG.py输入强制转 RGB,修复 4 通道图导致的 tensor a (4) vs b (3)

原文件备份在同目录 AILab_RMBG.py.bak-before-rgba-fix。插件更新会覆盖此补丁。


13. 常见报错与排查

13.1 节点显示红色 UNKNOWN

原因:工作流用到的节点,你的环境里没有对应插件。

排查:

  1. 右侧「工作流概览 → 缺失节点包」查看具体节点名
  2. 用 ComfyUI-Manager 搜索安装
  3. 或用 API 反查节点属于哪个包:

方法一(推荐):在 ComfyUI-Manager 界面里直接搜索节点名。

方法二:查本地映射表反查所属包:

$f = "$env:APPDATA\Comfy Desktop\..\..\..\Comfy-Desktop\ComfyUI-Installs\ComfyUI\ComfyUI\user\__manager\cache\1742899825_extension-node-map.json"
# 实际完整路径:
# G:\Comfy-Desktop\ComfyUI-Installs\ComfyUI\ComfyUI\user\__manager\cache\1742899825_extension-node-map.json
$json = Get-Content $f -Raw | ConvertFrom-Json
foreach ($k in $json.PSObject.Properties.Name) {
    if ($json.$k[0] -contains 'INPAINT_ColorMatch') { "所属包: $k" }
}

13.2 The size of tensor a (4) must match the size of tensor b (3)

原因:4 通道(RGBA)图像被送进了只接受 3 通道的模型。

已修复(rmbg 插件)。通用排查思路:在出错节点前插入一个 ImageToMask→MaskToImage,或加 ImageScale,强制通道规整;也可以先用 PreviewImage 看上游输出的实际通道。

13.3 连接 huggingface.co 超时(WinError 10060)

原因:插件内置 hf_hub_download 直连 HF,国内不可达。

三种解决:

  1. 设置镜像:HF_ENDPOINT=https://hf-mirror.com(已配),重启 ComfyUI
  2. 手动下载:按插件源码里的 files 字典,把文件放到 models/<cache_dir>/ 下
  3. 用 hf-mirror 链接:把 huggingface.co 替换为 hf-mirror.com

注意:很多插件只检查文件是否存在,齐了就跳过下载(看 check_model_cache 函数)。这意味着手动放置文件是可靠的绕过方式。

13.4 CUDA out of memory

按优先级尝试:

手段效果
UNETLoader.weight_dtype 改 fp8_e4m3fn显存减半,最有效
换更小的量化模型(如 int8_convrot)显著降低
CLIPLoader.device 改 cpu腾出编码器的显存
降低分辨率 / batch_size线性降低
分段采样(KSamplerAdvanced)降低峰值

13.5 生成结果灰蒙蒙 / 色彩异常

原因:VAE 用错(模型与 VAE 不配套)。

排查:Z-Image → ae.safetensors;Qwen-Image → qwen_image_2.1_vae_bf16.safetensors。

13.6 图生图整体偏灰、有噪点

原因:denoise 设置不当。图生图时 denoise=1.0 相当于忽略输入图;而太低(<0.3)会导致噪声未去干净。

建议:图生图用 0.5 ~ 0.8。


14. 参数速查表

按模型选采样参数

模型类型stepscfgsamplerscheduler
Z-Image Turbo6 ~ 81.0eulersimple
Qwen-Image 2.120 ~ 304 ~ 7euler / dpmpp_2msimple
Qwen-Image + 6step LoRA61.0eulersimple
SD1.5 / SDXL20 ~ 307 ~ 8dpmpp_2mkarras
Flux20 ~ 281.0eulersimple
LCM / Lightning4 ~ 81 ~ 2lcmsgm_uniform

常用分辨率(8 的倍数)

用途尺寸比例
方图1024×10241:1
横版1152×8969:7
竖版896×11527:9
宽屏1344×7687:4
手机壁纸832×12162:3

denoise 取值对照

场景值
纯文生图1.0
大幅改造0.7 ~ 0.85
中等改造0.5 ~ 0.7
轻度修饰0.3 ~ 0.5
高清修复补细节0.4 ~ 0.55

插值算法(upscale_method)

场景算法
放大lanczos
缩小area
通用bicubic
遮罩nearest-exact
像素风nearest-exact

附录:快速自检命令

查看 ComfyUI 当前可见的模型

# 可见的 diffusion models
(curl.exe -sS "http://127.0.0.1:8188/object_info/UNETLoader" | ConvertFrom-Json).UNETLoader.input.required.unet_name[0]

# 可见的 VAE
(curl.exe -sS "http://127.0.0.1:8188/object_info/VAELoader" | ConvertFrom-Json).VAELoader.input.required.vae_name[0]

# 可见的 LoRA
(curl.exe -sS "http://127.0.0.1:8188/object_info/LoraLoader" | ConvertFrom-Json).LoraLoader.input.required.lora_name[0]

确认节点是否可用

# 例:检查 INPAINT_ColorMatch 是否存在
(curl.exe -sS "http://127.0.0.1:8188/object_info" | ConvertFrom-Json).PSObject.Properties.Name -match 'ColorMatch'

⚠️ PowerShell 的 ConvertFrom-Json 在完整 object_info(1510 个节点)上会因大小写不敏感的重复键(如 Background 与 background)报错。查单个节点(如上面前两条)没问题;要遍历全量请用 Python:

import json, urllib.request
with urllib.request.urlopen('http://127.0.0.1:8188/object_info', timeout=60) as r:
    oi = json.load(r)
print(len(oi), '个节点')
print([n for n in oi if 'ColorMatch' in n])

文档基于 ComfyUI v0.37.2 / Desktop v1.1.3 实际环境生成,共覆盖 1510 个节点中的常用核心节点。

↑