- Keep only ATTN_QAT_TRAIN strict in the stage backend guard; preserve the
documented ATTN_QAT_INFER->FlashAttention fallback (+ regression tests)
- Resolve FSDP compute dtype from the recorded MixedPrecisionPolicy instead
of scanning parameter storage dtypes (+ FSDP regression tests)
- E2E: export/strict-reload the final stage-2 student, instantiate it via
the documented Kandinsky5DMDPipeline/Kandinsky5DMDConfig override,
generate deterministically, and compare MS-SSIM against a committed
reference (fail, not skip, when the reference is missing;
KANDINSKY5_E2E_WRITE_REFERENCE=1 bootstraps it)
- E2E: delete all input/output roots up front and explicitly disable
resume_from_checkpoint for both stages
- preprocess: path-specific ValueError on zero decoded frames, non-empty
manifest validation, fixture VideoWriter.isOpened() check (+ tests)
- Stage-boundary regression test driving Kandinsky5DmdDenoisingStage with a
backend spy; fails if the set_forward_context wrapper is removed
- distill_dmd_qat.sh now accepts a stage-1 DCP checkpoint, runs
dcp_to_diffusers --verify, and injects the export into all three
models.*.init_from overrides; README/YAML/finetune docs updated
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>