文字怎样进入每一步预测?CFG
文字不只是生成结束后的评分条件。在同一个受损状态和同一个时间上,同一预测网络分别作出有条件和空条件两份预测;CFG调节它们的差异,再把组合后的预测交给更新规则。下一步仍然重复这件事。因此,文字可以沿生成过程持续改变走向。
主画布最后一态给出本轮实际运行的 g=1/4/8 三张结果:提示均为 A red ceramic mug on a wooden table beside a window, soft daylight, still life photograph,使用相同 seed 11 和已保存初始 latent,固定模型、步数、尺寸和采样规则,只改变引导强度。比较杯身、把手、材质与窗边构图的实际变化;这一个 seed 不能证明“数值越大越好”,也不能估计候选分布的多样性。
说明另附“红杯在梨左边”的构造图,帮助分清三种评价对象:条件服从检查图与要求之间的关系;形体自然度检查图内对象是否成立;多样性检查一批候选是否提供不同的合法答案。左右错位、断柄、近重复分别暴露不同问题。这些图是教学构造,不能冒充上面真实 CFG 对照的输出;三种评价也不能由某一项提升代替。它们与 N22 的批量评价呼应,此处新增的是怎样把文字条件影响加入每一步更新。
Classifier-Free Guidance(CFG)的直觉,是比较同一状态下“给了条件”与“没有这项条件”两种预测,再调节二者差异对更新的影响。空条件分支需要有相应训练依据,不能在使用时任意把一个没这样训练过的模型输入清空,就认定得到了可靠的无条件预测。
一种常用记法是“空条件预测 + g ×(有条件预测 − 空条件预测)”。按这套约定,g=0 使用空条件预测,g=1 回到有条件预测,g>1 放大条件差异;有些材料采用偏移后的参数命名,读数前要先对齐公式。这里改变的是预测如何被组合,再经采样规则改变生成倾向,不是给最终图片贴一个“更听话”的标签。
“把引导强度一直加大,是不是就能同时更准确、更好看?” 不保证。强化某个方向可能提高条件显著性,也可能损害细节或减少候选变化。即使六张都把红杯放对位置,其中五张近重复,对探索任务仍有代价。应该固定提示、采样数量和其他条件,分别记录守约、形体、覆盖以及计算成本。
常规双分支 CFG 在一个更新位置需要有条件与空条件两份预测;可以批量计算,仍不意味着工作量免费。速度和质量的取舍应在完整运行中衡量。本页一个 seed 的三张真实图没有测出最优引导强度或一般速度收益;中间状态的机制示意也不是这三次运行保存的推理轨迹。
下一页再换一个改进位置:如果每次预测处理的表示更紧凑,或网络骨干更易扩展,系统会怎样改变?
与实际pipeline的对应
LAB06 固定 SD 1.5,模型 commit 451f4fe16113bff5a5d2269ed5ad43b0592e9a14,Diffusers 0.35.1,CPU bfloat16。三次运行均为 DDIM、20 步、eta=0、512×512、空负提示,使用相同 seed 11 和同一已保存初始 latent。此 pipeline 在 guidance_scale≤1 时跳过双分支 CFG,但仍向模型输入文字条件;所以界面 g=1 是普通条件预测,不能把 g=0 按钮解释成上述公式的空条件预测。实际外推对照为 g=1/4/8:g=4/8 每一步组合两份预测,再更新状态。保存图分别为 txt-cfg-1-seed-11.png、txt-baseline-seed-11.png(g=4)、txt-cfg-8-seed-11.png;运行设置和可选重算入口见 LAB06。
画面怎样推进
第1步
同一受损状态 x_t 和同一难度 t 同时进入同一网络的有条件与空条件预测;文字 c 在预测端进入。空条件能力来自训练时的条件丢弃,不是把任意模型的提示删掉就自然成立。
打开这一停点第2步
两份预测按 epsilon_empty + g (epsilon_c - epsilon_empty) 合并,再交给采样器更新到下一状态;下一步重复。此约定 g=0 为空条件,g=1 为有条件,g>1 为外推。常规 CFG 每步计算两份预测,可合批,实际延迟仍需测量。
打开这一停点第3步
同一提示、seed 11 和已保存初始 latent,固定 SD 1.5、20 步、512×512、DDIM η=0 与空负提示,仅比较 g=1/4/8。g=1 在本实现中仍使用文字条件,但跳过双分支 CFG;g=4/8 在每一步组合两份预测再更新。三张是本轮实际生成结果,用于观察颜色、材质、杯柄与构图差异;单个 seed 不支持“强度越大越好”,也不能据此估计多样性分布。
打开这一停点学习材料
与当前画面直接相关
一次CFG组合怎样算,真实图又该怎样读?
同一状态、同一时间下,令空条件预测εᵤ=(0.2,−0.1),文本条件预测ε꜀=(0.4,−0.2)。差为(0.2,−0.1),按εCFG=εᵤ+s(ε꜀−εᵤ),s=1得到(0.4,−0.2),s=4得到(1.0,−0.5)。这是可手算的教学张量,不是实测中间值;组合经scheduler更新当前潜变量,下一步重新预测,不是混合两张终图。
真实图阵每行固定提示、种子和初始latent,列为CFG1/4/8。先横读一行的杯形、位置与构图,再纵读随机起点的差别:seed37行在CFG8出现额外较大红色容器。这个反例不能移到CFG4,也不能因红色更显著就判全部条件更正确。
数学公式s=0取空条件;本实验pipeline在guidance_scale≤1时却关闭双分支、仍输入文字。软件开关需另核对。要继续学,先算预测组合,再读保存图中对象与关系,最后检查额外计算量。
接着读:算例及真实张量的区分、真实图阵与逐行读图。
连续阅读
CLS 05 · 扩散:训练、采样与少步生成
按连续正文理解这条方法的训练信号、使用过程与算例;数学与实践在相关问题旁展开。
先看:第5章,从对象和问题开始
阅读与实践
LAB 06 · 真实文生图与编辑
先看同起点的真实保存图,再选择一个参数重算;失败结果与全部条件一起保留。
先看:CFG 同起点图阵与组合机制
在 Deepnote 阅读与运行相关材料
LAB06 · 实际文生图与编辑
先看保存图阵、输入和参数,再只改一个变量。
先看:文生图单变量对照;img2img与固定遮罩编辑
LAB06 · Deepnote与可选重算
读取实际运行范围,下载同源Notebook并选择是否重算。
先看:先看保存结果与运行记录
来源与进一步阅读
Generative Models (part 2)
先对齐引导公式的参数约定,再区分条件服从、样本质量和多样性;不直接比较不同记法下的刻度。
先看:Classifier-Free Guidance与生成评价相关页
