ComfyUI 是一个基于 Stable Diffusion 的节点化界面,用于生成 AI 图像。其核心是 扩散模型(Diffusion Model) ,而降噪(Denoising)是扩散模型的核心过程。简单来说,降噪就是“把一张满是噪点的图片,一步步变清晰”的过程。下面我们从基础原理到 ComfyUI 的具体实现,逐步拆解。
扩散模型的工作原理类似于“洗牌和复原”:
这个过程在 潜空间(Latent Space) 中进行,而非直接处理像素(原因后述)。证据显示,ComfyUI 使用 潜在扩散模型(Latent Diffusion Model, LDM) 来实现高效降噪 ``。
通俗比喻:想象你有一张被沙尘覆盖的老照片(噪声图),ComfyUI 的模型就像一个“智能修复师”,它根据你的描述(如“画面中有一只猫”),一步步扫除沙尘(降噪),最终还原清晰照片。
为什么用潜空间?直接处理高清图像计算量太大,ComfyUI 通过编码器(如 VAE)将图像压缩到低维潜空间,大幅降低资源需求 ``。降噪过程分三步:
下表对比了像素空间与潜空间的差异:
特性 | 像素空间(Pixel Space) | 潜空间(Latent Space) | 优势 |
---|---|---|---|
维度 | 高维(如 512x512x3) | 低维(如 64x64x4) | 计算效率高 `` |
降噪位置 | 直接处理像素 | 处理压缩后的特征向量 | 速度快、省内存 `` |
信息保留 | 完整细节 | 核心语义特征 | 更易学习文本-图像关联 `` |
证据引用:潜空间降噪是 ComfyUI 的核心优化,证据指出“在潜空间内执行前向扩散和反向降噪过程”
,并“通过解码器将信息还原回像素空间”
。
在 ComfyUI 中,降噪通过 KSampler 节点 实现(节点是工作流的基本单元)。以下是降噪步骤的分解:
在 KSampler 节点中,用户可调整以下参数,直接影响降噪效果 ``:
参数名 | 作用 | 通俗解释 | 典型值 |
---|---|---|---|
Steps(步数) | 降噪迭代次数 | 步数越多,降噪越精细(但耗时更长)。好比修复师擦除沙尘的次数。 | 20-30(文生图) 5-15(图生图) `` |
CFG | Classifier-Free Guidance 尺度 | 控制提示词的影响力。值越高,生成越贴近描述(但过高会失真)。 | 7-12 `` |
Denoise(降噪强度) | 控制噪声覆盖程度 | 值=1:完全去噪(文生图); 值<1:部分保留原图(图生图)。 |
1.0(文生图) 0.2-0.8(图生图) `` |
Sampler(采样器) | 噪声更新算法(如 DDIM、DPMpp) | 决定“如何擦除噪声”。不同算法影响风格和速度。 | DPMpp 2M(平衡速度质量) `` |
Scheduler(调度器) | 控制噪声减少的速率(如 Karras、SGM Uniform) | 类似“擦除力度”:激进(快速降噪)或平缓(更自然)。 | Karras(通用) `` |
证据引用:KSampler 节点“在潜空间中进行逐步去噪”
,参数如 `steps` 和 `denoise` 是用户可调的核心
。
降噪不是盲目进行的!ComfyUI 使用 文本提示(Prompt) 作为条件输入:
模型在降噪时,会结合这些条件“猜”出合理图像 ``。例如:
CFG
值强制模型紧跟提示词。在实际使用中,降噪通过节点连接实现。以下是典型工作流示例(基于证据):