# Release validation The public adapter SHA-256 is `c26031b9e1932ae0e76b29ec894b49bb6f719a9ff997cf733eae8bbf443f9fb2`. The loader refuses a different adapter checksum, parameter inventory or shape. ## CPU checks — seven passed - Exact adapter SHA and 292 FP32 tensor inventory. - Rank-128 A/B pairs totaling 96,337,920 scalars. - Full 146 attention-projection base skeleton on the meta device: every inserted target name/shape matches the real saved adapter, without allocating model weights. - Zero-initialized residual and FP32 adapter storage. - Finite component-normalized advantages with invalid candidates excluded. - Warmup/cosine schedule endpoints. - Finite VESPO policy-loss gradients. ## Allocated-GPU portability canary — four passed The **new portable inference loader**, pinned local base copy, exact adapter and external codec were exercised on four GH200 GPUs under Slurm. Two short English and two short German generations cover both reference/no-reference paths. Each produced finite 48-kHz mono audio with 12 valid codec indices per frame. Outputs were kept in four SQLite containers, not loose audio files. The tested runtime was PyTorch 2.9.1+cu128, CUDA 12.8 and Transformers 5.14.1. The base loader uses BF16 SDPA; custom adapter multiplication remains FP32 at scale 1.0. A generic upstream missing-key warning concerns explicitly tied text and codebook output heads (the base implementation ties them to embeddings), not missing adapter tensors; all 292 adapter tensor names/shapes are checked. This is a functional loading/generation test, **not** a subjective quality evaluation or proof of voice identity. The separately completed 70-case matched listening evaluation provides the aggregate quality numbers in the model card. No fresh GPU training smoke is claimed for the public portable trainer's additional warm-start argument; original scientific core files are unchanged, while portability differences are documented in TRAINING.md. See [machine-readable validation](stats/validation.json).