2.5 条件生成机制


2.5 条件生成机制

无条件生成只能撒网抓鱼,条件生成告诉网络"这步该往哪个方向擦"。类别标签经嵌入注入、文本提示经文本编码器转嵌入注入、参考图经额外编码注入,构成扩散可控性的三条主流通道。

前面的章节一直让模型"自己看着办"地预测噪声——这叫无条件扩散,能生成大类的图,但你没法说"我要一只戴小帽的橘猫"还是"我要一只站在悬崖边的白狗"。产业里真正被天天使用的不是这种,而是有条件扩散:你把想要的"应然"塞给模型,让它在每步去噪时都参照这个提示擦、往这个方向落。这一节的地位,正好是第二章跟第六章、第四章之间被很多人忽略的那座桥——它先把"条件"注入的三种通用通道讲清,第六章的 ControlNet 再在它上面叠加结构控制。

三种最常用的"方向盘"

类别标签注入。 最朴素的条件是类别:训练时除了预测噪声,还把类别编号连带编码向量一起喂进网络。预测噪声时网络就以"它应该是这个类别"为前提去猜。推理时你给个类别,就生成那类;不给类别时用"空类别"当作无条件分支,配合引导把条件信号放大。这套是后续一切条件注入的最小样板,理解它就能理解更复杂的注入。

文本嵌入注入。 对应文本到图像。文本先过一个预训练文本编码器(如 CLIP 的文本塔),变成一串向量,再作为条件传给扩散网络的注意力层。这样"一只戴小帽的橘猫"这段文字,就会转成一组能指导每步去噪的语义向量。文本的精细程度,直接受文本编码器跨模态对齐能力的限制;这也是为什么换更强的文本编码器会显著提升文字跟图的一致性。

图像条件注入。 对应图像到图像:把一张参考图(素描、布局、另一张风格图)也编码成某种条件,与噪声图像一路共同进入网络。它可以配合类别与文本一起用,实现"既要有这个构图、又要这种风格"的多重约束。

把三兄弟放进一张结构图,注入点其实都在同一处——U-Net 内部的注意力/融合模块:

把条件"喂"得恰到好处:不是拉满下拉

条件注入的数值细节最容易被初学者搞反——以为条件越强图越听话。实际流行的是分类器自由引导 CFG(Classifier-Free Guidance):推理时对"空条件"与"真条件"各做一次去噪预测,然后按公式把两者外推更远,即

eps = eps_uncond + cfg * (eps_cond - eps_uncond)

cfg 这个超参控制引导的强度。cfg=1 等于只用条件分支,无引导;cfg 一般取 5 到 8 之间,数值越高越贴着提示词走,但过高会引入色彩过饱、对比发闷、内容僵硬的"烧焦感"。低 cfg 则更自由、更听从模型先验。工程上的手感是:写生风、用户想要创意自由度时 cfg 取低一点;logo、写说明、外科手术式改图时 cfg 取高一点。它和采样器步数是上一节提到的"三驾马车"之二,你在第四章实操会反复拧这个旋钮。

条件机制与第六章的接缝

很多教程把条件机制一笔带过,导致后面 ControlNet 一出现读者就懵。这里提前埋一个坐标:ControlNet 本质上仍是本节"图像条件注入"的一个更精细的实例——它把姿态、边缘、深度这些结构信号编码进额外分支,再以旁路方式注入原网络,从而在不破坏原权重的前提下新增一层"结构方向盘"。所以先吃透本节三种注入通道,第六章就只是"再加一个新的条件来源"。

条件注入在两个层面发生

初看"把条件喂进网络"好像只是一行代码,实际上它发生在两个不同的层级,理解区分对定位问题很有帮助。第一层是"表示层":把类别、文本、图像各自转成向量或特征,这一步决定条件的信息量够不够、对不对齐。第二层是"注入层":把这些表示如何放进 U-Net——通常是通过交叉注意力替换或拼接噪声图的特征,决定条件能影响到哪一层、影响多强。训练时这两层同时被优化,推理时你若发现"改了条件却几乎不变图",毛病多半在表示层的编码质量;若发现"图形塌了、结构不对",多半要回头调注入层的强度与位置。

多重条件怎么分工协作

实际产品几乎不会只用单一条件,而是让它们各管一摊:

条件来源 主要负责什么 冲突时谁让位
类别标签 框定主体大方向 兜底,最弱
文本提示 定风格、内容关键词 居中,受编码器限制
图像/结构条件 锁构图、边缘、姿态 最强,几乎不可违背

理解这张优先级表,你在组合条件时就不会吼"我让它这样它偏那样"。结构条件本质上在给画面画格子,文本负责往格子里填气质,类别负责兜底的类目概念——三者的作用域不同,自然很少真正打架,真打架时也总有明确的主导方。

条件机制的"方向感"本质

值得最后收一句通透了的话:条件生成在深层意义上,是在给去噪过程装上一个"每步往哪走"的方向提示。无条件的去噪,网络每一步只凭自己对"像真图的概率山"的理解去爬;一旦端起条件,它每一步多了一个参照——"往东南走才像戴帽的橘猫"。这个参照不是一步到位地告诉你终点,而是持续地、每一小步地修正方向。所以你会看到条件的真正作用,常常不是一次生成就板上钉钉,而是在成图过程中不断拉拽,让每一个局部都朝你要的语义靠拢。理解这一点,后续讲 CFG 强弱、讲结构锁死、讲 LoRA 为何能像"贴上去的方向感",就都有了同一个底座。

⚠️ 常见坑:上来就把 cfg 飙到十几,结果图僵成一团。从 5~8 起步,按成图质感微调,永远比无脑拉满好用。
💡 关键直觉:条件不是塞得越多越好,而是让网络"该往哪擦"有依据;CFG 决定依据站得多用力、多自由。

本节要点回顾

  • 类别注入:类别编号进嵌入,是最小的条件样板。
  • 文本注入:文本编码器转语义向量进注意力层,构成文本到图像的支点。
  • 图像注入:参考图编码成条件,支持构图/风格/布局约束。
  • CFG 引导:空条件与真条件外推,cfg 控制听话程度与副作用。
  • 与第六章接口:ControlNet 就是加一类更精细的图像条件。

三种通道今天都讲清了。第三章要看看这些机制被搬进不同架构后,怎样派生出 LDM、一致性模型等高效变体。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U