每个 case 三栏:原视频(要保留的动作/背景/运镜)· 参考图(要换进去的人)· 输出(模型结果)。原视频已裁到和输出同样的 5.17 秒窗口,方便逐帧对照。8 个 case 全部来自 scail2 的 merged_all 配对素材,同一套参数一次跑完,没有挑选。
模型是 full-finetune + DMD 蒸馏的 MiniMax-H3 Ref2VA(4 步)。我们做的改造是剪枝(51 个 adaln 投影按官方 rank-8 中心化 SVD 配方从 2688 维折到 8 维,66GB→40GB)+ FP8 量化(W8A8 动态激活,只量化 50 个 block 的 attn/ff 线性层)。抽检要回答的问题是:这两步压缩有没有把画质压坏。
| 配置(均含 sage attention + offload) | s/步(稳态) | 峰值显存 | 画质 |
|---|---|---|---|
| bf16 未量化(最初基线) | 51.7 | 23.3 GB | 基准 |
| int8 W8A16 权重量化 | 31.7 | 29.1 GB | 干净 |
| int8 W8A8 + compile | 14.8 | 23.1 GB | 干净 |
| FP8 W8A8 + compile(本页所用) | 14.0 | 19.5 GB | 干净 ✓ |
| NVFP4 W4A4 + compile | 11.5 | 18.9 GB | 可见伪影,已否决 ✗ |
相对最初 3.7× 提速。NVFP4 虽然最快,但脸部变平、毛领糊、腰带涂抹感明显——而且它的 PSNR 反而是三者里最高的(17.7 dB vs FP8 的 17.4、int8 的 17.1),说明在这个量级 PSNR 完全没有区分力(原生 bf16 对官方参考输出本身就只有 17.4 dB,那是扩散模型同 seed 下的运行间噪声地板),质量只能靠肉眼——所以有了这一页。
本页视频是不带 compile 跑的(这批 case 分辨率不一,torch.compile 每遇到新 shape 都要重编译,并行时会互相抢 CPU)。compile 只影响速度、不改变量化格式,画质与上表的 FP8 行一致。
这一组是压缩程度的直接对比:同样的输入、同样的种子,只换量化格式。作者参考输出是 h3-motioncontrol 仓库自带的 expected-s4.mp4,可以当"正确答案"用;bf16是我们跑的未量化版本,是我们这条链路的上限。重点看 NVFP4 那一栏:脸部变平、毛领糊成一片、腰带装饰涂抹感、手臂纹身糊成色斑——这就是我们否决它的原因,虽然它最快。