From a671dc95de8056e73fd2d1e51093bb4225281c1b Mon Sep 17 00:00:00 2001 From: Eric Kerfoot Date: Mon, 2 Jun 2025 00:01:53 +0100 Subject: [PATCH 1/7] Start of changelog update Signed-off-by: Eric Kerfoot --- CHANGELOG.md | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ffd773727f..e55550f9f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,164 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). ## [Unreleased] +## [1.5.0] - 2025-06-06 + +## Supported Dependency Versions + +This release adds support for NumPy 2.0 and PyTorch 2.6. We plan to add support for PyTorch 2.7 in an upcoming version once some compatibility issues have been addressed. + +As stated in the updated [README.md](./README.md) file, MONAI's policy for the support of dependency versions has been updated for clarity. + +MONAI will continue to support [currently supported versions of Python](https://devguide.python.org/versions), and for other dependencies the following apply: + +* Major releases of MONAI will have dependency versions stated for them. The current state of the `dev` branch in this repository is the unreleased development version of MONAI which typically will support current versions of dependencies and include updates and bug fixes to do so. +* PyTorch support covers [the current version](https://github.com/pytorch/pytorch/releases) plus three previous minor versions. If compatibility issues with a PyTorch version and other dependencies arise, support for a version may be delayed until a major release. +* Our support policy for other dependencies adheres for the most part to [SPEC0](https://scientific-python.org/specs/spec-0000), where dependency versions are supported where possible for up to two years. Discovered vulnerabilities or defects may require certain versions to be explicitly not supported. +* See the `requirements*.txt` files for dependency version information. + +## MAISI Update: Introducing MAISI Version maisi3d-rflow +We are excited to announce the release of MAISI Version _maisi3d-rflow_. This update brings significant improvements over the previous version, _maisi3d-ddpm_, with a remarkable 33x acceleration in latent diffusion model inference speed. The MAISI VAE remains unchanged. Here are the key differences: + 1. Scheduler Update: + + * _maisi3d-ddpm_: Uses the basic DDPM noise scheduler. + + * _maisi3d-rflow_: Introduces the Rectified Flow scheduler, allowing diffusion model inference to be 33 times faster. + 2. Training Data Preparation: + + * _maisi3d-ddpm_: Requires training images to be labeled with body regions (specifically “top_region_index” and “bottom_region_index”). + + * _maisi3d-rflow_: No such labeling is required, making it easier to prepare the training data. + 3. Image Quality: + + * For the released model weights, _maisi3d-rflow_ generates better-quality images for head regions and smaller output volumes compared to _maisi3d-ddpm_. For other regions, the image quality is comparable. + 4. Modality Input: + + * _maisi3d-rflow_ adds a new modality input to the diffusion model, offering flexibility for future extensions to other modalities. Currently, this input is set to always equal 1, as this version supports CT generation exclusively. + + +## What's Changed +### Added +* Add platform-specific constraints to setup.cfg (#8260) +* Add PythonicWorkflow (#8151) +* Add SM architecture version check (#8199) +* Add MedNext implementation (#8004) +* Added a top button to CONSTRIBUTING.md by @Akhsuna07 in https://github.com/Project-MONAI/MONAI/pull/8163 +* Add wendell-hom to user list to trigger blossom-ci [skip ci] by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8184 +* Adding CODEOWNERS by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8457 +* Restormer Implementation by @phisanti in https://github.com/Project-MONAI/MONAI/pull/8312 +* Add rectified flow noise scheduler for accelerated diffusion model by @Can-Zhao in https://github.com/Project-MONAI/MONAI/pull/8374 +* add prediction type for rflow scheduler by @Can-Zhao in https://github.com/Project-MONAI/MONAI/pull/8386 +* Enable gpu load nifti by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8188 +* Add Average Precision to metrics by @thibaultdvx in https://github.com/Project-MONAI/MONAI/pull/8089 +* Implementation of a Masked Autoencoder for representation learning by @Lucas-rbnt in https://github.com/Project-MONAI/MONAI/pull/8152 +* Implement TorchIO transforms wrapper analogous to TorchVision transfo… by @SomeUserName1 in https://github.com/Project-MONAI/MONAI/pull/7579 +* 8328 nnunet bundle integration by @SimoneBendazzoli93 in https://github.com/Project-MONAI/MONAI/pull/8329 +* Adding Support Policy + Doc Updates by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8458 +* Classifier free guidance by @virginiafdez in https://github.com/Project-MONAI/MONAI/pull/8460 + +### Fixed +* Fix unittest by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8161 +* Fix Ruff Numpy2 deprecation rules by @jamesobutler in https://github.com/Project-MONAI/MONAI/pull/8179 +* Fix `torch.load()` frequently warning in PersistentDataset and GDSDataset by @bnbqq8 in https://github.com/Project-MONAI/MONAI/pull/8177 +* Fix the logging of a nested dictionary metric in MLflow by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8169 +* Fix ImageFilter to allow Gaussian filter without filter_size by @EloiNavet in https://github.com/Project-MONAI/MONAI/pull/8189 +* Fixed fold_constants, test_handler switched to onnx by @borisfom in https://github.com/Project-MONAI/MONAI/pull/8211 +* Fixing a minor bug in a test by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8223 +* Fix TypeError in meshgrid by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8252 +* bug: Fix PatchMerging duplicate merging by @pooya-mohammadi in https://github.com/Project-MONAI/MONAI/pull/8285 +* Fix test load image issue by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8297 +* Fix bundle download error from ngc source by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8307 +* Fix deprecated usage in zarr by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8313 +* 8201 Fix DataFrame subsets indexing in CSVDataset() by @bartosz-grabowski in https://github.com/Project-MONAI/MONAI/pull/8351 +* Fix `packaging` imports in version comparison logic by @nkaenzig in https://github.com/Project-MONAI/MONAI/pull/8347 +* Fix CommonKeys docstring by @bartosz-grabowski in https://github.com/Project-MONAI/MONAI/pull/8342 +* Fix: correctly apply fftshift to real-valued data inputs by @XwK-P in https://github.com/Project-MONAI/MONAI/pull/8407 +* Fix OptionalImportError: required package `openslide` is not installed by @dzenanz in https://github.com/Project-MONAI/MONAI/pull/8419 +* :bug: fix cosine noise scheduler by @slavaheroes in https://github.com/Project-MONAI/MONAI/pull/8427 +* Fix AutoencoderKL docstrings. by @virginiafdez in https://github.com/Project-MONAI/MONAI/pull/8445 +* Inverse Threading Fix by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8418 +* 8267 fix normalize intensity by @advcu987 in https://github.com/Project-MONAI/MONAI/pull/8286 +* 8354 fix path at test onnx trt export by @garciadias in https://github.com/Project-MONAI/MONAI/pull/8361 + +### Changed +* [DOC] Update README.md by @Smoothengineer in https://github.com/Project-MONAI/MONAI/pull/8157 +* Streamlined Rearrange in SpatialAttentionBlock by @borisfom in https://github.com/Project-MONAI/MONAI/pull/8130 +* Optimize VISTA3D by @binliunls in https://github.com/Project-MONAI/MONAI/pull/8123 +* Skip torch trt convert test with torch newer than or equal to 2.5.0 by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8165 +* Enable redirection of all loggers by configuring a FileHandler within the bundle by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8142 +* Apply pyupgrade fixes for Python 3.9+ syntax by @jamesobutler in https://github.com/Project-MONAI/MONAI/pull/8150 +* Update base image to 2410 by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8164 +* TRT support for MAISI by @borisfom in https://github.com/Project-MONAI/MONAI/pull/8153 +* 8134 Add unit test for responsive inference by @Nic-Ma in https://github.com/Project-MONAI/MONAI/pull/8146 +* SwinUNETR refactor to accept additional parameters by @EloiNavet in https://github.com/Project-MONAI/MONAI/pull/8212 +* Allow an arbitrary mask to be used in the self attention by @Lucas-rbnt in https://github.com/Project-MONAI/MONAI/pull/8235 +* Bump codecov/codecov-action from 4 to 5 by @dependabot in https://github.com/Project-MONAI/MONAI/pull/8245 +* Docs: update brats classes description by @vectorvp in https://github.com/Project-MONAI/MONAI/pull/8246 +* Change default value of `patch_norm` to False in `SwinUNETR` by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8249 +* Modify Dice, Jaccard and Tversky losses by @zifuwanggg in https://github.com/Project-MONAI/MONAI/pull/8138 +* Modify Workflow to Allow IterableDataset Inputs by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8263 +* enhance download_and_extract by @Jerome-Hsieh in https://github.com/Project-MONAI/MONAI/pull/8216 +* 8274-mitigate-gpu-load-check by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8275 +* 8274 Relax gpu load check by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8282 +* Using LocalStore in Zarr v3 by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8299 +* update pydicom reader to enable gpu load by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8283 +* Zarr compression tests only with versions before 3.0 by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8319 +* Changing utils.py to test_utils.py by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8335 +* 8185 - Refactor test by @garciadias in https://github.com/Project-MONAI/MONAI/pull/8231 +* Recursive Item Mapping for Nested Lists in Compose by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8187 +* Bump min torch to 1.13.1 to mitigate CVE-2022-45907 unsafe usage of eval by @jamesobutler in https://github.com/Project-MONAI/MONAI/pull/8296 +* Inferer modification - save_intermediates clashes with latent shape adjustment in latent diffusion inferers by @virginiafdez in https://github.com/Project-MONAI/MONAI/pull/8343 +* Removed outdated `torch` version checks from transform functions by @nkaenzig in https://github.com/Project-MONAI/MONAI/pull/8359 +* Solves path problem in test_bundle_trt_export.py by @garciadias in https://github.com/Project-MONAI/MONAI/pull/8357 +* Modify ControlNet inferer so that it takes in context when the diffus… by @virginiafdez in https://github.com/Project-MONAI/MONAI/pull/8360 +* Update monaihosting download method by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8364 +* Bump torch minimum to mitigate CVE-2024-31580 & CVE-2024-31583 and enable numpy 2 compatibility by @jamesobutler in https://github.com/Project-MONAI/MONAI/pull/8368 +* Auto3DSeg algo_template hash update by @monai-bot in https://github.com/Project-MONAI/MONAI/pull/8378 +* Enable Pytorch 2.6 by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8309 +* Auto3DSeg algo_template hash update by @monai-bot in https://github.com/Project-MONAI/MONAI/pull/8393 +* Auto3DSeg algo_template hash update by @monai-bot in https://github.com/Project-MONAI/MONAI/pull/8397 +* Update Dice Metric Docs by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8388 +* Auto3DSeg algo_template hash update by @monai-bot in https://github.com/Project-MONAI/MONAI/pull/8406 +* 8394 Update bundle download API by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8403 +* Add Skip test in TestTranschex by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8416 +* Update get latest bundle version function by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8420 +* Temporarily Restrict setuptools Version to 79.0.1 by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8441 +* Update default overlap value in occlusion_sensitivity to 0.6 by @kavin2003 in https://github.com/Project-MONAI/MONAI/pull/8446 +* Enable code coverage comments on PRs in codecov configuration by @chrislevn in https://github.com/Project-MONAI/MONAI/pull/8402 +* Migrate to modern Python Logger API by @emmanuel-ferdman in https://github.com/Project-MONAI/MONAI/pull/8449 + +### Deprecated +### Removed +* Remove deprecated functionality for v1.5 by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8430 +* Remove deprecated `return_state_dict ` in bundle `load` by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8454 +* Remove deprecated `net_name` in test file by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8461 +* Remove unused test cases in bundle load by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8463 +* selfattention block: Remove the fc linear layer if it is not used by @johnzielke in https://github.com/Project-MONAI/MONAI/pull/8325 + + +## New Contributors +* @Smoothengineer made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8157 +* @Akhsuna07 made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8163 +* @bnbqq8 made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8177 +* @EloiNavet made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8189 +* @vectorvp made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8246 +* @zifuwanggg made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8138 +* @Jerome-Hsieh made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8216 +* @pooya-mohammadi made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8285 +* @advcu987 made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8286 +* @garciadias made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8231 +* @nkaenzig made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8347 +* @bartosz-grabowski made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8342 +* @thibaultdvx made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8089 +* @phisanti made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8312 +* @SimoneBendazzoli93 made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8329 +* @XwK-P made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8407 +* @slavaheroes made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8427 +* @kavin2003 made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8446 +* @chrislevn made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8402 +* @emmanuel-ferdman made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8449 + + ## [1.4.0] - 2024-10-17 ## What's Changed ### Added From b7427ccf6c1f6e9ae6fef82babb8fc4a5e59243b Mon Sep 17 00:00:00 2001 From: Eric Kerfoot Date: Fri, 6 Jun 2025 11:21:41 +0100 Subject: [PATCH 2/7] Update changelog with formatting of PR tags Signed-off-by: Eric Kerfoot --- CHANGELOG.md | 210 +++++++++++++++++++++++++-------------------------- 1 file changed, 105 insertions(+), 105 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e55550f9f1..088be7c4f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,121 +46,121 @@ We are excited to announce the release of MAISI Version _maisi3d-rflow_. This up * Add PythonicWorkflow (#8151) * Add SM architecture version check (#8199) * Add MedNext implementation (#8004) -* Added a top button to CONSTRIBUTING.md by @Akhsuna07 in https://github.com/Project-MONAI/MONAI/pull/8163 -* Add wendell-hom to user list to trigger blossom-ci [skip ci] by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8184 -* Adding CODEOWNERS by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8457 -* Restormer Implementation by @phisanti in https://github.com/Project-MONAI/MONAI/pull/8312 -* Add rectified flow noise scheduler for accelerated diffusion model by @Can-Zhao in https://github.com/Project-MONAI/MONAI/pull/8374 -* add prediction type for rflow scheduler by @Can-Zhao in https://github.com/Project-MONAI/MONAI/pull/8386 -* Enable gpu load nifti by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8188 -* Add Average Precision to metrics by @thibaultdvx in https://github.com/Project-MONAI/MONAI/pull/8089 -* Implementation of a Masked Autoencoder for representation learning by @Lucas-rbnt in https://github.com/Project-MONAI/MONAI/pull/8152 -* Implement TorchIO transforms wrapper analogous to TorchVision transfo… by @SomeUserName1 in https://github.com/Project-MONAI/MONAI/pull/7579 -* 8328 nnunet bundle integration by @SimoneBendazzoli93 in https://github.com/Project-MONAI/MONAI/pull/8329 -* Adding Support Policy + Doc Updates by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8458 -* Classifier free guidance by @virginiafdez in https://github.com/Project-MONAI/MONAI/pull/8460 +* Added a top button to CONSTRIBUTING.md (#8163) +* Add wendell-hom to user list to trigger blossom-ci [skip ci] (#8184) +* Adding CODEOWNERS (#8457) +* Restormer Implementation (#8312) +* Add rectified flow noise scheduler for accelerated diffusion model (#8374) +* add prediction type for rflow scheduler (#8386) +* Enable gpu load nifti (#8188) +* Add Average Precision to metrics (#8089) +* Implementation of a Masked Autoencoder for representation learning (#8152) +* Implement TorchIO transforms wrapper analogous to TorchVision transfo… (#7579) +* 8328 nnunet bundle integration (#8329) +* Adding Support Policy + Doc Updates (#8458) +* Classifier free guidance (#8460) ### Fixed -* Fix unittest by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8161 -* Fix Ruff Numpy2 deprecation rules by @jamesobutler in https://github.com/Project-MONAI/MONAI/pull/8179 -* Fix `torch.load()` frequently warning in PersistentDataset and GDSDataset by @bnbqq8 in https://github.com/Project-MONAI/MONAI/pull/8177 -* Fix the logging of a nested dictionary metric in MLflow by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8169 -* Fix ImageFilter to allow Gaussian filter without filter_size by @EloiNavet in https://github.com/Project-MONAI/MONAI/pull/8189 -* Fixed fold_constants, test_handler switched to onnx by @borisfom in https://github.com/Project-MONAI/MONAI/pull/8211 -* Fixing a minor bug in a test by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8223 -* Fix TypeError in meshgrid by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8252 -* bug: Fix PatchMerging duplicate merging by @pooya-mohammadi in https://github.com/Project-MONAI/MONAI/pull/8285 -* Fix test load image issue by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8297 -* Fix bundle download error from ngc source by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8307 -* Fix deprecated usage in zarr by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8313 -* 8201 Fix DataFrame subsets indexing in CSVDataset() by @bartosz-grabowski in https://github.com/Project-MONAI/MONAI/pull/8351 -* Fix `packaging` imports in version comparison logic by @nkaenzig in https://github.com/Project-MONAI/MONAI/pull/8347 -* Fix CommonKeys docstring by @bartosz-grabowski in https://github.com/Project-MONAI/MONAI/pull/8342 -* Fix: correctly apply fftshift to real-valued data inputs by @XwK-P in https://github.com/Project-MONAI/MONAI/pull/8407 -* Fix OptionalImportError: required package `openslide` is not installed by @dzenanz in https://github.com/Project-MONAI/MONAI/pull/8419 -* :bug: fix cosine noise scheduler by @slavaheroes in https://github.com/Project-MONAI/MONAI/pull/8427 -* Fix AutoencoderKL docstrings. by @virginiafdez in https://github.com/Project-MONAI/MONAI/pull/8445 -* Inverse Threading Fix by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8418 -* 8267 fix normalize intensity by @advcu987 in https://github.com/Project-MONAI/MONAI/pull/8286 -* 8354 fix path at test onnx trt export by @garciadias in https://github.com/Project-MONAI/MONAI/pull/8361 +* Fix unittest (#8161) +* Fix Ruff Numpy2 deprecation rules (#8179) +* Fix `torch.load()` frequently warning in PersistentDataset and GDSDataset (#8177) +* Fix the logging of a nested dictionary metric in MLflow (#8169) +* Fix ImageFilter to allow Gaussian filter without filter_size (#8189) +* Fixed fold_constants, test_handler switched to onnx (#8211) +* Fixing a minor bug in a test (#8223) +* Fix TypeError in meshgrid (#8252) +* bug: Fix PatchMerging duplicate merging (#8285) +* Fix test load image issue (#8297) +* Fix bundle download error from ngc source (#8307) +* Fix deprecated usage in zarr (#8313) +* 8201 Fix DataFrame subsets indexing in CSVDataset() (#8351) +* Fix `packaging` imports in version comparison logic (#8347) +* Fix CommonKeys docstring (#8342) +* Fix: correctly apply fftshift to real-valued data inputs (#8407) +* Fix OptionalImportError: required package `openslide` is not installed (#8419) +* :bug: fix cosine noise scheduler (#8427) +* Fix AutoencoderKL docstrings. (#8445) +* Inverse Threading Fix (#8418) +* 8267 fix normalize intensity (#8286) +* 8354 fix path at test onnx trt export (#8361) ### Changed -* [DOC] Update README.md by @Smoothengineer in https://github.com/Project-MONAI/MONAI/pull/8157 -* Streamlined Rearrange in SpatialAttentionBlock by @borisfom in https://github.com/Project-MONAI/MONAI/pull/8130 -* Optimize VISTA3D by @binliunls in https://github.com/Project-MONAI/MONAI/pull/8123 -* Skip torch trt convert test with torch newer than or equal to 2.5.0 by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8165 -* Enable redirection of all loggers by configuring a FileHandler within the bundle by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8142 -* Apply pyupgrade fixes for Python 3.9+ syntax by @jamesobutler in https://github.com/Project-MONAI/MONAI/pull/8150 -* Update base image to 2410 by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8164 -* TRT support for MAISI by @borisfom in https://github.com/Project-MONAI/MONAI/pull/8153 -* 8134 Add unit test for responsive inference by @Nic-Ma in https://github.com/Project-MONAI/MONAI/pull/8146 -* SwinUNETR refactor to accept additional parameters by @EloiNavet in https://github.com/Project-MONAI/MONAI/pull/8212 -* Allow an arbitrary mask to be used in the self attention by @Lucas-rbnt in https://github.com/Project-MONAI/MONAI/pull/8235 -* Bump codecov/codecov-action from 4 to 5 by @dependabot in https://github.com/Project-MONAI/MONAI/pull/8245 -* Docs: update brats classes description by @vectorvp in https://github.com/Project-MONAI/MONAI/pull/8246 -* Change default value of `patch_norm` to False in `SwinUNETR` by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8249 -* Modify Dice, Jaccard and Tversky losses by @zifuwanggg in https://github.com/Project-MONAI/MONAI/pull/8138 -* Modify Workflow to Allow IterableDataset Inputs by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8263 -* enhance download_and_extract by @Jerome-Hsieh in https://github.com/Project-MONAI/MONAI/pull/8216 -* 8274-mitigate-gpu-load-check by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8275 -* 8274 Relax gpu load check by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8282 -* Using LocalStore in Zarr v3 by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8299 -* update pydicom reader to enable gpu load by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8283 -* Zarr compression tests only with versions before 3.0 by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8319 -* Changing utils.py to test_utils.py by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8335 -* 8185 - Refactor test by @garciadias in https://github.com/Project-MONAI/MONAI/pull/8231 -* Recursive Item Mapping for Nested Lists in Compose by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8187 -* Bump min torch to 1.13.1 to mitigate CVE-2022-45907 unsafe usage of eval by @jamesobutler in https://github.com/Project-MONAI/MONAI/pull/8296 -* Inferer modification - save_intermediates clashes with latent shape adjustment in latent diffusion inferers by @virginiafdez in https://github.com/Project-MONAI/MONAI/pull/8343 -* Removed outdated `torch` version checks from transform functions by @nkaenzig in https://github.com/Project-MONAI/MONAI/pull/8359 -* Solves path problem in test_bundle_trt_export.py by @garciadias in https://github.com/Project-MONAI/MONAI/pull/8357 -* Modify ControlNet inferer so that it takes in context when the diffus… by @virginiafdez in https://github.com/Project-MONAI/MONAI/pull/8360 -* Update monaihosting download method by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8364 -* Bump torch minimum to mitigate CVE-2024-31580 & CVE-2024-31583 and enable numpy 2 compatibility by @jamesobutler in https://github.com/Project-MONAI/MONAI/pull/8368 -* Auto3DSeg algo_template hash update by @monai-bot in https://github.com/Project-MONAI/MONAI/pull/8378 -* Enable Pytorch 2.6 by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8309 -* Auto3DSeg algo_template hash update by @monai-bot in https://github.com/Project-MONAI/MONAI/pull/8393 -* Auto3DSeg algo_template hash update by @monai-bot in https://github.com/Project-MONAI/MONAI/pull/8397 -* Update Dice Metric Docs by @ericspod in https://github.com/Project-MONAI/MONAI/pull/8388 -* Auto3DSeg algo_template hash update by @monai-bot in https://github.com/Project-MONAI/MONAI/pull/8406 -* 8394 Update bundle download API by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8403 -* Add Skip test in TestTranschex by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8416 -* Update get latest bundle version function by @yiheng-wang-nv in https://github.com/Project-MONAI/MONAI/pull/8420 -* Temporarily Restrict setuptools Version to 79.0.1 by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8441 -* Update default overlap value in occlusion_sensitivity to 0.6 by @kavin2003 in https://github.com/Project-MONAI/MONAI/pull/8446 -* Enable code coverage comments on PRs in codecov configuration by @chrislevn in https://github.com/Project-MONAI/MONAI/pull/8402 -* Migrate to modern Python Logger API by @emmanuel-ferdman in https://github.com/Project-MONAI/MONAI/pull/8449 +* [DOC] Update README.md (#8157) +* Streamlined Rearrange in SpatialAttentionBlock (#8130) +* Optimize VISTA3D (#8123) +* Skip torch trt convert test with torch newer than or equal to 2.5.0 (#8165) +* Enable redirection of all loggers by configuring a FileHandler within the bundle (#8142) +* Apply pyupgrade fixes for Python 3.9+ syntax (#8150) +* Update base image to 2410 (#8164) +* TRT support for MAISI (#8153) +* 8134 Add unit test for responsive inference (#8146) +* SwinUNETR refactor to accept additional parameters (#8212) +* Allow an arbitrary mask to be used in the self attention (#8235) +* Bump codecov/codecov-action from 4 to 5 (#8245) +* Docs: update brats classes description (#8246) +* Change default value of `patch_norm` to False in `SwinUNETR` (#8249) +* Modify Dice, Jaccard and Tversky losses (#8138) +* Modify Workflow to Allow IterableDataset Inputs (#8263) +* enhance download_and_extract (#8216) +* 8274-mitigate-gpu-load-check (#8275) +* 8274 Relax gpu load check (#8282) +* Using LocalStore in Zarr v3 (#8299) +* update pydicom reader to enable gpu load (#8283) +* Zarr compression tests only with versions before 3.0 (#8319) +* Changing utils.py to test_utils.py (#8335) +* 8185 - Refactor test (#8231) +* Recursive Item Mapping for Nested Lists in Compose (#8187) +* Bump min torch to 1.13.1 to mitigate CVE-2022-45907 unsafe usage of eval (#8296) +* Inferer modification - save_intermediates clashes with latent shape adjustment in latent diffusion inferers (#8343) +* Removed outdated `torch` version checks from transform functions (#8359) +* Solves path problem in test_bundle_trt_export.py (#8357) +* Modify ControlNet inferer so that it takes in context when the diffus… (#8360) +* Update monaihosting download method (#8364) +* Bump torch minimum to mitigate CVE-2024-31580 & CVE-2024-31583 and enable numpy 2 compatibility (#8368) +* Auto3DSeg algo_template hash update (#8378) +* Enable Pytorch 2.6 (#8309) +* Auto3DSeg algo_template hash update (#8393) +* Auto3DSeg algo_template hash update (#8397) +* Update Dice Metric Docs (#8388) +* Auto3DSeg algo_template hash update (#8406) +* 8394 Update bundle download API (#8403) +* Add Skip test in TestTranschex (#8416) +* Update get latest bundle version function (#8420) +* Temporarily Restrict setuptools Version to 79.0.1 (#8441) +* Update default overlap value in occlusion_sensitivity to 0.6 (#8446) +* Enable code coverage comments on PRs in codecov configuration (#8402) +* Migrate to modern Python Logger API (#8449) ### Deprecated ### Removed -* Remove deprecated functionality for v1.5 by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8430 -* Remove deprecated `return_state_dict ` in bundle `load` by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8454 -* Remove deprecated `net_name` in test file by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8461 -* Remove unused test cases in bundle load by @KumoLiu in https://github.com/Project-MONAI/MONAI/pull/8463 -* selfattention block: Remove the fc linear layer if it is not used by @johnzielke in https://github.com/Project-MONAI/MONAI/pull/8325 +* Remove deprecated functionality for v1.5 (#8430) +* Remove deprecated `return_state_dict ` in bundle `load` (#8454) +* Remove deprecated `net_name` in test file (#8461) +* Remove unused test cases in bundle load (#8463) +* selfattention block: Remove the fc linear layer if it is not used (#8325) ## New Contributors -* @Smoothengineer made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8157 -* @Akhsuna07 made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8163 -* @bnbqq8 made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8177 -* @EloiNavet made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8189 -* @vectorvp made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8246 -* @zifuwanggg made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8138 -* @Jerome-Hsieh made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8216 -* @pooya-mohammadi made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8285 -* @advcu987 made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8286 -* @garciadias made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8231 -* @nkaenzig made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8347 -* @bartosz-grabowski made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8342 -* @thibaultdvx made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8089 -* @phisanti made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8312 -* @SimoneBendazzoli93 made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8329 -* @XwK-P made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8407 -* @slavaheroes made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8427 -* @kavin2003 made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8446 -* @chrislevn made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8402 -* @emmanuel-ferdman made their first contribution in https://github.com/Project-MONAI/MONAI/pull/8449 +* @Smoothengineer made their first contribution in #8157 +* @Akhsuna07 made their first contribution in #8163 +* @bnbqq8 made their first contribution in #8177 +* @EloiNavet made their first contribution in #8189 +* @vectorvp made their first contribution in #8246 +* @zifuwanggg made their first contribution in #8138 +* @Jerome-Hsieh made their first contribution in #8216 +* @pooya-mohammadi made their first contribution in #8285 +* @advcu987 made their first contribution in #8286 +* @garciadias made their first contribution in #8231 +* @nkaenzig made their first contribution in #8347 +* @bartosz-grabowski made their first contribution in #8342 +* @thibaultdvx made their first contribution in #8089 +* @phisanti made their first contribution in #8312 +* @SimoneBendazzoli93 made their first contribution in #8329 +* @XwK-P made their first contribution in #8407 +* @slavaheroes made their first contribution in #8427 +* @kavin2003 made their first contribution in #8446 +* @chrislevn made their first contribution in #8402 +* @emmanuel-ferdman made their first contribution in #8449 ## [1.4.0] - 2024-10-17 From e76eddfbc5590ae80d462ded87f34674243a9c1c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 10:30:15 +0000 Subject: [PATCH 3/7] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 088be7c4f4..552bf343ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,9 +9,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). ## Supported Dependency Versions -This release adds support for NumPy 2.0 and PyTorch 2.6. We plan to add support for PyTorch 2.7 in an upcoming version once some compatibility issues have been addressed. +This release adds support for NumPy 2.0 and PyTorch 2.6. We plan to add support for PyTorch 2.7 in an upcoming version once some compatibility issues have been addressed. -As stated in the updated [README.md](./README.md) file, MONAI's policy for the support of dependency versions has been updated for clarity. +As stated in the updated [README.md](./README.md) file, MONAI's policy for the support of dependency versions has been updated for clarity. MONAI will continue to support [currently supported versions of Python](https://devguide.python.org/versions), and for other dependencies the following apply: @@ -23,20 +23,20 @@ MONAI will continue to support [currently supported versions of Python](https:// ## MAISI Update: Introducing MAISI Version maisi3d-rflow We are excited to announce the release of MAISI Version _maisi3d-rflow_. This update brings significant improvements over the previous version, _maisi3d-ddpm_, with a remarkable 33x acceleration in latent diffusion model inference speed. The MAISI VAE remains unchanged. Here are the key differences: 1. Scheduler Update: - + * _maisi3d-ddpm_: Uses the basic DDPM noise scheduler. * _maisi3d-rflow_: Introduces the Rectified Flow scheduler, allowing diffusion model inference to be 33 times faster. 2. Training Data Preparation: - + * _maisi3d-ddpm_: Requires training images to be labeled with body regions (specifically “top_region_index” and “bottom_region_index”). * _maisi3d-rflow_: No such labeling is required, making it easier to prepare the training data. 3. Image Quality: - + * For the released model weights, _maisi3d-rflow_ generates better-quality images for head regions and smaller output volumes compared to _maisi3d-ddpm_. For other regions, the image quality is comparable. 4. Modality Input: - + * _maisi3d-rflow_ adds a new modality input to the diffusion model, offering flexibility for future extensions to other modalities. Currently, this input is set to always equal 1, as this version supports CT generation exclusively. From 22124b25cd95bbb4f831106584f95c5c4c3416f3 Mon Sep 17 00:00:00 2001 From: Eric Kerfoot Date: Fri, 6 Jun 2025 11:41:32 +0100 Subject: [PATCH 4/7] Cleanup Signed-off-by: Eric Kerfoot --- CHANGELOG.md | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 088be7c4f4..acc711d9a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,7 +39,6 @@ We are excited to announce the release of MAISI Version _maisi3d-rflow_. This up * _maisi3d-rflow_ adds a new modality input to the diffusion model, offering flexibility for future extensions to other modalities. Currently, this input is set to always equal 1, as this version supports CT generation exclusively. - ## What's Changed ### Added * Add platform-specific constraints to setup.cfg (#8260) @@ -47,12 +46,10 @@ We are excited to announce the release of MAISI Version _maisi3d-rflow_. This up * Add SM architecture version check (#8199) * Add MedNext implementation (#8004) * Added a top button to CONSTRIBUTING.md (#8163) -* Add wendell-hom to user list to trigger blossom-ci [skip ci] (#8184) * Adding CODEOWNERS (#8457) * Restormer Implementation (#8312) * Add rectified flow noise scheduler for accelerated diffusion model (#8374) -* add prediction type for rflow scheduler (#8386) -* Enable gpu load nifti (#8188) +* Add prediction type for rflow scheduler (#8386) * Add Average Precision to metrics (#8089) * Implementation of a Masked Autoencoder for representation learning (#8152) * Implement TorchIO transforms wrapper analogous to TorchVision transfo… (#7579) @@ -61,28 +58,26 @@ We are excited to announce the release of MAISI Version _maisi3d-rflow_. This up * Classifier free guidance (#8460) ### Fixed -* Fix unittest (#8161) * Fix Ruff Numpy2 deprecation rules (#8179) * Fix `torch.load()` frequently warning in PersistentDataset and GDSDataset (#8177) * Fix the logging of a nested dictionary metric in MLflow (#8169) * Fix ImageFilter to allow Gaussian filter without filter_size (#8189) -* Fixed fold_constants, test_handler switched to onnx (#8211) -* Fixing a minor bug in a test (#8223) +* Fix fold_constants, test_handler switched to onnx (#8211) * Fix TypeError in meshgrid (#8252) -* bug: Fix PatchMerging duplicate merging (#8285) +* Fix PatchMerging duplicate merging (#8285) * Fix test load image issue (#8297) * Fix bundle download error from ngc source (#8307) * Fix deprecated usage in zarr (#8313) -* 8201 Fix DataFrame subsets indexing in CSVDataset() (#8351) +* Fix DataFrame subsets indexing in CSVDataset() (#8351) * Fix `packaging` imports in version comparison logic (#8347) * Fix CommonKeys docstring (#8342) * Fix: correctly apply fftshift to real-valued data inputs (#8407) * Fix OptionalImportError: required package `openslide` is not installed (#8419) -* :bug: fix cosine noise scheduler (#8427) +* Fix cosine noise scheduler (#8427) * Fix AutoencoderKL docstrings. (#8445) * Inverse Threading Fix (#8418) -* 8267 fix normalize intensity (#8286) -* 8354 fix path at test onnx trt export (#8361) +* Fix normalize intensity (#8286) +* Fix path at test onnx trt export (#8361) ### Changed * [DOC] Update README.md (#8157) @@ -101,29 +96,27 @@ We are excited to announce the release of MAISI Version _maisi3d-rflow_. This up * Change default value of `patch_norm` to False in `SwinUNETR` (#8249) * Modify Dice, Jaccard and Tversky losses (#8138) * Modify Workflow to Allow IterableDataset Inputs (#8263) -* enhance download_and_extract (#8216) -* 8274-mitigate-gpu-load-check (#8275) -* 8274 Relax gpu load check (#8282) -* Using LocalStore in Zarr v3 (#8299) +* Enhance download_and_extract (#8216) +* Relax gpu load check (#8282, #8275) +* Using LocalStore in Zarr v3 (#8299) +* Enable gpu load nifti (#8188) * update pydicom reader to enable gpu load (#8283) * Zarr compression tests only with versions before 3.0 (#8319) * Changing utils.py to test_utils.py (#8335) -* 8185 - Refactor test (#8231) +* Refactor testd (#8231) * Recursive Item Mapping for Nested Lists in Compose (#8187) * Bump min torch to 1.13.1 to mitigate CVE-2022-45907 unsafe usage of eval (#8296) * Inferer modification - save_intermediates clashes with latent shape adjustment in latent diffusion inferers (#8343) -* Removed outdated `torch` version checks from transform functions (#8359) * Solves path problem in test_bundle_trt_export.py (#8357) * Modify ControlNet inferer so that it takes in context when the diffus… (#8360) * Update monaihosting download method (#8364) * Bump torch minimum to mitigate CVE-2024-31580 & CVE-2024-31583 and enable numpy 2 compatibility (#8368) * Auto3DSeg algo_template hash update (#8378) * Enable Pytorch 2.6 (#8309) -* Auto3DSeg algo_template hash update (#8393) -* Auto3DSeg algo_template hash update (#8397) +* Auto3DSeg algo_template hash update (#8393, #8397) * Update Dice Metric Docs (#8388) * Auto3DSeg algo_template hash update (#8406) -* 8394 Update bundle download API (#8403) +* Update bundle download API (#8403) * Add Skip test in TestTranschex (#8416) * Update get latest bundle version function (#8420) * Temporarily Restrict setuptools Version to 79.0.1 (#8441) @@ -138,7 +131,7 @@ We are excited to announce the release of MAISI Version _maisi3d-rflow_. This up * Remove deprecated `net_name` in test file (#8461) * Remove unused test cases in bundle load (#8463) * selfattention block: Remove the fc linear layer if it is not used (#8325) - +* Removed outdated `torch` version checks from transform functions (#8359) ## New Contributors * @Smoothengineer made their first contribution in #8157 From 32f2d23d17171e1e9bd55ddaf29955c6f2569163 Mon Sep 17 00:00:00 2001 From: Eric Kerfoot Date: Mon, 9 Jun 2025 00:40:04 +0100 Subject: [PATCH 5/7] Adding whatsnew document Signed-off-by: Eric Kerfoot --- CHANGELOG.md | 55 ----------------------------------- docs/images/maisi_infer.png | Bin 0 -> 130987 bytes docs/source/whatsnew.rst | 1 + docs/source/whatsnew_1_5.md | 56 ++++++++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 55 deletions(-) create mode 100644 docs/images/maisi_infer.png create mode 100644 docs/source/whatsnew_1_5.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 873b23efe2..4c40337c75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,38 +7,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). ## [1.5.0] - 2025-06-06 -## Supported Dependency Versions - -This release adds support for NumPy 2.0 and PyTorch 2.6. We plan to add support for PyTorch 2.7 in an upcoming version once some compatibility issues have been addressed. - -As stated in the updated [README.md](./README.md) file, MONAI's policy for the support of dependency versions has been updated for clarity. - -MONAI will continue to support [currently supported versions of Python](https://devguide.python.org/versions), and for other dependencies the following apply: - -* Major releases of MONAI will have dependency versions stated for them. The current state of the `dev` branch in this repository is the unreleased development version of MONAI which typically will support current versions of dependencies and include updates and bug fixes to do so. -* PyTorch support covers [the current version](https://github.com/pytorch/pytorch/releases) plus three previous minor versions. If compatibility issues with a PyTorch version and other dependencies arise, support for a version may be delayed until a major release. -* Our support policy for other dependencies adheres for the most part to [SPEC0](https://scientific-python.org/specs/spec-0000), where dependency versions are supported where possible for up to two years. Discovered vulnerabilities or defects may require certain versions to be explicitly not supported. -* See the `requirements*.txt` files for dependency version information. - -## MAISI Update: Introducing MAISI Version maisi3d-rflow -We are excited to announce the release of MAISI Version _maisi3d-rflow_. This update brings significant improvements over the previous version, _maisi3d-ddpm_, with a remarkable 33x acceleration in latent diffusion model inference speed. The MAISI VAE remains unchanged. Here are the key differences: - 1. Scheduler Update: - - * _maisi3d-ddpm_: Uses the basic DDPM noise scheduler. - - * _maisi3d-rflow_: Introduces the Rectified Flow scheduler, allowing diffusion model inference to be 33 times faster. - 2. Training Data Preparation: - - * _maisi3d-ddpm_: Requires training images to be labeled with body regions (specifically “top_region_index” and “bottom_region_index”). - - * _maisi3d-rflow_: No such labeling is required, making it easier to prepare the training data. - 3. Image Quality: - - * For the released model weights, _maisi3d-rflow_ generates better-quality images for head regions and smaller output volumes compared to _maisi3d-ddpm_. For other regions, the image quality is comparable. - 4. Modality Input: - - * _maisi3d-rflow_ adds a new modality input to the diffusion model, offering flexibility for future extensions to other modalities. Currently, this input is set to always equal 1, as this version supports CT generation exclusively. - ## What's Changed ### Added * Add platform-specific constraints to setup.cfg (#8260) @@ -133,29 +101,6 @@ We are excited to announce the release of MAISI Version _maisi3d-rflow_. This up * selfattention block: Remove the fc linear layer if it is not used (#8325) * Removed outdated `torch` version checks from transform functions (#8359) -## New Contributors -* @Smoothengineer made their first contribution in #8157 -* @Akhsuna07 made their first contribution in #8163 -* @bnbqq8 made their first contribution in #8177 -* @EloiNavet made their first contribution in #8189 -* @vectorvp made their first contribution in #8246 -* @zifuwanggg made their first contribution in #8138 -* @Jerome-Hsieh made their first contribution in #8216 -* @pooya-mohammadi made their first contribution in #8285 -* @advcu987 made their first contribution in #8286 -* @garciadias made their first contribution in #8231 -* @nkaenzig made their first contribution in #8347 -* @bartosz-grabowski made their first contribution in #8342 -* @thibaultdvx made their first contribution in #8089 -* @phisanti made their first contribution in #8312 -* @SimoneBendazzoli93 made their first contribution in #8329 -* @XwK-P made their first contribution in #8407 -* @slavaheroes made their first contribution in #8427 -* @kavin2003 made their first contribution in #8446 -* @chrislevn made their first contribution in #8402 -* @emmanuel-ferdman made their first contribution in #8449 - - ## [1.4.0] - 2024-10-17 ## What's Changed ### Added diff --git a/docs/images/maisi_infer.png b/docs/images/maisi_infer.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd18ea1883abf1a1d26ddec5e0f73f3f537bea8 GIT binary patch literal 130987 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 qYQn&lK+2R9VDkkt$Q!n^{F9%cTOk#( Date: Sun, 8 Jun 2025 23:40:33 +0000 Subject: [PATCH 6/7] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/source/whatsnew_1_5.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/whatsnew_1_5.md b/docs/source/whatsnew_1_5.md index 1a8b4c0887..d8b9420247 100644 --- a/docs/source/whatsnew_1_5.md +++ b/docs/source/whatsnew_1_5.md @@ -53,4 +53,4 @@ We are excited to announce the release of MAISI Version _maisi3d-rflow_. This up * For the released model weights, _maisi3d-rflow_ generates better-quality images for head regions and smaller output volumes compared to _maisi3d-ddpm_. For other regions, the image quality is comparable. 4. Modality Input: - * _maisi3d-rflow_ adds a new modality input to the diffusion model, offering flexibility for future extensions to other modalities. Currently, this input is set to always equal 1, as this version supports CT generation exclusively. \ No newline at end of file + * _maisi3d-rflow_ adds a new modality input to the diffusion model, offering flexibility for future extensions to other modalities. Currently, this input is set to always equal 1, as this version supports CT generation exclusively. From 13b6c6e6263939819922b748d9203b8cf23d4542 Mon Sep 17 00:00:00 2001 From: Eric Kerfoot Date: Tue, 10 Jun 2025 18:02:49 +0100 Subject: [PATCH 7/7] Minor updates from comments Signed-off-by: Eric Kerfoot --- docs/source/whatsnew_1_4.md | 2 +- docs/source/whatsnew_1_5.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/whatsnew_1_4.md b/docs/source/whatsnew_1_4.md index 0fc82ff820..b3a2877d98 100644 --- a/docs/source/whatsnew_1_4.md +++ b/docs/source/whatsnew_1_4.md @@ -1,4 +1,4 @@ -# What's new in 1.4 🎉🎉 +# What's new in 1.4 - MAISI: state-of-the-art 3D Latent Diffusion Model - VISTA-3D: interactive foundation model for segmenting and anotating human anatomies diff --git a/docs/source/whatsnew_1_5.md b/docs/source/whatsnew_1_5.md index d8b9420247..a3a8890da9 100644 --- a/docs/source/whatsnew_1_5.md +++ b/docs/source/whatsnew_1_5.md @@ -1,9 +1,9 @@ # What's new in 1.5 🎉🎉 -- MAISI inference accelerate - Support numpy 2.x and Pytorch 2.6 -- bundles storage changed to huggingface and correspoinding api updated in core +- MAISI inference accelerate +- Bundles storage changed to huggingface and correspoinding api updated in core - Ported remaining generative tutorials and bundles - New tutorials: - [2d_regression/image_restoration.ipynb](https://github.com/Project-MONAI/tutorials/blob/main/2d_regression/image_restoration.ipynb)