3D CT image synthesis with paired anatomical masks, driven by a rectified-flow latent diffusion model that samples a whole volume in 30 steps.
No providers recorded yet. Browse all providers
The appeal of synthetic CT is volume: a generator of annotated scans supplies training data no hospital can share. That collapses if each scan is expensive, and a 1000-step denoising chain over a 512 × 512 × 768 latent costs three minutes of sampling per volume on an H100.
MAISI-v2 removes the chain. Rather than reversing a stochastic noising process one small step at a time, it learns a time-dependent velocity field that transports noise to data along a path trained to be as straight as possible — a rectified flow. A near-linear trajectory is one an ODE solver can follow accurately in few evaluations, so 30 steps reach quality the predecessor needed 1000 for. Everything else stays put: the frozen MAISI autoencoder still compresses each volume by 4 × 4 × 4 into four latent channels, so only the generator in the middle changes.
Speed alone would trade one problem for another. Straight-line transport leaves the model less able to correct small errors mid-trajectory, and the errors that matter in a scan are the small ones — a pancreatic tumor is a few thousand voxels out of a hundred million, and a ControlNet that quietly drops it yields a mask-image pair whose label is a lie. MAISI-v2 trains against that failure with a region-specific contrastive loss. It was developed by NVIDIA with collaborators at the National Institutes of Health, the University of Oxford and the University of Arkansas for Medical Sciences, and published at AAAI 2026.
The diffusion U-Net runs four resolution levels at 64/128/256/512 channels with attention at the two coarsest, trained on roughly 11,000 usable CT scans — MAISI's corpus of over 10,000, plus the HN-SCC head-and-neck collection and an in-house set of 1,386 chest and abdomen scans — expanded to 107,000 images by downsampling to enrich low-resolution cases. Training took three weeks on 64 A100 80GB GPUs under AdamW in three stages: a 128³ pretraining pass, a main stage using bucketed data parallelism so same-shape volumes share a GPU and batch size need not collapse to one, and a rebalancing fine-tune. The ControlNet trained separately for two days on eight A100s against pseudo-labels from VISTA3D. On the unseen autoPET 2023 cohort, measured as 2D FID averaged over three orthogonal planes, MAISI-v2 at 30 steps scores 2.322 against 2.441 for the 1000-step predecessor and 4.776 for that predecessor cut to 30 steps with a DDIM sampler — the comparison that isolates what rectified flow buys. Sampling a 512³ volume takes 6 seconds plus 15 seconds of decoding on an H100, against 198 seconds before.
The headline use is augmenting scarce tumor cohorts. Adding mask-guided synthetic scans to real training data in five-fold Auto3DSeg experiments raised Dice on held-out tests for all five targets: 0.695 on liver tumor, 0.655 on lung tumor, 0.497 on pancreatic tumor, 0.491 on colon tumor and 0.537 on bone lesions, significantly on four of the five. Because it also accepts a user-supplied mask in its label vocabulary, groups can render counterfactual scans from anatomy they already have — enlarging a lesion, removing an organ, changing field of view. A hosted demo renders single volumes without a GPU.
MAISI-v2 is where rectified flow crossed into 3D medical synthesis, and NVIDIA has since reused the recipe for MR variants sharing the repository and training code. Source is Apache 2.0 and the CT weights carry the NVIDIA Open Model License. The limits: training covered CT alone, evaluation covered segmentation alone, and the largest volumes need 40 GB of GPU memory for inference and 80 GB for training. Field of view matters more than the interface suggests, and a numerically valid but out-of-distribution pairing of dimensions and spacing yields unusable output. Rectified-flow ControlNets also align tumors less reliably than their DDPM equivalents, a deficit the contrastive loss narrows rather than closes.
Much of this page is generated or calculated automatically. Flag anything that looks off and we will re-run it.