Tutorial Lesson

ComfyUI图生图原理

ComfyUI保姆级零基础教程 62 浏览 2026-07-07 更新 免费阅读

一、文生图 vs 图生图:差在哪?

1.1 文生图(txt2img)

Empty Latent Image(空白潜空间)
        ↓
   KSampler(denoise = 1.0,从纯噪声开始去噪)
        ↓
   VAE Decode → 图片
  • 没有输入照片;

  • latent 里是「随机噪声 + 指定尺寸」;

  • denoise 固定为 1.0(100% 重新生成)。

1.2 图生图(img2img)

Load Image(上传的照片)
        ↓
   VAE Encode(像素 → LATENT)
        ↓
   KSampler(denoise < 1.0,在原有 latent 上加噪再去噪)
        ↓
   VAE Decode → 新图片
  • 有输入照片作为起点;

  • 先在 latent 里「保留原图信息」,再按 Prompt 改写;

  • denoise 决定改多少

一句话:文生图从白纸开始;图生图从「已有草稿」开始改。


二、VAE Encode 是什么?

2.1 作用

VAE Encode 节点IMAGE(蓝) 压缩成 LATENT(粉),供 KSampler 在潜空间里操作。

方向

节点

转换

像素 → 潜空间

VAE Encode

IMAGE → LATENT

潜空间 → 像素

VAE Decode

LATENT → IMAGE

文生图只用 Decode;图生图 Encode 和 Decode 都要用

2.2 连线

Load Checkpoint → VAE(红)──→ VAE Encode → LATENT ──→ KSampler (latent_image)
Load Image    → IMAGE(蓝)──→ VAE Encode

VAE 必须与生成用的 Checkpoint 匹配(或该模型推荐的 VAE),否则颜色发灰、细节异常。

2.3 为什么不能 IMAGE 直接进 KSampler?

KSampler 的 latent_image 插槽类型是 LATENT,不是 IMAGE。
跳过 Encode 等于让「驾驶舱接错管线」——类型不匹配,无法连接或结果错误。


三、denoise 去噪强度详解

3.1 它控制什么?

在 img2img 中,KSampler 会先对输入 latent 按 denoise 比例注入噪声,再逐步去噪。

denoise

含义(直观理解)

1.0

相当于忽略原图结构,等同文生图(原图仅影响尺寸时)

0.7–0.8

大幅改动,构图可能明显变化

0.5–0.6

常用区间:保留主体结构,改风格/细节

0.3–0.4

小幅修饰,原图非常像

0.1–0.2

几乎只微调纹理/色彩

0.0

理论上不改变(实际很少用)

3.2 与 steps 的关系

  • steps:去噪走多少步;

  • denoise:起点离原图有多远。

同样 steps=30:

  • denoise 高 → 每步变化大,整体偏离原图多;

  • denoise 低 → 每步变化小,更贴原图。

经验:先定 denoise 定「改多少」,再调 steps 定「细不细」。

3.3 常见场景推荐

目标

denoise 建议

换画风(动漫↔写实)

0.55–0.75

洗图 / 重绘细节

0.45–0.65

调色、轻修

0.25–0.40

局部 inpaint(见 4-4)

蒙版区域内常 0.6–0.85

几乎只要原图

0.15–0.30

没有绝对标准,需 同图试 3 个值 对比(如 0.45 / 0.55 / 0.65)。


四、图生图完整数据流

[Load Checkpoint]
   MODEL ─────────────────────────────→ [KSampler]
   CLIP ──→ [CLIP+] / [CLIP-] ──→ COND ──→ [KSampler]
   VAE ──→ [VAE Encode] ←── IMAGE ←── [Load Image]
              │
              LATENT ──────────────────→ [KSampler] (latent_image)
                                              │
                                              LATENT
                                              ↓
                                        [VAE Decode] ← VAE
                                              │
                                              IMAGE → [Save Image]

与文生图的唯一核心差异:

  1. Load Image + VAE Encode 替代 Empty Latent Image

  2. KSampler denoise < 1.0


五、分辨率与比例

5.1 Encode 后的 latent 尺寸

VAE Encode 会按 输入图片尺寸(及模型规则)生成 latent。
上传 1024×768 的图,KSampler 就在对应比例的 latent 上操作。

5.2 与文生图混用注意

  • 不要随意在 img2img 中间换 Empty Latent 尺寸,除非你知道模型支持且工作流设计如此;

  • SDXL 建议单边 ≥ 768;过小再放大易糊。

5.3 先缩小再 img2img?

大图占显存时,可先 Scale 缩小 → img2img → 再 放大。第 8 章会展开。


六、denoise = 1 时还算图生图吗?

技术上仍走 Encode 流程,但若 denoise=1.0:

  • 原图 latent 信息被噪声基本覆盖;

  • 结果主要由 Prompt + seed 决定,构图未必保留原图

因此:

  • 想保留构图 → denoise 务必 < 0.85,多数情况 0.5–0.7;

  • 只想用原图尺寸或轻微参考 → 才考虑更高 denoise。


七、常见误解

误解

事实

图生图 = 换 Prompt 就行

还要 VAE Encode,并调 denoise

denoise 越高越好

过高会丢失原图,像重抽

denoise 越低越安全

过低改不动,达不到换风格目的

文生图也能 denoise=0.5

文生图 latent 来自 Empty,低 denoise 无原图可保留


八、参数实验(建议动手)

同一张图、同一 Prompt,固定 seed,只改 denoise:

实验

denoise

观察

A

0.35

与原图相似度

B

0.55

风格变化程度

C

0.75

构图是否还像

记录结论,作为个人「洗图 denoise 表」。

推荐教程

继续学习相关章节