模型与参数

一致性模型与步数蒸馏:快速档是怎么来的

又称 consistency model, model distillation, lcm, 模型蒸馏, 步数蒸馏

一致性模型的训练方式是让噪声到成图这条轨迹上的任意一点都直接映射到同一个终点,于是它一到四步就能出成品,而不需要几十步。目录里各种 fast、turbo、flash、lightning 档位,背后基本都是这套蒸馏技术。

被压缩掉的是什么

采样一个扩散或者流模型,就是从纯噪声一路走到成品潜空间,每一站都要跑一次网络。三十站就是三十次前向,在视频上这一项直接决定成本和延迟。

蒸馏训练一个学生网络去跳站。严格表述会给学生一个自一致性质:无论把老师轨迹上的哪一点交给它,它都返回同一个终点。如果这个性质成立,那么最前面那一点,也就是纯噪声,本身就映射到成图,一次前向足够。

实际情形比理论脏。你真正会遇到的那些家族混了好几种手段:对老师做一致性蒸馏、加对抗损失把纯蒸馏磨平的锐度补回来、再加分布匹配目标防止学生塌到少数几个输出上。值得记住的技术线有潜在一致性模型及其 LoRA 形式、SDXL 的对抗式 turbo 与 lightning 变体、Flux 的一步兄弟版本,以及让视频模型能逐帧流式输出的那批因果蒸馏。

怎么判断你正在用它

托管目录很少直接写「这是蒸馏版」,但特征很稳定:

  • 步数是个位数,或者干脆没有步数可调。
  • 引导参数固定、被隐藏,或者改了看不出任何变化。
  • 有反向提示词输入框,但填了没反应。
  • 名字里带 fast、turbo、flash、lite、schnell、lightning,价格是同门完整模型的几分之一。
  • 换不同种子出来的图相似得可疑。

最后一条是最可靠的信号,也最直白地说明了你放弃了什么:多样性是步数压缩的第一个牺牲品。

这笔交易在真实工作里怎么算

它真正划算的场景是探索。一次生成从四十秒变成两秒,整个工作形态就变了:你会试十二个构图而不是押注一个,会边看结果边改提示词,在画布上可以先铺满一板选项再挑。这值得让出一部分画质,因为那些图本来就是为了被否掉而存在的。

交易变亏的地方是蒸馏结果被当成交付物。蜡感皮肤、被压平的布料、四步渲染特有的那种过分干净,后期很难救回来,而这些恰好就是观众读成「机器做的」的信号。放大补不出从来没生成过的质感。

所以站得住的流程是两段式:在快速档探索,方向定下来之后用同一条提示词在完整模型上按正常步数重出一遍。视频上这个理由更强,因为蒸馏草稿能让你先确认运动对不对,再为真正要剪进片子的那一版付钱。

还有一点值得记牢:蒸馏和架构是两件独立的事。蒸馏版的提示词理解能力、分辨率范围、细节上限,全部继承自被压缩的那个老师。完整模型写不对字、撑不住十秒镜头,快速档也一样撑不住。步数压缩买到的只有速度。

这个效果的提示词

一条能稳定出效果的起点。主体和场景可以换,技术性的那几句留着。

Portrait of a woman in a wool coat against a concrete wall, overcast light, 85mm, natural skin texture

试一下:一致性模型(Consistency Model)

打开生成器,参数已经预填好。

常见问题

它和扩散模型的区别是什么?
扩散模型学的是噪声到成图这条路上的一个小增量,所以必须被调用很多次;一致性模型学的是从这条路上任何位置直接跳到终点,所以一两次就够了。实际上线的版本大多是从一个扩散老师那里蒸馏出来的,而不是从零训练。
这和视频里说的「时序一致性」是一回事吗?
不是,这两个名字撞车确实造成了不少误解。时序一致性说的是输出属性:一张脸、一件外套在帧与帧之间是否稳住。一致性模型说的是训练和采样技术,关注的是步数。蒸馏出来的快速档照样可能逐帧漂移。
为什么快速档上反向提示词不起作用了?
因为反向提示词是通过无分类器引导生效的,而蒸馏通常把一个固定的引导值直接固化进权重,好省掉第二次前向。没有活的引导项,反向那一支就没有东西可以推,所以这个输入框要么被忽略,要么只剩很弱的残余作用。
用蒸馏版具体损失什么?
按影响大小排三件事:一是多样性,蒸馏采样器会往老师的平均值收,不同种子出来的图更像;二是精细质感,皮肤、头发、织物明显更干净更蜡;三是长提示词里靠后从句的分寸感变弱。构图和主体一般不受影响。
快速版和完整版之间能复用种子吗?
不可靠。两边的调度和步数不一样,同一个种子出不来同一张图。正确用法是用快速档把想要的东西定下来:取景、色调、姿态,然后把这个意图描述给完整模型,而不是指望一个数字把它带过去。

相关术语