Change8

v5.7.2

📦 invokeaiView on GitHub →
4 features🐛 5 fixes🔧 1 symbols

Summary

This release introduces an optional configuration to use the CUDA memory allocator for reduced peak VRAM usage and performance improvements, alongside fixes for UI rendering, ControlNet validation, and backend database handling.

Migration Steps

  1. To utilize the new CUDA memory allocator for potential VRAM reduction, add the `pytorch_cuda_alloc_conf` setting to your `invokeai.yaml` file (e.g., `pytorch_cuda_alloc_conf: "backend:cudaMallocAsync"`). If omitted, the previous PyTorch allocator behavior is maintained.
  2. The recommended installation/update method is now the new Invoke Launcher. Follow the Quick Start guide for setup if using the launcher, or the manual install guide for headless setups.

✨ New Features

  • Added support for uploading WEBP images, which are converted to PNGs internally.
  • Added "pull bbox" button to the Regional and Global Reference Image layer's empty state.
  • Batch enqueuing (clicking Invoke) is now a non-blocking operation, improving application responsiveness immediately after invocation.
  • Introduced the `pytorch_cuda_alloc_conf` setting in `invokeai.yaml` to allow opting into CUDA's memory allocator for potentially reduced peak VRAM usage and improved performance.

🐛 Bug Fixes

  • Fixed rendering of "single or collection" field types in the Workflow Editor, resolving issues where widgets for fields like IP Adapter images and ControlNet control weights were not displaying.
  • Fixed the download button in the Workflow Library list, ensuring it downloads the selected workflow instead of the currently active one.
  • Loosened validation for ControlNet begin and end step percentages.
  • Improved VAE VRAM usage estimates to be more conservative, aiming to reduce slowdowns and Out-Of-Memory errors during VAE decode steps.
  • Resolved recursive cursor errors by migrating DB access from a global mutex with long-lived SQLite cursors to WAL mode with short-lived cursors.

🔧 Affected Symbols

configure_torch_cuda_allocator()