Release Notes
0.1.0 [2026-10-27]
Enhancements:
- Added pediatric brain MRI auto-defacing gear (
ped-auto-deface) using the CHOP D3b model (Familiar et al., AJNR 2025) re-trained onnnunetv22.8.1with a 5-fold ensemble (Dataset070_PedDeface,3d_fullres). - Added support for T1, T1-CE, T2, and FLAIR 3D NIfTI inputs (
.niior.nii.gz); 4D inputs are rejected before inference with a descriptive error. - Added
output_file_nameconfig option to customize the predicted face mask file name (defaultpred_face_mask.nii.gz). - Added
generate_montageconfig option to produce a 3×3 sagittal QC montage JPEG (<input name>_defaced_montage.jpg) of the defaced image. - Added
debugconfig option to enable verbose logging. - Added GPU-aware inference: uses CUDA when an NVIDIA GPU (driver 580+) is available, falls back to CPU automatically; the log reports which device is used.
- Added cross-validation postprocessing via
nnUNetv2_apply_postprocessingwhen the model ships apostprocessing.pkl. - Fixed output stem extraction to strip only
.nii.gzor.niiextensions, avoiding the v1rstripbug that truncated trailingn,i,g,zcharacters from file stems. - Added preservation of the input NIfTI header and data type for unscaled inputs; scaled inputs (with
scl_slope/scl_inter) are written asfloat32so zeroed face voxels read back as exactly0. - Added NIfTI content-sniffing to handle files whose extension does not match their actual compression (uncompressed
.nii.gzor gzip.nii). - Added
evaluation/ped_deface_evaluation.pyHierarchy Curator script for comparing v2 face masks against v1 outputs and manual ground truth with Dice, sensitivity, HD95, and volume-ratio metrics. - Added
evaluation/ped_deface_report.pyHierarchy Curator script for embedding spot-check montages into an HTML report as base64 data URIs. - Added
training/ped_deface_training.pyHierarchy Curator script to re-train the CHOP model on nnU-Net v2, with subject-level 5-fold cross-validation, checkpoint upload/resume, and progress charts.
Maintenance:
- Configured
python3.12runtime on a Chainguard wolfi base image (flywheel/python:3.12-wolfi-build). - Added
fw-gear>=0.3.7,<0.4andfw-file[nifti]>=4.2.3,<5as core dependencies. - Added
torch>=2.13(PyTorch CUDA 13.2 build) andnnunetv2==2.8.1as inference dependencies;torch>=2.13clearsCVE-2025-32434and related critical CVEs present in earlier torch releases. - Added security floor pins for
pillow>=13.0.0,urllib3>=2.8.0,certifi>=2026.10.19,requests>=2.33.0,filelock>=4.2.1,setuptools>=84.1.0,httpx2>=2.12.0,httpcore2>=2.10.0,fsspec>=2026.6.0to address transitive dependency CVEs. - Configured multi-stage
Dockerfilewithbase,build,dev,model, and production stages; model weights are installed from a Git LFS zip viannUNetv2_install_pretrained_model_from_zipand validated at build time. - Configured
uvfor dependency management withhatchlingas the build backend (PEP 621pyproject.toml). - Added CI configuration targeting a large GitLab runner with a 6-hour timeout to accommodate the CUDA torch image size.
- Added
pytesttest suite formain,montage,parser, andutilsmodules; evaluation and training curator scripts have their own test suites with synthetic data only.
Documentation:
- Added
README.mdwith full gear overview, input/output specifications, workflow diagram, use cases, model provenance, and FAQ. - Added
CONTRIBUTING.mdwith dependency management, linting, and merge-request instructions. - Added
training/README.mdrunbook covering recipe, checkpoint/resume behavior, config reference, output files, and ground-truth pairing rules. - Added
model/README.mddescribing model zip contents, Git LFS storage, and the build-time fold validation check. - Added
FAQ.mdplaceholder for common errors.