文生图标准管线拆解

核心 约 25 分钟 ★ 最小路径 文生图管线txt2img参数拆解种子核心原理最小路径
前置知识点(建议先学)
学习状态:

一句话定义

一次标准文生图 = 加载三件套 → 正负提示词编码 → 种子生成初始潜码 → KSampler 按采样链迭代去噪(每步含 CFG)→ VAE 解码为像素 → 保存,全部参数都能映射到这条链上的一个精确位置。

为什么重要

这是把 kp-003 至 kp-011 全部理论收拢成一张「总装图」的知识点:界面上的每个输入框(尺寸、种子、步数、CFG、采样器、重绘幅度)在这条链上都有唯一坐标。遇到任何「参数应该设多少」的问题,先定位它在链上的位置、再查对应机制,就不会再背参数表。

前置知识

kp-008(三件套)、kp-009(采样链)、kp-010(CFG)、kp-011(文本条件)。

核心概念

原理与机制

按执行顺序走一遍链,同时标注参数坐标:

  1. 加载:checkpoint 拆出 MODEL / CLIP / VAE 三个对象(kp-008 三件套)。坐标:无参数,但模型代次决定后续一切默认值(kp-023)。
  2. 编码:正/负提示词分别经文本编码器变为条件对(kp-011)。坐标:提示词文本、权重语法(kp-019)在此生效;超 77 token 在此截断。
  3. 初始化:EmptyLatent(文生图)或参考图加噪(图生图,kp-012)。坐标:种子(seed)只作用于这一步——它决定初始高斯张量,从而支配低频构图;宽高在此设定(注意 8 倍与基座分辨率约定,SD1.5 基准 512²、SDXL 基准 1024²)。
  4. 迭代去噪:steps 次循环,每次:文本分支与负向分支各前向一次 → 按 ε̃ = ε₋ + w(ε₊ − ε₋) 合并(kp-010)→ 按所选采样器公式推进(kp-009)。坐标:steps、CFG(w)、sampler/scheduler 三个参数全部只作用于这一环节。
  5. 解码保存:VAE 把 z₀ 还原为像素。坐标:VAE 选择与精度(fp16/fp32)在此影响色彩与细节。

种子与 CFG 的作用域辨析(最常混淆处):种子影响「起点」,即整条轨迹的初始条件;CFG 影响「每一步的方向修正强度」。两者正交:同种子不同 CFG 从同一起点走出不同轨迹;同 CFG 不同种子起点不同。「为什么调 CFG 构图也变了」——因为方向修正在前几步就足以改变低频结构,起点虽同、路径分叉,这是正常现象而非种子失效。

精度环节:主干以 fp16 运行可省一半显存(kp-024),VAE 解码在 fp16 下偶发数值溢出(黑图),工程上以「VAE 用 fp32 解码」解决——色彩环节的常见坑在此链上有明确位置。

公式与推导

主循环的每次迭代即 kp-010(CFG 合并)+ kp-009(采样推进)两式串联;总时间账为 steps × (2 次主干前向 + 采样计算) + 1 次 VAE 解码,其中主干前向占绝对大头——这就是「步数与分辨率才是时间主因素」的推导根据(kp-024 展开定量版)。

图示

①加载 MODEL/CLIP/VAE→②正负提示词 → 条件对→③种子 → 初始潜码(尺寸在此)→④steps 循环:CFG 合并 + 采样器推进→⑤VAE 解码(色彩/精度)→保存

直观类比

一条面包生产线:进货(三件套)、抄配方(编码)、发面起点(种子与初始潜码)、反复揉整(去噪循环,CFG 是揉的力度、步数是揉的次数)、出炉上色(VAE 解码)。抱怨面包不对劲时,先判断问题出在哪个工位,而不是把整条线随机重调。

实例或案例

常见误区

自测题

  1. 写出六环节链并标注 seed、CFG、steps 各自作用的环节。

答案要点:加载→编码→初始化(seed)→迭代(CFG、steps、sampler)→解码→保存。

  1. 同种子调 CFG 为什么构图也变?

答案要点:CFG 改变每步方向修正,前几步的修正足以分叉低频结构;起点相同不代表轨迹相同。

  1. 1536² 在 SD1.5 上出双头的机制原因?

答案要点:潜码尺寸超出训练分布(64×64 基准),模型在分布外做构图切分。

与其他知识点的关系

kp-021 用节点图表达同一条链;kp-024 给环节④⑤的定量算力账;kp-012 是环节③的图生图变体;kp-023 决定环节①加载什么。

延伸阅读

Latent Diffusion 论文图 2 的总体架构图与本节六环节一一对应,可对照建立「论文图 ↔ 工作流」的双语能力。

相关知识点