BAGEL 少步蒸馏 · 方法对比

更新 2026-10-12 20:57 SGT · 由 kokoro_ode/build_report.py 生成,每次评测后重跑 · 网格是 800 px 缩略图,放大页是原图(PNG,原分辨率);点图进查看器:←/→ 换蒸馏算法,T 教师,R 未训练 4 步,G GT,↑/↓ 换 prompt,[ ] 换训练步,W EMA/student,S 换种子,点图 1:1,Esc 关闭 · 图片在同目录 raw/,要连 results/ 整个目录打开

受控条件

方法

方法做法训练状态已评测的训练步
B · DMD2 + ODE 展开学生从纯噪声按 4 步表 ODE 展开到随机出口步,再带梯度走一步;VSD(x0 归一化,τ shift 5);fake:学生 = 4:1(4 步表:旧 Wan 表(shift 5))已完成 1000500, 750, 1000
D · DP-DMD走完 4 步(第 1 步后 detach),第 1 步对齐教师锚点(30 步 shift 3 网格的第 5 点 t=0.9375,= 学生第 1 步落点)+ VSD(x_t 归一化,τ shift 3);fake:学生 = 5:1(4 步表:旧 Wan 表(shift 5))已完成 1000500, 750, 1000
A · 上一轮配方学生输入 = 真实图加噪(SDE 分布),推理走 ODE —— 基线(4 步表:shift 3 表)已完成 1000250, 500, 750, 1000
C · B + DMDOB 的基础上:VSD 加噪用这条轨迹自己的起点噪声 x_T(Hyper-Bagel DMDO);fake 改用完整 4 步终图与 x_T 插值(4 步表:shift 3 表)已停 用户看训练内预览判定效果不好,10-07 19:50 在 ~475 步停、让出 4–7 号卡;只有 250 存档(未出图),过程看下方训练内预览—
A · 配方 2同 A;配方 2:VSD τ shift 3(学生与 fake 同分布)、Adam β2 0.95、学习率余弦到 0、教师 cfg_img 1.5(与 CFG 蒸馏对齐)(4 步表:shift 3 表)已完成 1000250, 500, 750, 1000
B · 配方 2同 B,学生 4 步表换 shift 3 表;配方 2:VSD τ shift 3、Adam β2 0.95、学习率余弦到 0、教师 cfg_img 1.5(4 步表:shift 3 表)已完成 1000250, 500, 750, 1000
D · 配方 2同 D,学生 4 步表换 shift 3 表(DP-DMD 锚点 40 步网格第 10 点 t=0.9);配方 2:β2 0.95、学习率余弦到 0、教师 cfg_img 1.5(VSD τ 本来就是 shift 3)(4 步表:shift 3 表)已完成 1000250, 500, 750, 1000
ODE-init → TDM · fake 权重下限 f = 0.25同 ODE-init → TDM(配方 1,同一个 ODE-init 500 起点),只把 fake 的 v-MSE 权重改成 min(1, 5/SNR)·max((1−τ)², 0.25):τ ≤ 0.5 与 demo 等价、更高噪声停在 0.25(方法文档 §3.3)(4 步表:shift 3 表)已完成 1000250, 500, 750, 1000
ODE-init(前置阶段本身)在线跑教师 ODE 轨迹(40 步网格 shift 3 并入学生 4 个时间点,cfg 4 / 2),学生在这 4 点回归教师终点;8 卡 500 iter,产物同时喂 TDM 和 PDD(4 步表:shift 3 表)已完成 500250, 500
ODE-init → TDM先回归教师 ODE 轨迹(ODE-init),再接 TDM(本步落点、本步噪声区间内比较)(4 步表:shift 3 表)已完成 1000250, 500, 750, 1000
ODE-init → PDD(lr 1e-5)先 ODE-init,再接平行解码蒸馏(细网格平均速度,无 fake score);学生 lr 1e-5(论文值,但论文 batch 2048)(4 步表:shift 3 表)已停 4 步预览第 120 步正常、150 步发脏、180 步起崩成涂鸦,没再恢复;10-07 15:40 在 575 步停,存档 250 / 500 出图留档(权重只留 500)250, 500
ODE-init → PDD(lr 4e-6)同上,学生 lr 降到 4e-6(= TDM 的学生 lr)重跑;原排在 C 之后(4 步表:shift 3 表)暂缓 C 停后用户定暂时不跑(10-07 20:00),没有排队—

指标(heldout15 × 种子 42 / 100 / 1024)

模型训练步学生更新次数权重锐度 / 教师种子间差异
教师 41 步———1.000.208
教师 40 步 · cfg_img 1.5———0.960.207
未训练学生 4 步(旧表)———0.200.107
未训练学生 4 步(shift 3 表)———0.180.090
A25050ema1.300.173
A25050student1.390.176
A25050ema0.890.137
A25050student0.960.141
B25050ema1.000.176
B25050student1.070.181
D25041ema1.200.219
D25041student1.200.223
ODE-init → TDM250125ema1.320.265
ODE-init → TDM250125student1.360.267
ODE-init(前置阶段本身)250250ema0.790.230
ODE-init(前置阶段本身)250250student0.810.233
ODE-init → TDM250125ema1.360.268
ODE-init → TDM250125student1.400.270
ODE-init → PDD(lr 1e-5)250250ema0.060.471
ODE-init → PDD(lr 1e-5)250250student0.040.467
B500100ema1.150.214
B500100student1.290.219
D50083ema1.200.230
D50083student1.270.233
A500100ema1.940.214
A500100student2.030.224
A500100ema1.510.180
A500100student1.560.184
B500100ema1.160.209
B500100student1.210.213
D50083ema1.120.217
D50083student1.090.218
ODE-init → TDM500250ema1.480.259
ODE-init → TDM500250student1.490.259
ODE-init(前置阶段本身)500500ema1.010.245
ODE-init(前置阶段本身)500500student1.010.245
ODE-init → TDM500250ema1.480.262
ODE-init → TDM500250student1.510.265
ODE-init → PDD(lr 1e-5)500500ema0.180.481
ODE-init → PDD(lr 1e-5)500500student0.140.479
B750150ema1.380.239
B750150student1.360.240
D750125ema1.210.226
D750125student1.170.228
A750150ema2.260.241
A750150student2.220.242
A750150ema1.580.199
A750150student1.540.199
B750150ema1.410.228
B750150student1.410.229
D750125ema1.170.222
D750125student1.160.222
ODE-init → TDM750375ema1.580.261
ODE-init → TDM750375student1.610.261
ODE-init → TDM750375ema1.530.268
ODE-init → TDM750375student1.540.269
B1000200ema1.310.234
B1000200student1.310.233
D1000166ema1.250.218
D1000166student1.190.211
A1000200ema2.230.243
A1000200student2.370.241
A1000200ema1.580.201
A1000200student1.580.201
B1000200ema1.450.229
B1000200student1.450.229
D1000166ema1.190.222
D1000166student1.190.222
ODE-init → TDM1000500ema1.650.262
ODE-init → TDM1000500student1.640.264
ODE-init → TDM1000500ema1.560.265
ODE-init → TDM1000500student1.510.262
锐度 = 灰度拉普拉斯方差(原图缩到短边 512 后算)/ 教师同条同种子,几何平均(1 = 和教师一样锐;未训练学生发糊约 0.2)。种子间差异 = 同条各种子两两像素 L1(缩到 256×256、像素值 0–1),均值;明显低于教师说明坍缩。 锐度明显高于教师可能是过饱和 / 高对比,要结合下面的图看。

训练内预览(训练进程自己出的 4 步图)

B · DMD2 + ODE 展开 arm_B_1006 · 22 张,iter 100–1230
100
学生 4 步该 prompt 的训练原图
200
学生 4 步该 prompt 的训练原图
300
学生 4 步该 prompt 的训练原图
400
学生 4 步该 prompt 的训练原图
500
学生 4 步该 prompt 的训练原图
600
学生 4 步该 prompt 的训练原图
780
学生 4 步该 prompt 的训练原图
810
学生 4 步该 prompt 的训练原图
840
学生 4 步该 prompt 的训练原图
870
学生 4 步该 prompt 的训练原图
900
学生 4 步该 prompt 的训练原图
930
学生 4 步该 prompt 的训练原图
960
学生 4 步该 prompt 的训练原图
990
学生 4 步该 prompt 的训练原图
1020
学生 4 步该 prompt 的训练原图
1050
学生 4 步该 prompt 的训练原图
1080
学生 4 步该 prompt 的训练原图
1110
学生 4 步该 prompt 的训练原图
1140
学生 4 步该 prompt 的训练原图
1170
学生 4 步该 prompt 的训练原图
1200
学生 4 步该 prompt 的训练原图
1230
学生 4 步该 prompt 的训练原图
D · DP-DMD arm_D_1006 · 14 张,iter 300–1110
300
学生 4 步该 prompt 的训练原图
600
学生 4 步该 prompt 的训练原图
780
学生 4 步该 prompt 的训练原图
810
学生 4 步该 prompt 的训练原图
840
学生 4 步该 prompt 的训练原图
870
学生 4 步该 prompt 的训练原图
900
学生 4 步该 prompt 的训练原图
930
学生 4 步该 prompt 的训练原图
960
学生 4 步该 prompt 的训练原图
990
学生 4 步该 prompt 的训练原图
1020
学生 4 步该 prompt 的训练原图
1050
学生 4 步该 prompt 的训练原图
1080
学生 4 步该 prompt 的训练原图
1110
学生 4 步该 prompt 的训练原图
A · 上一轮配方 arm_A_s3_1007 · 33 张,iter 30–990
30
学生 4 步该 prompt 的训练原图
60
学生 4 步该 prompt 的训练原图
90
学生 4 步该 prompt 的训练原图
120
学生 4 步该 prompt 的训练原图
150
学生 4 步该 prompt 的训练原图
180
学生 4 步该 prompt 的训练原图
210
学生 4 步该 prompt 的训练原图
240
学生 4 步该 prompt 的训练原图
270
学生 4 步该 prompt 的训练原图
300
学生 4 步该 prompt 的训练原图
330
学生 4 步该 prompt 的训练原图
360
学生 4 步该 prompt 的训练原图
390
学生 4 步该 prompt 的训练原图
420
学生 4 步该 prompt 的训练原图
450
学生 4 步该 prompt 的训练原图
480
学生 4 步该 prompt 的训练原图
510
学生 4 步该 prompt 的训练原图
540
学生 4 步该 prompt 的训练原图
570
学生 4 步该 prompt 的训练原图
600
学生 4 步该 prompt 的训练原图
630
学生 4 步该 prompt 的训练原图
660
学生 4 步该 prompt 的训练原图
690
学生 4 步该 prompt 的训练原图
720
学生 4 步该 prompt 的训练原图
750
学生 4 步该 prompt 的训练原图
780
学生 4 步该 prompt 的训练原图
810
学生 4 步该 prompt 的训练原图
840
学生 4 步该 prompt 的训练原图
870
学生 4 步该 prompt 的训练原图
900
学生 4 步该 prompt 的训练原图
930
学生 4 步该 prompt 的训练原图
960
学生 4 步该 prompt 的训练原图
990
学生 4 步该 prompt 的训练原图
C · B + DMDO arm_C_s3_1007 · 15 张,iter 30–450
30
学生 4 步该 prompt 的训练原图
60
学生 4 步该 prompt 的训练原图
90
学生 4 步该 prompt 的训练原图
120
学生 4 步该 prompt 的训练原图
150
学生 4 步该 prompt 的训练原图
180
学生 4 步该 prompt 的训练原图
210
学生 4 步该 prompt 的训练原图
240
学生 4 步该 prompt 的训练原图
270
学生 4 步该 prompt 的训练原图
300
学生 4 步该 prompt 的训练原图
330
学生 4 步该 prompt 的训练原图
360
学生 4 步该 prompt 的训练原图
390
学生 4 步该 prompt 的训练原图
420
学生 4 步该 prompt 的训练原图
450
学生 4 步该 prompt 的训练原图
A · 配方 2 arm_A_r2_1011 · 33 张,iter 30–990
30
学生 4 步该 prompt 的训练原图
60
学生 4 步该 prompt 的训练原图
90
学生 4 步该 prompt 的训练原图
120
学生 4 步该 prompt 的训练原图
150
学生 4 步该 prompt 的训练原图
180
学生 4 步该 prompt 的训练原图
210
学生 4 步该 prompt 的训练原图
240
学生 4 步该 prompt 的训练原图
270
学生 4 步该 prompt 的训练原图
300
学生 4 步该 prompt 的训练原图
330
学生 4 步该 prompt 的训练原图
360
学生 4 步该 prompt 的训练原图
390
学生 4 步该 prompt 的训练原图
420
学生 4 步该 prompt 的训练原图
450
学生 4 步该 prompt 的训练原图
480
学生 4 步该 prompt 的训练原图
510
学生 4 步该 prompt 的训练原图
540
学生 4 步该 prompt 的训练原图
570
学生 4 步该 prompt 的训练原图
600
学生 4 步该 prompt 的训练原图
630
学生 4 步该 prompt 的训练原图
660
学生 4 步该 prompt 的训练原图
690
学生 4 步该 prompt 的训练原图
720
学生 4 步该 prompt 的训练原图
750
学生 4 步该 prompt 的训练原图
780
学生 4 步该 prompt 的训练原图
810
学生 4 步该 prompt 的训练原图
840
学生 4 步该 prompt 的训练原图
870
学生 4 步该 prompt 的训练原图
900
学生 4 步该 prompt 的训练原图
930
学生 4 步该 prompt 的训练原图
960
学生 4 步该 prompt 的训练原图
990
学生 4 步该 prompt 的训练原图
B · 配方 2 arm_B_r2_1011 · 33 张,iter 30–990
30
学生 4 步该 prompt 的训练原图
60
学生 4 步该 prompt 的训练原图
90
学生 4 步该 prompt 的训练原图
120
学生 4 步该 prompt 的训练原图
150
学生 4 步该 prompt 的训练原图
180
学生 4 步该 prompt 的训练原图
210
学生 4 步该 prompt 的训练原图
240
学生 4 步该 prompt 的训练原图
270
学生 4 步该 prompt 的训练原图
300
学生 4 步该 prompt 的训练原图
330
学生 4 步该 prompt 的训练原图
360
学生 4 步该 prompt 的训练原图
390
学生 4 步该 prompt 的训练原图
420
学生 4 步该 prompt 的训练原图
450
学生 4 步该 prompt 的训练原图
480
学生 4 步该 prompt 的训练原图
510
学生 4 步该 prompt 的训练原图
540
学生 4 步该 prompt 的训练原图
570
学生 4 步该 prompt 的训练原图
600
学生 4 步该 prompt 的训练原图
630
学生 4 步该 prompt 的训练原图
660
学生 4 步该 prompt 的训练原图
690
学生 4 步该 prompt 的训练原图
720
学生 4 步该 prompt 的训练原图
750
学生 4 步该 prompt 的训练原图
780
学生 4 步该 prompt 的训练原图
810
学生 4 步该 prompt 的训练原图
840
学生 4 步该 prompt 的训练原图
870
学生 4 步该 prompt 的训练原图
900
学生 4 步该 prompt 的训练原图
930
学生 4 步该 prompt 的训练原图
960
学生 4 步该 prompt 的训练原图
990
学生 4 步该 prompt 的训练原图
ODE-init(前置阶段本身) odeinit_s3_1007 · 17 张,iter 1–480
1
学生 4 步该 prompt 的训练原图
30
学生 4 步该 prompt 的训练原图
60
学生 4 步该 prompt 的训练原图
90
学生 4 步该 prompt 的训练原图
120
学生 4 步该 prompt 的训练原图
150
学生 4 步该 prompt 的训练原图
180
学生 4 步该 prompt 的训练原图
210
学生 4 步该 prompt 的训练原图
240
学生 4 步该 prompt 的训练原图
270
学生 4 步该 prompt 的训练原图
300
学生 4 步该 prompt 的训练原图
330
学生 4 步该 prompt 的训练原图
360
学生 4 步该 prompt 的训练原图
390
学生 4 步该 prompt 的训练原图
420
学生 4 步该 prompt 的训练原图
450
学生 4 步该 prompt 的训练原图
480
学生 4 步该 prompt 的训练原图
ODE-init → TDM odeinit_TDM_s3_1007 · 33 张,iter 30–990
30
学生 4 步该 prompt 的训练原图
60
学生 4 步该 prompt 的训练原图
90
学生 4 步该 prompt 的训练原图
120
学生 4 步该 prompt 的训练原图
150
学生 4 步该 prompt 的训练原图
180
学生 4 步该 prompt 的训练原图
210
学生 4 步该 prompt 的训练原图
240
学生 4 步该 prompt 的训练原图
270
学生 4 步该 prompt 的训练原图
300
学生 4 步该 prompt 的训练原图
330
学生 4 步该 prompt 的训练原图
360
学生 4 步该 prompt 的训练原图
390
学生 4 步该 prompt 的训练原图
420
学生 4 步该 prompt 的训练原图
450
学生 4 步该 prompt 的训练原图
480
学生 4 步该 prompt 的训练原图
510
学生 4 步该 prompt 的训练原图
540
学生 4 步该 prompt 的训练原图
570
学生 4 步该 prompt 的训练原图
600
学生 4 步该 prompt 的训练原图
630
学生 4 步该 prompt 的训练原图
660
学生 4 步该 prompt 的训练原图
690
学生 4 步该 prompt 的训练原图
720
学生 4 步该 prompt 的训练原图
750
学生 4 步该 prompt 的训练原图
780
学生 4 步该 prompt 的训练原图
810
学生 4 步该 prompt 的训练原图
840
学生 4 步该 prompt 的训练原图
870
学生 4 步该 prompt 的训练原图
900
学生 4 步该 prompt 的训练原图
930
学生 4 步该 prompt 的训练原图
960
学生 4 步该 prompt 的训练原图
990
学生 4 步该 prompt 的训练原图
ODE-init → PDD(lr 1e-5) odeinit_PDD_s3_1007 · 20 张,iter 1–570
1
学生 4 步该 prompt 的训练原图
30
学生 4 步该 prompt 的训练原图
60
学生 4 步该 prompt 的训练原图
90
学生 4 步该 prompt 的训练原图
120
学生 4 步该 prompt 的训练原图
150
学生 4 步该 prompt 的训练原图
180
学生 4 步该 prompt 的训练原图
210
学生 4 步该 prompt 的训练原图
240
学生 4 步该 prompt 的训练原图
270
学生 4 步该 prompt 的训练原图
300
学生 4 步该 prompt 的训练原图
330
学生 4 步该 prompt 的训练原图
360
学生 4 步该 prompt 的训练原图
390
学生 4 步该 prompt 的训练原图
420
学生 4 步该 prompt 的训练原图
450
学生 4 步该 prompt 的训练原图
480
学生 4 步该 prompt 的训练原图
510
学生 4 步该 prompt 的训练原图
540
学生 4 步该 prompt 的训练原图
570
学生 4 步该 prompt 的训练原图
数字是训练步。10-06 晚起每 30 iter 一张;B / D 在 750 之前是每 100 / 300 iter 一张(当时预览间隔的配置没生效)。上图:学生从纯噪声走完整 4 步(与评测同一个采样函数;训练进程里是 bf16 的 student 权重,不是 EMA);下图:同一步训练样本的原图(同一个 prompt,作参照)。 prompt 每张都不同,不能横向比 prompt 难度;看的是有没有崩、过饱和、网格纹。训练没结束时,heldout 出图还没有,先看这里。点图看原图。

诊断记录(拿来下结论的图与数)

主线 exports/0028000 EMA 的 img cfg 响应(i2i,cfg_text 4,10-08) 2026-10-08 08:50 SGT · raw/diag_cfgimg_1008/

结论:cfg_img 有效、且单调——同种子下,2.5 档相对 1 档的画面改动(256×256 像素 L1)0.104,2.0 档 0.086,1.5 档 0.055。方向是往参考图拉:参考图里的细节被带进输出(xiuren 的红色袜口从 1.25–1.5 档起出现;2ehentai_1126 的背景从暗变成参考图那样的白底、粉色爱心和对话框回来);diff 模式下编辑被削弱(danbooru-diff 在 2.0 / 2.5 档提示词要加的内容变少、参考图原有的马赛克条回来)。到 2.5 档没有崩坏或明显伪影。

副作用:锐度随档位上升(相对 1 档:1.25 档 1.07、1.5 档 1.12、2.0 档 1.30、2.5 档 1.42),对比度略升(0.233 → 0.247),种子间差异下降(0.170 → 0.159 / 0.152,2.0 / 2.5 档约 −6% / −10%),饱和度基本不变(0.255–0.260)。

「离参考图 L1」平均几乎不动(0.181 → 0.184),因为各条方向不同:两条 2ehentai 和 diff 那条更贴近参考图,douyin 那条反而更远(看图是台面、地毯颜色变重,人物和构图不变)。story 模式本来就要改姿势,这个 L1 只能粗看,判断以网格图为准。样本只有 5 条 × 3 种子,没有人物一致性指标。

设置:exports/0028000 的 ema.safetensors(CFG 蒸馏正式版第一次发车会自动选的那一档);推理照 zhuoran 的主线评测(同一份 new_code 快照、InterleaveInferencer、两路真 CFG、41 步 = num_timesteps 42、静态 shift 3、cfg_interval [0, 1]、renorm 关、negative 空);cfg_text 固定 4,cfg_img 1 / 1.25 / 1.5 / 2 / 2.5;heldout15 的 5 条 i2i × 种子 42 / 100 / 1024,输出尺寸 = 各条 GT 尺寸;0–3 号卡,08:38–08:46。指标:离参考图 / 相对 1 档的像素 L1 在 256×256、像素值 0–1 下算;锐度 = 拉普拉斯方差(短边缩到 512)÷ 同条同种子 1 档;饱和度 = HSV 的 S 均值;对比度 = 亮度标准差。脚本、日志、逐张指标在 data/。

各档平均(5 条 i2i × 3 种子 = 15 张);参考图本身:饱和度 0.222、对比度 0.218
cfg_img离参考图 L1相对 1 档的改动 L1锐度 ÷ 1 档对比度饱和度种子间差异
1.00.181—1.000.2330.2550.170
1.250.1810.0331.070.2370.2580.169
1.50.1810.0551.120.2390.2600.167
2.00.1810.0861.300.2450.2580.159
2.50.1840.1041.420.2470.2560.152
各条的离参考图 L1(3 种子平均),cfg_img 1.0 → 2.5
条目1.01.251.52.02.5看图
2ehentai_00001062(story)0.1510.1490.1470.1420.144构图各档稳,色调略往参考图靠
2ehentai_00001126(story)0.3210.3170.3110.3010.303背景 / 画风往参考图靠(白底、爱心、对话框)
danbooru-diff_00000068(diff)0.0130.0120.0110.0090.009编辑变弱,参考图的马赛克条回来
douyin_00000351(story)0.2350.2440.2510.2640.274人物、构图不变,台面 / 地毯颜色变重
xiuren_00000357(story)0.1840.1840.1830.1890.189参考图的红色袜口从 1.25–1.5 档起出现
xiuren(story):列 = 参考图、cfg_img 1 / 1.25 / 1.5 / 2 / 2.5;行 = 种子 42 / 100 / 1024。参考图的红色袜口随档位出现。
2ehentai_00001126(story):背景从暗变成参考图的白底,粉色爱心、对话框回来;人物不变。
danbooru-diff_00000068(diff):档位越高编辑越弱,参考图原有的马赛克条回来。
douyin_00000351(story):每个种子的人物与构图各档都稳;档位越高台面、地毯颜色越重。
2ehentai_00001062(story):构图各档稳,色调略往参考图靠。
5 NFE:学生 4 步之后加噪再去噪 1 步,锯齿能不能消(10-08) 2026-10-08 01:20 SGT · raw/diag_fivestep_1008/

结论:能。学生 4 步出图后,给终图加新噪声到 τ=0.1,再让学生自己前向 1 次取 x̂0(共 5 次前向、不需要教师),锯齿指数 J:B 1.17 → 1.00(到教师水平)、D 1.63 → 1.33、ODE-init→TDM 0.88 → 0.72;锐度只略降(B 1.22 → 1.17、D 1.10 → 1.04、TDM 1.49 → 1.46),放大看边缘仍锐、构图不变,不是靠变糊。

学生这 1 步和教师 1 步(V2,带 CFG 嵌入)效果几乎一样(τ=0.1 时 J:B 1.00 vs 0.99、D 1.33 vs 1.34、TDM 0.72 vs 0.71)——学生本身是合格的低噪去噪器,锯齿来自末步一次从 t=0.625(B / D)或 0.5(TDM)跳到 0,而不是学生缺这个能力。

τ 越大越差:τ=0.3 时 J 回升(B 1.06、D 1.51、TDM 0.80),而且开始改动细节和结构(发丝走向、脸部阴影,TDM 鼻侧出现小红点)。不加新噪声、只在 4 步表末步前插一个时间点(V3,用学生自己预测的噪声)也能降 J(B 1.01–1.03、D ~1.39、TDM 0.76–0.80),但插得越高锐度越高(B 1.23 → 1.34、TDM 1.51 → 1.58),D / TDM 上不如 V1 τ=0.1 干净。

代价:推理从 4 次前向变 5 次(+25%),只用学生权重。没测的:i2i、多样性(V1 在 τ=0.1 加了新噪声)、更小的 τ(0.05)。

设置:heldout15 的 10 条 t2i × 种子 42 / 100 / 1024(30 张),与正式评测同种子同噪声;各组 1000 存档的 student 权重(不是 EMA),训练同款 bf16 推理;V1 / V2 的新噪声对所有方案用同一份(种子 11)。J = 解码图近 Nyquist(0.45–0.5 周期/像素)/ 中频(0.10–0.15)能量比,除以同条同种子教师 41 步(正式评测存图)的 J;锐度 = 拉普拉斯方差(短边缩到 512,与上面指标表同口径)/ 教师,几何平均。因为只有 t2i、bf16、student 权重,base 的锐度和上面指标表的数不完全一样。脚本与原始数据在 data/。

锯齿指数 J(教师 41 步 = 1)。base = 学生 4 步;V1 = 加新噪声到 τ 后学生 1 步;V2 = 加新噪声到 τ 后教师 1 步;V3 = 4 步表末步前插 t=τ(不加新噪声)
模型baseV1 τ=0.1V1 0.2V1 0.3V2 τ=0.1V2 0.2V2 0.3V3 t=0.1V3 0.2V3 0.3
B@1000(旧表,末步从 0.625)1.171.001.051.060.991.061.131.031.011.02
D@1000(旧表,末步从 0.625)1.631.331.481.511.341.511.601.401.401.38
ODE-init→TDM@1000(shift 3 表,末步从 0.5)0.880.720.730.800.710.790.890.760.760.80
锐度 / 教师(短边缩到 512 算拉普拉斯方差)
模型baseV1 τ=0.1V1 0.2V1 0.3V2 τ=0.1V2 0.2V2 0.3V3 t=0.1V3 0.2V3 0.3
B@10001.221.171.201.251.161.151.141.231.291.34
D@10001.101.041.051.101.031.031.031.101.161.22
ODE-init→TDM@10001.491.461.441.461.471.471.421.511.531.58
D@1000(3 倍放大,同 prompt 同噪声)。上排:学生 4 步 / V1 学生 τ=0.1 / V2 教师 τ=0.1;下排:V3 插 t=0.2 / V1 学生 τ=0.3 / V3 插 t=0.3。V1 与 V2 在 τ=0.1 几乎一样:发丝锯齿、彩边消失,构图不变;V3 仍留一点彩边;V1 τ=0.3 发丝走向开始变。
B@1000 真人图,排列同上。V1 / V2 在 τ=0.1 去掉波点边缘的彩色噪点。
ODE-init→TDM@1000,排列同上。原图只有轻微彩边,τ=0.1 去掉;V1 τ=0.3 改动了脸部阴影,鼻侧出现小红点。
B@1000 动漫图,排列同上。V1 / V2 在 τ=0.1 去掉金边上的彩色噪点;τ=0.3 时金边细节开始变。
学生出图锯齿的来源(B / D / TDM,10-07) 2026-10-07 22:50 SGT · raw/diag_jaggies_1007/

已确认:锯齿(发丝锯齿、皮肤排线、彩色镶边)表现为学生终图 latent 里残留的一层「类白噪声」——在教师终图的 latent 上加白噪声就能复现同样的外观和频谱形状。它在低噪声段(τ ≲ 0.2)能被教师修掉:把学生图加噪到 τ=0.2 再让教师走回 0,B 的锯齿指数降到教师水平,构图不变;D 的从 2.36 降到 1.6 左右后不再下降(看图剩下的是线条本身偏粗硬)。学生末步对输入噪声的透传增益约为教师的 2 倍(B / D / TDM 2.0–2.2 倍,ODE-init 1.5 倍)。核对过的 DMD 公式与梯度路径没有发现算错。

已否定:「训练里 τ 很少落到低段,所以多采低 τ 就能纠正」。因果检验从 B@1000 续训 250 iter、只把 VSD τ 从 shift 5 改成均匀:锯齿指数对照 1.16、均匀 1.58(起点 1.18),锐度对照 1.09、均匀 1.36,肉眼也更糟(见最后两张图)。可能的原因(未分开验证):低 τ 的 DMD 更新只有小部分指向去残留(τ ≤ 0.1 时余弦 0.2–0.3),更新能量约 75% 在高频,且 x0 归一化下低 τ 的更新幅值约为 τ=0.5 时的 2 倍,多采低 τ 等于多灌高频;另外教师 3750 的 CFG 嵌入是在 shift 3 下训的(t<0.2 只占 7.7%),低 τ 时教师的 CFG 推力未必可靠,与锐度上升一致。

锯齿指数 J = 解码图近 Nyquist(0.45–0.5 周期/像素)能量 / 中频(0.10–0.15)能量,除以同条同种子教师 41 步的 J(1 = 教师水平)。旧指标「8 px 网格相位」抓不到这种残留。第 1 张表的 J:8 条 t2i,按诊断进程里用 bf16 现出的教师 41 步归一;第 3 张表的 J:10 条 t2i × 3 种子,按正式评测存的教师图(fp32 建网络 + bf16 autocast)归一——两张表 J 的绝对值不能互比,表内可比。第 3 张表的「锐度」按原分辨率算,和上面指标表(缩到短边 512)口径不同。除复现图(fig1)第 3 行用的是 EMA 的正式评测存图外,诊断里的学生都用 student 权重(不是 EMA),按训练同款 bf16 推理。脚本与原始数据在 probe/、causal/。

锯齿指数 J:学生终图,及把它加噪到 τ 后让教师 12 步 Euler 走回 0(τ ≤ 0.2 时构图不变);8 条 t2i,与正式评测同种子同噪声
模型学生教师修 τ=0.05τ=0.1τ=0.15τ=0.2τ=0.3τ=0.5末步噪声透传增益(学生 / 教师)
B@10001.591.411.211.091.020.980.930.77 / 0.37
D@10002.362.091.791.641.621.621.590.70 / 0.34
ODE-init→TDM@10001.171.010.900.860.850.840.850.90 / 0.40
ODE-init@5000.980.890.780.710.680.640.600.72 / 0.49
真实 DMD 更新(教师 − fake,各 run 1000 存档的 fake)随 τ:与「去残留方向」(−(学生 − 教师 τ=0.2 修复))的余弦、更新幅值、高频能量占比;8 条 × 3 次噪声平均
τ0.020.060.10.160.20.30.50.70.9
余弦(B,x0 归一化)+0.29+0.24+0.21+0.16+0.13+0.06+0.01≈0≈0
余弦(D,x_t 归一化)+0.26+0.19+0.15+0.09+0.06≈0−0.02−0.01−0.01
更新幅值 rms(B)0.760.780.770.710.660.540.370.300.34
高频能量占比(B)0.760.760.750.750.750.730.650.510.20
因果检验:后两行都从 B@1000 起各续训 250 iter(50 次学生更新),只差 VSD τ 分布(数据同分布、样本不同);10 条 t2i × 种子 42 / 100 / 1024
模型JJ(动漫 / 真人)教师从 τ=0.15 修后的 J锐度 / 教师(原分辨率)
B@1000(起点)1.181.18 / 1.170.821.13
B@1250,shift 5(对照 = arm_B_1006 自己续训)1.161.22 / 1.100.821.09
B@1250,τ 均匀(diagB_tauU_1007)1.581.62 / 1.541.111.36
因果检验(3 倍放大,同 prompt 同噪声):B@1000 起点 / 原配置 shift 5 续到 1250 / 只改 τ 均匀续到 1250。均匀 τ 的金边与布料颗粒、碎边更重。
同上,真人图:均匀 τ 的皮肤出现细颗粒、波点边缘更碎。
复现:从教师 41 步终图(动漫 d011,种子 42,正式评测存图)裁一块 256 px,用 VAE 编码成 latent(16×32×32,std 0.88),对 latent 做不同的人为扰动再解码,看哪种扰动能造出学生那样的锯齿(2 倍最近邻放大)。第 1 行:教师原图 / 不加扰动直接重建(验证 VAE 本身干净)/ latent 每个元素加 σ=0.15 白噪声 / 加 σ=0.3 白噪声;第 2 行:latent 高斯模糊(模拟预测「平均图」,对应未训练学生的网格糊)/ 模糊后把高频放大 1.5 倍 / 直接锐化(高频 ×2)/ 模糊后提对比;第 3 行:保留低频、高频换成等能量随机噪声 / B@1000、D@1000、TDM@1000 的 EMA 评测图同位置裁块(同 prompt 同种子,构图不同,只比纹理)。加白噪声的两格在外观和频谱形状(近 Nyquist 能量多、0.3 周期/像素附近少)上都与 B / D 最像;高频换噪声的频谱也是这个形状,但图碎成色块;模糊只出网格糊;锐化只变锐、边缘仍平滑。
D@1000(3 倍放大):学生终图 / 加噪到 τ=0.1、0.2、0.5 后教师走回 0 / 教师 41 步(同噪声,构图不同)。τ=0.1 时锯齿、彩边、皮肤排线基本消失,构图与人物不变;τ=0.5 开始改动结构。
B@1000 同上(衣服金边的彩色噪点与锯齿在 τ=0.1–0.2 修掉)。
B@1000 真人图(3 倍放大):学生终图 / 教师从 τ=0.1、0.2 修 / 教师 41 步。波点边缘的彩色噪点在 τ=0.1 修掉。
ODE-init→TDM@1000(3 倍放大):学生终图 / 教师从 τ=0.1、0.2 修 / 教师 41 步。同一类残留,但轻得多(发丝边的淡彩边),τ=0.1 修掉。

出图对比(同 prompt、同种子)

种子 方法 权重 任务 训练步 图宽
×
←→ 换蒸馏算法(在勾选的方法里)T 教师R 未训练 4 步 G GT↑↓ 换 prompt[] 换训练步W EMA / student S 换种子点图 1:1Esc 关闭新标签页打开原图 ↗