v5.7.2

invoke-ai/InvokeAIv5.7.2Mar 5, 2025by psychedelicious

Upgrading?

Release notes summary

Adds a configuration option to optimize VRAM usage and improves performance with non-blocking batch operations.

Key Highlights

  • New `pytorch_cuda_alloc_conf` setting to reduce peak VRAM usage.
  • Non-blocking batch enqueuing for better app responsiveness.
  • WEBP image upload support.
  • Smaller Docker builds.

New Features

  • VRAM optimization setting (`pytorch_cuda_alloc_conf`)
  • WEBP upload support
  • Non-blocking batch enqueuing
  • Pull bbox button for reference image layers

Full Release Notes

This release adds a setting to reduce peak VRAM usage and improve performance, plus a few other fixes and enhancements.

## Memory Management Improvements

By default, Invoke uses `pytorch`'s own memory allocator to load and manage models in VRAM. CUDA also provides a memory allocator, and on many systems, the CUDA allocator outperforms the `pytorch` allocator, reducing peak VRAM usage. On some systems, this may improve generation speeds.

You can use the new `pytorch_cuda_alloc_conf` setting in `invokeai.yaml` to opt-in to CUDA's memory allocator:

```yaml
pytorch_cuda_alloc_conf: "backend:cudaMallocAsync"
```

If you do not add this setting, Invoke will continue to use the `pytorch` allocator (same as it always has).

There are other possible configurations you can use for this setting, dictated by `pytorch`. Refer to the [new section in the Low-VRAM mode docs](https://invoke-ai.github.io/InvokeAI/features/low-vram/#pytorch-cuda-allocator-config) for more information. 

## Other Changes

- You may now upload WEBP images to Invoke. They will be converted to PNGs for use within the application. Thanks @keturn!
- Added "pull bbox" button to the Regional and Global Reference Image layer's empty state.
- More conservative estimates for VAE VRAM usage. This aims to reduce the slowdowns and OOMs on the VAE decode step.
- Fixed "single or collection" field type rendering in the Workflow Editor. This was causing fields like IP Adapter's images and ControlNet's control weights from displaying a widget.
- Fixed the download button in the Workflow Library list, which was downloading the active workflow instead of the workflow for which the button was clicked.
- Loosened validation for ControlNet begin and end step percentages. Thanks @JPPhoto!
- Enqueuing a batch (i.e. what happens when you click the Invoke button) is now a non-blocking operation, allowing the app to be more responsive immediately after clicking Invoke. To enable this improvement, we migrated from using a global mutex for DB access with long-lived SQLite cursors to WAL mode with short-lived SQLite cursors. This is expected to afford a minor (likely not noticeable) performance boost in the backend in addition to the responsiveness improvement.
- Smaller docker builds. Thanks @keturn!
- Updated translations. Thanks @Harvester62 @Linos1391 @rikublock!

## Installing and Updating
**The new Invoke Launcher is the recommended way to install, update and run Invoke**. It takes care of a lot of details for you - like installing the right version of python - and runs Invoke as a desktop application.

Follow the [Quick Start guide](https://invoke-ai.github.io/InvokeAI/installation/quick_start/) to get started with the launcher.

If you don't want to use the launcher, or need a headless install, you can follow the [manual install guide](https://invoke-ai.github.io/InvokeAI/installation/manual/).

## What's Changed
* Tidy app entrypoint by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/7668
* Do not cache image layers in CI docker build by @ebr in https://github.com/invoke-ai/InvokeAI/pull/7712
* Add `pytorch_cuda_alloc_conf` config to tune VRAM memory allocation by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/7673
* Increase VAE decode memory estimates by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/7674
* fix(ui): download button in workflow library downloads wrong workflow by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/7715
* docs: update RELEASE.md by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/7707
* fix(ui): single or collection field rendering by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/7714
* feat: accept WebP uploads for assets by @keturn in https://github.com/invoke-ai/InvokeAI/pull/7718
* chore: bump version to v5.7.2rc1 by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/7721
* feat(app): non blocking enqueue_batch by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/7724
* fix(ui): add missing builder translations by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/7723
* ui: translations update from weblate by @weblate in https://github.com/invoke-ai/InvokeAI/pull/7722
* fix(app): recursive cursor errors by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/7727
* chore: bump version to v5.7.2rc2 by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/7725
* feat(ui): add button ref image layer empty state to pull bbox by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/7732
* chore(docker): reduce size between docker builds by @keturn in https://github.com/invoke-ai/InvokeAI/pull/7571
* Fix begin and end validation used in ControlNets. by @JPPhoto in https://github.com/invoke-ai/InvokeAI/pull/7605
* feat(app): revised `configure_torch_cuda_allocator()` & testing strategy by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/7733
* ui: translations update from weblate by @weblate in https://github.com/invoke-ai/InvokeAI/pull/7735
* chore: bump version to v5.7.2 by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/7734
* fix(ui): typo by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/7740


**Full Changelog**: https://github.com/invoke-ai/InvokeAI/compare/v5.7.1...v5.7.2

Related Repositories