Skip to content

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 on nnunetv2 2.8.1 with a 5-fold ensemble (Dataset070_PedDeface, 3d_fullres).
  • Added support for T1, T1-CE, T2, and FLAIR 3D NIfTI inputs (.nii or .nii.gz); 4D inputs are rejected before inference with a descriptive error.
  • Added output_file_name config option to customize the predicted face mask file name (default pred_face_mask.nii.gz).
  • Added generate_montage config option to produce a 3×3 sagittal QC montage JPEG (<input name>_defaced_montage.jpg) of the defaced image.
  • Added debug config 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_postprocessing when the model ships a postprocessing.pkl.
  • Fixed output stem extraction to strip only .nii.gz or .nii extensions, avoiding the v1 rstrip bug that truncated trailing n, i, g, z characters 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 as float32 so zeroed face voxels read back as exactly 0.
  • Added NIfTI content-sniffing to handle files whose extension does not match their actual compression (uncompressed .nii.gz or gzip .nii).
  • Added evaluation/ped_deface_evaluation.py Hierarchy 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.py Hierarchy Curator script for embedding spot-check montages into an HTML report as base64 data URIs.
  • Added training/ped_deface_training.py Hierarchy 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 python 3.12 runtime on a Chainguard wolfi base image (flywheel/python:3.12-wolfi-build).
  • Added fw-gear>=0.3.7,<0.4 and fw-file[nifti]>=4.2.3,<5 as core dependencies.
  • Added torch>=2.13 (PyTorch CUDA 13.2 build) and nnunetv2==2.8.1 as inference dependencies; torch>=2.13 clears CVE-2025-32434 and 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.0 to address transitive dependency CVEs.
  • Configured multi-stage Dockerfile with base, build, dev, model, and production stages; model weights are installed from a Git LFS zip via nnUNetv2_install_pretrained_model_from_zip and validated at build time.
  • Configured uv for dependency management with hatchling as the build backend (PEP 621 pyproject.toml).
  • Added CI configuration targeting a large GitLab runner with a 6-hour timeout to accommodate the CUDA torch image size.
  • Added pytest test suite for main, montage, parser, and utils modules; evaluation and training curator scripts have their own test suites with synthetic data only.

Documentation:

  • Added README.md with full gear overview, input/output specifications, workflow diagram, use cases, model provenance, and FAQ.
  • Added CONTRIBUTING.md with dependency management, linting, and merge-request instructions.
  • Added training/README.md runbook covering recipe, checkpoint/resume behavior, config reference, output files, and ground-truth pairing rules.
  • Added model/README.md describing model zip contents, Git LFS storage, and the build-time fold validation check.
  • Added FAQ.md placeholder for common errors.