---
license: cc-by-4.0
library_name: mlx
tags:
- mlx
- native-mlx
- apple-silicon
- medical-imaging
- mri
- ct
- brain
- head
- segmentation
- nnunet
- research
language:
- en
inference: false
pipeline_tag: image-segmentation
---
# SIAM · Head tissue segmentation
Segment brain and head tissues from any 3D head MRI or CT with SIAM v0.3, locally on Apple Silicon.
> **SIAM is the work of Romain Valabregue and co-authors.** The model, its training method and the weights are theirs: see the original repository, [github.com/romainVala/SIAM](https://github.com/romainVala/SIAM), and the paper, [arXiv:2605.02737](https://arxiv.org/abs/2605.02737). This repository only repackages their released weights ([Zenodo 17733431](https://zenodo.org/records/17733431)) for MLX on Apple Silicon. Please cite their paper and star their repository if SIAM is useful to you.
[Original SIAM repository](https://github.com/romainVala/SIAM) · [SIAM paper](https://arxiv.org/abs/2605.02737) · [Original weights](https://zenodo.org/records/17733431) · [nnunet-mlx runtime](https://github.com/MedMLX/nnunet-mlx) · [Files](https://huggingface.co/MedMLX/siam/tree/main)
SIAM v0.3 segmentations produced by this MLX port (five-fold ensemble); the 3D view is a cutaway of the predicted label surfaces. Left: full-head T1 from [OpenNeuro ds000001](https://openneuro.org/datasets/ds000001), sub-01 (CC0, defaced). Right: glioma case 100 from Bartnik et al., [Zenodo 22205631](https://doi.org/10.5281/zenodo.22205631) (CC-BY-4.0, skull-stripped), the same model applied to each contrast.
| Input | Output |
| :--- | :--- |
| One 3D head volume (T1, T2, FLAIR, CT, ...) · NIfTI | 17 tissue labels and an anomaly label |
**Apple Silicon · Metal · Python 3.13**
[SIAM](https://github.com/romainVala/SIAM) (Segment It All Model) by Valabregue et al. is an nnU-Net residual-encoder network trained on synthetic images generated from a few high-quality head templates, so it does not depend on the input contrast. Version 0.3 adds an `Anomalies` label for pathology. It predicts at 0.75 mm isotropic and returns labels on the input grid.
## Quick start
```bash
uv venv --python 3.13
source .venv/bin/activate
uv pip install "nnunet-mlx>=0.7.1"
```
```python
from nnunet_mlx.named_models import siam
result = siam(image_path="head.nii.gz", output_dir="outputs")
print(result["outputs"]["mask"])
```
Without `weights_path`, the runner downloads this repository into the shared MedMLX cache on first use. `voxel_size=` reproduces SIAM's `-voxelsize` option for small heads, such as newborns; `fold=` selects one fold instead of the ensemble.
The runner follows the inference of the original [`siam-pred -m 0`](https://github.com/romainVala/SIAM): the volume is reoriented to RAS voxel order without interpolation, all folds are ensembled with Gaussian sliding windows at a 0.5 step and no mirroring, and the label map is reoriented back exactly onto the input grid.
## Labels
| Value | Label | Value | Label |
| ---: | :--- | ---: | :--- |
| 1 | GM (cortical grey matter) | 10 | Accu (accumbens) |
| 2 | WM | 11 | Amyg (amygdala) |
| 3 | CSF | 12 | Hippo (hippocampus) |
| 4 | CSFv (ventricles) | 13 | Dura |
| 5 | cerGM (cerebellar grey matter) | 14 | vascular |
| 6 | Thal (thalamus) | 15 | Skull |
| 7 | Pal (pallidum) | 16 | Head (extracranial soft tissue) |
| 8 | Put (putamen) | 17 | Anomalies |
| 9 | Caud (caudate) | | |
## Conversion
Converted from the five-fold release on [Zenodo 17733431](https://zenodo.org/records/17733431) (`pred_DS108_LcsfP_Ano`, trainer `nnUNetTrainerNoDA`, `3d_fullres`, epoch 4000). Network weights are stored as float32 safetensors; no retraining, pruning or quantization. Optimizer state and the duplicate decoder aliases of encoder weights are not carried over. To reproduce from the original release:
```bash
uv pip install "nnunet-mlx[convert]"
nnunet-mlx convert pred_DS108_LcsfP_Ano siam
```
Checked against PyTorch nnU-Net 2.8.1 (CPU, float32) running the same inference as `siam-pred`: all five folds, 0.5-step Gaussian sliding windows, no mirroring. On a full-head T1 MRI, 99.995% of voxels receive the same label, every label has a Dice of at least 0.9996 except `Anomalies` (0.998, under 0.5 mL in that healthy head), and class probabilities differ by at most 0.004. On fold 0, a skull-stripped glioma T1 in LPS orientation, which exercises the reorientation path, gives 99.990% voxel agreement with a minimum Dice of 0.9995.
A typical head MRI needs about 16 GB of unified memory; memory grows with the field of view.
## Use & license
For research and education. Not validated for clinical use.
Weights: [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/), as released by the SIAM authors. Credit Valabregue et al. and cite the SIAM paper when you use these weights. Upstream code: [Apache-2.0](https://github.com/romainVala/SIAM/blob/main/LICENSE).
## Paper references
- [SIAM: Head and Brain MRI Segmentation from Few High-Quality Templates via Synthetic Training](https://arxiv.org/abs/2605.02737).
- [Framework: nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation](https://arxiv.org/abs/1809.10486).
## Citation
Please cite SIAM:
> Valabregue, R., Khemir, I., Bardinet, E., Rousseau, F., Auzias, G. & Dorent, R. (2026). SIAM: Head and Brain MRI Segmentation from Few High-Quality Templates via Synthetic Training. arXiv:2605.02737.
If you use MedMLX, please cite the [MedMLX paper](https://doi.org/10.64898/2026.10.28.26366762):
```bibtex
@article{sandoval2026medmlx,
title = {MedMLX: On-Device Medical Imaging AI for Apple Silicon},
author = {Sandoval, J. and Sandoval, A. and Saleem, A.},
journal = {medRxiv},
year = {2026},
doi = {10.64898/2026.10.28.26366762}
}
```