Releases: invoke-ai/InvokeAI
v5.6.0rc4
This release brings major improvements to Invoke's memory management, new Blur and Noise Canvas filters, and expanded batch capabilities in Workflows.
Changes since v5.6.0rc3
- Fixed issue preventing you from typing in textarea fields in the workflow editor.
Changes since v5.6.0rc2
- Reduce peak memory during FLUX model load.
- Add
keep_ram_copy_of_weights
config option to reduce average RAM usage. - Revise the default logic for the model cache RAM limit to be more conservative.
- Support float, integer and string batch data types.
- Add batch data generators.
- Support grouped (aka zipped) batches.
- Fix image quality degradation when inpainting an image repeatedly.
- Fix issue with transparent Canvas filter previews blend with unfiltered parent layer.
- Add Noise and Blur filters to Canvas. Adding noise or blurring before generation can add a lot detail, especially when generating from a rough sketch. Thanks @dunkeroni!
Memory Management Improvements (aka Low-VRAM mode)
The goal of these changes is to allow users with low-VRAM GPUs to run even the beefiest models, like the 24GB unquantised FLUX dev model.
Despite the focus on low-VRAM GPUs and the colloquial name "Low-VRAM mode", most users benefit from these improvements to Invoke's memory management.
Low-VRAM mode works on systems with dedicated GPUs (Nvidia GPUs on Windows/Linux and AMD GPUs on Linux). It allows you to generate even if your GPU doesn't have enough VRAM to hold full models.
Low-VRAM mode involves 3 features, each of which can be configured or fine-tuned:
- Partial model loading
- Dynamic RAM and VRAM cache sizes
- Working memory
- Keeping a copy of models in RAM
Most users should only need to enable partial loading by adding this line to your invokeai.yaml
file:
enable_partial_loading: true
🚨 Windows users should also disable the Nvidia sysmem fallback.
For more details and instructions for fine-tuning, see the Low-VRAM mode docs.
Thanks to @RyanJDick for designing and implementing these improvements!
Workflow Batches
We've expanded the capabilities for Batches in Workflows:
- Float, integer and string batch data types
- Batch collection generators
- Grouped (aka zipped) batches
Float, integer and string batch data types
There's a new batch node for of the new data types. They work the same as the existing image batch node.
You can add a list of values directly in the node, but you'll probably find generators to be a nicer way to set up your batch.
Batch collection generators
These are essentially nodes that run in the frontend and generate a list of values to use in a batch node. Included in this release are these generators for floats and integers:
- Arithmetic Sequence: Generate a sequence of
count
numbers, starting fromstart
, that increase or decrease bystep
. - Linear Distribution: Generate a distribution of
count
numbers, starting withstart
and ending withend
. - Uniform Random Distribution: Generation a random distribution of
count
numbers frommin
tomax
. The values are generated randomly when you click Invoke. - Parse String: Split the
input
on the specified character, parsing each value as a number. Non-numbers are ignored.
Screen.Recording.2025-01-17.at.12.26.52.pm.mov
You'll notice the different handle icon for batch generators. These nodes cannot connect to non-batch nodes, which run in the backend.
In the future, we can explore more batch generators. Some ideas:
- Parse File (string, float, integer): Select a file and parse it, splitting on the specified character.
- Board (image): Output all images on a board.
Grouped (aka zipped) batches
When you use multiple batches, we run the graph once for every possible combination of values. In math-y speak, we "take the Cartesian product" of all batch collections.
Consider this simple workflow that joins two strings:
We have two batch collections, each with two strings. This results in 2 * 2 = 4
runs, one for each possible combination of the strings. We get these outputs:
- "a cute cat"
- "a cute dog"
- "a ferocious cat"
- "a ferocious dog"
But what if we wanted to group or "zip" up the two string collections into a single collection, executing the graph once for each pair of strings? This is now possible - we can set both nodes to the same batch group:
This results in 2 runs, one for each "pair" of strings. We get these outputs:
- "a cute cat"
- "a ferocious dog"
It's a bit technical, but if you try it a few times you'll quickly gain an intuition for how things combine. You can use grouped and ungrouped batches arbitrarily - go wild! The Invoke button tooltip lets you know how many executions you'll end up with for the given batch nodes.
Keep in mind that grouped batch collections must have the same size, else we cannot zip them up into one collection. The Invoke button grey out and let you know there is a mismatch.
Details and technical explanation
On the backend, we first zip all grouped batch collections into a single collection. Ungrouped batch collections remain as-is.
Then, we take the product of all batch collections. If there is only a single collection (i.e. a single ungrouped batch nodes, or multiple batch nodes all with the same group), we still do the product operation, but the result is the same as if we had skipped it.
There are 5 slots for groups, plus a 6th ungrouped option:
- None: Batch nodes will always be used as separate collections for the Cartesian product operation.
- Groups 1 - 5: Batch nodes within a given group will first be zipped into a single collection, before the the Cartesian product operation.
All Changes
The launcher itself has been updated to fix a handful of issues, including requiring an install every time you start the launcher and systems with AMD GPUs using CPU. The latest launcher version is v1.2.1.
Fixes
- Fix issue where excessively long board names could cause performance issues.
- Fix error when using DPM++ schedulers with certain models. Thanks @Vargol!
- Fix (maybe, hopefully) the app scrolling off screen when run via launcher.
- Fix link to
Scale
setting's support docs. - Fix image quality degradation when inpainting an image repeatedly.
- Fix issue with transparent Canvas filter previews blend with unfiltered parent layer.
Enhancements
- Support float, integer and string batch data types.
- Add batch data generators.
- Support grouped (aka zipped) batches.
- Reduce peak memory during FLUX model load.
- Add Noise and Blur filters to Canvas. Adding noise or blurring before generation can add a lot detail, especially when generating from a rough sketch. Thanks @dunkeroni!
- Reworked error handling when installing models from a URL.
- Updated first run screen and OOM error toast with links to Low-VRAM mode docs.
Internal
- Tidied some unused variables. Thanks @rikublock!
- Added typegen check to CI pipeline. Thanks @rikublock!
Docs
- Added stereogram nodes to Community Nodes docs. Thanks @simonfuhrmann!
- Updated installation-related docs (quick start, manual install, dev install).
- Add Low-VRAM mode docs.
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 to get started with the launcher.
If you already have the launcher, you can use it to update your existing install.
We've just updated the launcher to v1.2.1 with a handful of fixes. To update the launcher itself, download the latest version from the quick start guide - the download links are kept up to date.
Legacy Scripts (not recommended!)
We recommend using the launcher, as described in the previous section!
To install or update with the outdated legacy scripts 😱, download the latest legacy scripts and follow the legacy scripts instructions.
What's Changed
- Update Readme with new Installer Instructions by @hipsterusername in #7455
- docs: fix installation docs home by @psychedelicious in #7470
- docs: fix installation docs home again by @psychedelicious in #7471
- feat(ci): add typegen check workflow by @rikublock in #7463
- docs: update download links for launcher by @psychedelicious in #7489
- Add Stereogram Nodes to communityNodes.md by @simonfuhrmann in #7493
- Partial Loading PR1: Tidy ModelCache by @RyanJDick in #7492
- Partial Loading PR2: Add utils to support partial loading of models from CPU to GPU by @RyanJDick in https://github.com/inv...
v5.6.0rc3
This release brings major improvements to Invoke's memory management, new Blur and Noise Canvas filters, and expanded batch capabilities in Workflows.
Changes since previous release candidate (v5.6.0rc2)
- Reduce peak memory during FLUX model load.
- Add
keep_ram_copy_of_weights
config option to reduce average RAM usage. - Revise the default logic for the model cache RAM limit to be more conservative.
- Support float, integer and string batch data types.
- Add batch data generators.
- Support grouped (aka zipped) batches.
- Fix image quality degradation when inpainting an image repeatedly.
- Fix issue with transparent Canvas filter previews blend with unfiltered parent layer.
- Add Noise and Blur filters to Canvas. Adding noise or blurring before generation can add a lot detail, especially when generating from a rough sketch. Thanks @dunkeroni!
Memory Management Improvements (aka Low-VRAM mode)
The goal of these changes is to allow users with low-VRAM GPUs to run even the beefiest models, like the 24GB unquantised FLUX dev model.
Despite the focus on low-VRAM GPUs and the colloquial name "Low-VRAM mode", most users benefit from these improvements to Invoke's memory management.
Low-VRAM mode works on systems with dedicated GPUs (Nvidia GPUs on Windows/Linux and AMD GPUs on Linux). It allows you to generate even if your GPU doesn't have enough VRAM to hold full models.
Low-VRAM mode involves 3 features, each of which can be configured or fine-tuned:
- Partial model loading
- Dynamic RAM and VRAM cache sizes
- Working memory
- Keeping a copy of models in RAM
Most users should only need to enable partial loading by adding this line to your invokeai.yaml
file:
enable_partial_loading: true
🚨 Windows users should also disable the Nvidia sysmem fallback.
For more details and instructions for fine-tuning, see the Low-VRAM mode docs.
Thanks to @RyanJDick for designing and implementing these improvements!
Workflow Batches
We've expanded the capabilities for Batches in Workflows:
- Float, integer and string batch data types
- Batch collection generators
- Grouped (aka zipped) batches
Float, integer and string batch data types
There's a new batch node for of the new data types. They work the same as the existing image batch node.
You can add a list of values directly in the node, but you'll probably find generators to be a nicer way to set up your batch.
Batch collection generators
These are essentially nodes that run in the frontend and generate a list of values to use in a batch node. Included in this release are these generators for floats and integers:
- Arithmetic Sequence: Generate a sequence of
count
numbers, starting fromstart
, that increase or decrease bystep
. - Linear Distribution: Generate a distribution of
count
numbers, starting withstart
and ending withend
. - Uniform Random Distribution: Generation a random distribution of
count
numbers frommin
tomax
. The values are generated randomly when you click Invoke. - Parse String: Split the
input
on the specified character, parsing each value as a number. Non-numbers are ignored.
Screen.Recording.2025-01-17.at.12.26.52.pm.mov
You'll notice the different handle icon for batch generators. These nodes cannot connect to non-batch nodes, which run in the backend.
In the future, we can explore more batch generators. Some ideas:
- Parse File (string, float, integer): Select a file and parse it, splitting on the specified character.
- Board (image): Output all images on a board.
Grouped (aka zipped) batches
When you use multiple batches, we run the graph once for every possible combination of values. In math-y speak, we "take the Cartesian product" of all batch collections.
Consider this simple workflow that joins two strings:
We have two batch collections, each with two strings. This results in 2 * 2 = 4
runs, one for each possible combination of the strings. We get these outputs:
- "a cute cat"
- "a cute dog"
- "a ferocious cat"
- "a ferocious dog"
But what if we wanted to group or "zip" up the two string collections into a single collection, executing the graph once for each pair of strings? This is now possible - we can set both nodes to the same batch group:
This results in 2 runs, one for each "pair" of strings. We get these outputs:
- "a cute cat"
- "a ferocious dog"
It's a bit technical, but if you try it a few times you'll quickly gain an intuition for how things combine. You can use grouped and ungrouped batches arbitrarily - go wild! The Invoke button tooltip lets you know how many executions you'll end up with for the given batch nodes.
Keep in mind that grouped batch collections must have the same size, else we cannot zip them up into one collection. The Invoke button grey out and let you know there is a mismatch.
Details and technical explanation
On the backend, we first zip all grouped batch collections into a single collection. Ungrouped batch collections remain as-is.
Then, we take the product of all batch collections. If there is only a single collection (i.e. a single ungrouped batch nodes, or multiple batch nodes all with the same group), we still do the product operation, but the result is the same as if we had skipped it.
There are 5 slots for groups, plus a 6th ungrouped option:
- None: Batch nodes will always be used as separate collections for the Cartesian product operation.
- Groups 1 - 5: Batch nodes within a given group will first be zipped into a single collection, before the the Cartesian product operation.
All Changes
The launcher itself has been updated to fix a handful of issues, including requiring an install every time you start the launcher and systems with AMD GPUs using CPU. The latest launcher version is v1.2.1.
Fixes
- Fix issue where excessively long board names could cause performance issues.
- Fix error when using DPM++ schedulers with certain models. Thanks @Vargol!
- Fix (maybe, hopefully) the app scrolling off screen when run via launcher.
- Fix link to
Scale
setting's support docs. - Fix image quality degradation when inpainting an image repeatedly.
- Fix issue with transparent Canvas filter previews blend with unfiltered parent layer.
Enhancements
- Support float, integer and string batch data types.
- Add batch data generators.
- Support grouped (aka zipped) batches.
- Reduce peak memory during FLUX model load.
- Add Noise and Blur filters to Canvas. Adding noise or blurring before generation can add a lot detail, especially when generating from a rough sketch. Thanks @dunkeroni!
- Reworked error handling when installing models from a URL.
- Updated first run screen and OOM error toast with links to Low-VRAM mode docs.
Internal
- Tidied some unused variables. Thanks @rikublock!
- Added typegen check to CI pipeline. Thanks @rikublock!
Docs
- Added stereogram nodes to Community Nodes docs. Thanks @simonfuhrmann!
- Updated installation-related docs (quick start, manual install, dev install).
- Add Low-VRAM mode docs.
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 to get started with the launcher.
If you already have the launcher, you can use it to update your existing install.
We've just updated the launcher to v1.2.1 with a handful of fixes. To update the launcher itself, download the latest version from the quick start guide - the download links are kept up to date.
Legacy Scripts (not recommended!)
We recommend using the launcher, as described in the previous section!
To install or update with the outdated legacy scripts 😱, download the latest legacy scripts and follow the legacy scripts instructions.
What's Changed
- Update Readme with new Installer Instructions by @hipsterusername in #7455
- docs: fix installation docs home by @psychedelicious in #7470
- docs: fix installation docs home again by @psychedelicious in #7471
- feat(ci): add typegen check workflow by @rikublock in #7463
- docs: update download links for launcher by @psychedelicious in #7489
- Add Stereogram Nodes to communityNodes.md by @simonfuhrmann in #7493
- Partial Loading PR1: Tidy ModelCache by @RyanJDick in #7492
- Partial Loading PR2: Add utils to support partial loading of models from CPU to GPU by @RyanJDick in #7494
- Partial Loading PR3: Integrate 1) partial loading, 2) quant...
v5.6.0rc2
This release brings major improvements to Invoke's memory management, plus a few minor fixes.
Memory Management Improvements (aka Low-VRAM mode)
The goal of these changes is to allow users with low-VRAM GPUs to run even the beefiest models, like the 24GB unquantised FLUX dev model.
Despite the focus on low-VRAM GPUs and the colloquial name "Low-VRAM mode", most users benefit from these improvements to Invoke's memory management.
Low-VRAM mode works on systems with dedicated GPUs (Nvidia GPUs on Windows/Linux and AMD GPUs on Linux). It allows you to generate even if your GPU doesn't have enough VRAM to hold full models.
Low-VRAM mode involves 3 features, each of which can be configured or fine-tuned:
- Partial model loading
- Dynamic RAM and VRAM cache sizes
- Working memory
Most users should only need to enable partial loading by adding this line to your invokeai.yaml
file:
enable_partial_loading: true
🚨 Windows users should also disable the Nvidia sysmem fallback.
For more details and instructions for fine-tuning, see the Low-VRAM mode docs.
Thanks to @RyanJDick for designing and implementing these improvements!
Changes since previous release candidate (v5.6.0rc1)
- Fix some model loading errors that occurred in edge cases.
- Fix error when using DPM++ schedulers with certain models. Thanks @Vargol!
- Deprecate the
ram
andvram
settings in favor of newmax_cache_ram_gb
andmax_cache_vram_gb
settings. This is eases the upgrade path for users who had manually configuredram
andvram
in the past. - Fix (maybe, hopefully) the app scrolling off screen when run via launcher.
The launcher itself has also been updated to fix a handful of issues, including requiring an install every time you start the launcher and systems with AMD GPUs using CPU.
Other Changes
- Fixed issue where excessively long board names could cause performance issues.
- Reworked error handling when installing models from a URL.
- Fix error when using DPM++ schedulers with certain models. Thanks @Vargol!
- Fix (maybe, hopefully) the app scrolling off screen when run via launcher.
- Updated first run screen and OOM error toast with links to Low-VRAM mode docs.
- Fixed link to
Scale
setting's support docs. - Tidied some unused variables. Thanks @rikublock!
- Added typegen check to CI pipeline. Thanks @rikublock!
- Added stereogram nodes to Community Nodes docs. Thanks @simonfuhrmann!
- Updated installation-related docs (quick start, manual install, dev install).
- Add Low-VRAM mode docs.
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 to get started with the launcher.
If you already have the launcher, you can use it to update your existing install.
We've just updated the launcher to v1.2.1 with a handful of fixes. To update the launcher itself, download the latest version from the quick start guide - the download links are kept up to date.
Legacy Scripts (not recommended!)
We recommend using the launcher, as described in the previous section!
To install or update with the outdated legacy scripts 😱, download the latest legacy scripts and follow the legacy scripts instructions.
What's Changed
- Update Readme with new Installer Instructions by @hipsterusername in #7455
- docs: fix installation docs home by @psychedelicious in #7470
- docs: fix installation docs home again by @psychedelicious in #7471
- feat(ci): add typegen check workflow by @rikublock in #7463
- docs: update download links for launcher by @psychedelicious in #7489
- Add Stereogram Nodes to communityNodes.md by @simonfuhrmann in #7493
- Partial Loading PR1: Tidy ModelCache by @RyanJDick in #7492
- Partial Loading PR2: Add utils to support partial loading of models from CPU to GPU by @RyanJDick in #7494
- Partial Loading PR3: Integrate 1) partial loading, 2) quantized models, 3) model patching by @RyanJDick in #7500
- Correct Scale Informational Popover by @hipsterusername in #7499
- docs: install guides by @psychedelicious in #7508
- docs: no need to specify version for dev env setup by @psychedelicious in #7510
- feat(ui): reset canvas layers only resets the layers by @psychedelicious in #7511
- refactor(ui): mm model install error handling by @psychedelicious in #7512
- fix(api): limit board_name length to 300 characters by @maryhipp in #7515
- fix(app): remove obsolete DEFAULT_PRECISION variable by @rikublock in #7473
- Partial Loading PR 3.5: Fix pre-mature model drops from the RAM cache by @RyanJDick in #7522
- Partial Loading PR4: Enable partial loading (behind config flag) by @RyanJDick in #7505
- Partial Loading PR5: Dynamic cache ram/vram limits by @RyanJDick in #7509
- ui: translations update from weblate by @weblate in #7480
- chore: bump version to v5.6.0rc1 by @psychedelicious in #7521
- Bugfix: Offload of GGML-quantized model in
torch.inference_mode()
cm by @RyanJDick in #7525 - Deprecate
ram
/vram
configs for smoother migration path to dynamic limits by @RyanJDick in #7526 - docs: fix pypi indices for manual install for AMD by @psychedelicious in #7528
- Bugfix: Do not rely on
model.device
if model could be partially loaded by @RyanJDick in #7529 - Fix for DEIS / DPM++ config clash by setting algorithm type - fixes #6368 by @Vargol in #7440
- Whats new 5.6 by @maryhipp in #7527
- fix(ui): prevent canvas & main panel content from scrolling by @psychedelicious in #7532
- docs,ui: low vram guide & first run blurb by @psychedelicious in #7533
- docs: fix incorrect macOS launcher fix command by @psychedelicious in #7536
- chore: bump version to v5.6.0rc2 by @psychedelicious in #7538
New Contributors
- @simonfuhrmann made their first contribution in #7493
Full Changelog: v5.5.0...v5.6.0rc2
v5.6.0rc1
This release brings a two major improvements to Invoke's memory management: partial model loading (aka Low-VRAM mode) and dynamic memory limits.
Memory Management Improvements
Thanks to @RyanJDick for designing and implementing these improved memory management features!
Partial Model Loading (Low-VRAM mode)
Invoke's previous "all or nothing" model loading strategy required your GPU to have enough VRAM to hold whole models during generation.
As a result, as image generation models increased in size and auxiliary models (e.g. ControlNet) became critical to workflows, Invoke's VRAM requirements have increased at the same rate. The increased VRAM requirements have prevent many of our users from running Invoke with the latest and greatest models.
Partial model loading allows Invoke to load only the parts of the model that are actively being used onto the GPU, substantially reducing Invoke's VRAM requirements.
- Applies to systems with a CUDA device.
- Enables large models to run with limited GPU VRAM (e.g. Full 24GB FLUX dev on an 8GB GPU)
- When models are too large to fit on the GPU, they will be partially offloaded to RAM. The model weights are still streamed to the GPU for fast inference. Inference speed won't be as fast as when a model is fully loaded, but will be much faster than running on the CPU.
- The recommended minimum CUDA GPU size is 8GB. An 8GB GPU should now be capable of running all models supported by Invoke (even the full 24GB FLUX models with ControlNet).
- If there is sufficient demand, we could probably support 4GB cards in the future by moving the VAE decoding operation fully to the CPU.
Dynamic Memory Limits
Previously, the amount of RAM and VRAM used for model caching were set to hard limits. Now, the amount of RAM and VRAM used is adjusted dynamically based on what's available.
For most users, this will result in more effective use of their RAM/VRAM without having to tune configuration values.
Users can expect:
- Faster average model load times on systems with extra memory
- Fewer out-of-memory errors when combined with Partial Model Loading
Enabling Partial Model Loading and Dynamic Memory Limits
Partial Model Loading is disabled by default. To enable it, set enable_partial_loading: true
in your invokeai.yaml
:
enable_partial_loading: true
This is highly recommended for users with limited VRAM. Users with 24GB+ of VRAM may prefer to leave this option disabled to guarantee that models get fully-loaded and run at full speed.
Dynamic memory limits are enabled by default, but can be overridden by setting ram
or vram
in your invokeai.yaml
.
# Override the dynamic cache limits to ram=6GB and vram=20GB.
ram: 6
vram: 20
🚨 Note: Users who previously set ram
or vram
in their invokeai.yaml
will need to delete these overrides in order to benefit from the new dynamic memory limits.
All Changes
- Added support for partial model loading.
- Added support for dynamic memory limits.
- Fixed issue where excessively long board names could cause performance issues.
- Reworked error handling when installing models from a URL.
- Fixed link to
Scale
setting's support docs. - Tidied some unused variables. Thanks @rikublock!
- Added typegen check to CI pipeline. Thanks @rikublock!
- Added stereogram nodes to Community Nodes docs. Thanks @simonfuhrmann!
- Updated installation-related docs (quick start, manual install, dev install).
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 to get started with the launcher.
If you already have the launcher, you can use it to update your existing install.
We've just updated the launcher to v1.2.0 with a handful of fixes. To update the launcher itself, download the latest version from the quick start guide - the download links are kept up to date.
Legacy Scripts (not recommended!)
We recommend using the launcher, as described in the previous section!
To install or update with the outdated legacy scripts 😱, download the latest legacy scripts and follow the legacy scripts instructions.
What's Changed
- Update Readme with new Installer Instructions by @hipsterusername in #7455
- docs: fix installation docs home by @psychedelicious in #7470
- docs: fix installation docs home again by @psychedelicious in #7471
- feat(ci): add typegen check workflow by @rikublock in #7463
- docs: update download links for launcher by @psychedelicious in #7489
- Add Stereogram Nodes to communityNodes.md by @simonfuhrmann in #7493
- Partial Loading PR1: Tidy ModelCache by @RyanJDick in #7492
- Partial Loading PR2: Add utils to support partial loading of models from CPU to GPU by @RyanJDick in #7494
- Partial Loading PR3: Integrate 1) partial loading, 2) quantized models, 3) model patching by @RyanJDick in #7500
- Correct Scale Informational Popover by @hipsterusername in #7499
- docs: install guides by @psychedelicious in #7508
- docs: no need to specify version for dev env setup by @psychedelicious in #7510
- feat(ui): reset canvas layers only resets the layers by @psychedelicious in #7511
- refactor(ui): mm model install error handling by @psychedelicious in #7512
- fix(api): limit board_name length to 300 characters by @maryhipp in #7515
- fix(app): remove obsolete DEFAULT_PRECISION variable by @rikublock in #7473
- Partial Loading PR 3.5: Fix pre-mature model drops from the RAM cache by @RyanJDick in #7522
- Partial Loading PR4: Enable partial loading (behind config flag) by @RyanJDick in #7505
- Partial Loading PR5: Dynamic cache ram/vram limits by @RyanJDick in #7509
- ui: translations update from weblate by @weblate in #7480
- chore: bump version to v5.6.0rc1 by @psychedelicious in #7521
New Contributors
- @simonfuhrmann made their first contribution in #7493
Full Changelog: v5.5.0...v5.6.0rc1
v5.5.0
This release brings support for FLUX Control LoRAs to Invoke, plus a few other fixes and enhancements.
It's also the first stable release alongside the new Invoke Launcher!
Invoke Launcher ✨
The Invoke Launcher is a desktop application that can install, update and run Invoke on Windows, macOS and Linux.
It can manage your existing Invoke installation - even if you previously installed with our legacy scripts.
Download the launcher to get started
Refer to the new Quick Start guide for more details. There's a workaround for macOS, which may not let you run the launcher.
FLUX Control LoRAs
Despite having "LoRA" in the name, these models are used in Invoke via Control Layers - like ControlNets. The only difference is that they do not support begin and end step percentages.
So far, BFL has released Canny and Depth models. You can install them from the Model Manager.
Other Changes
Enhancements
-
Support for FLUX Control LoRAs.
-
Improved error handling and recovery for Canvas, preventing Canvas from getting stuck if there is a network issue during some operations.
-
Reduced logging verbosity when default logging settings are used.
Previously, all Uvicorn logging occurred at the same level as the app's logging. This logging was very verbose and frequent, and made the app's terminal output difficult to parse, with lots of extra noise.
The Uvicorn log level is now set independently from the other log namespaces. To control it, set the
log_level_network
property ininvokeai.yaml
. The default iswarning
. To restore the previous log levels, set it toinfo
(e.g.log_level_network: info
).
Fixes
- Image context menu actions to create a Regional and Global Reference Image layers were reversed.
- Missing translation strings.
- Canvas filters could execute twice. Besides being inefficient, on slow network connections, this could cause an error toast to appear even when the filter was successful. They now only execute once.
- Model install error when the path contains quotes. Thanks @Quadiumm!
Internal
- Upgrade docker image to Ubuntu 24.04 and use
uv
for package management. - Fix dynamic invocation values causing non-deterministic OpenAPI schema. This allows us to add a CI check to ensure the OpenAPI schema and TypeScript types are always in sync. Thanks @rikublock!
Translations
- Updated Italian. Thanks @Harvester62!
- Updated German. Thanks @rikublock!
- Updated Vietnamese. Thanks @Linos1391!
- Updated French. Thanks @Ery4z!
Installing and Updating
As mentioned above, 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 to get started with the launcher.
Legacy Scripts (not recommended!)
We recommend using the launcher, as described in the previous section!
To install or update with the outdated legacy scripts 😱, download the latest legacy scripts and follow the legacy scripts instructions.
What's Changed
- [docker] upgrade to ubuntu 24.04 + use uv for package management by @ebr in #7401
- fix(ui): image context menu -> create layer from -> swap regional/global actions by @maryhipp in #7441
- docs: add redirect for patchmatch docs by @psychedelicious in #7443
- fix(ui): missing translation string by @psychedelicious in #7442
- feat(ui): improved canvas/queue error handling by @psychedelicious in #7451
- Support FLUX structural control LoRA models by @RyanJDick in #7450
- LoRA refactor to enable FLUX control LoRAs w/ quantized tranformers by @RyanJDick in #7446
- Add FLUX Control LoRA weight param by @RyanJDick in #7452
- add FLUX control loras to starter models by @maryhipp in #7453
- Add diffusers config object for control loras by @maryhipp in #7454
- chore: bump version to v5.4.4rc1 by @psychedelicious in #7456
- ui: translations update from weblate by @weblate in #7432
- fix(ui): fix double filter on slow networks by @maryhipp in #7457
- raise error if control lora used with schnell by @maryhipp in #7458
- update whats new copy for Control LoRAs by @maryhipp in #7459
- Fix error message when adding a local path with quotes (issue #6517) by @Quadiumm in #7426
- feat(api): less verbose uvicorn logs by @psychedelicious in #7466
- fix(app): fixed InputField default values by @rikublock in #7464
- chore(ui): update typegen schema by @rikublock in #7462
- ui: translations update from weblate by @weblate in #7465
- chore: bump version to v5.5.0rc1 by @psychedelicious in #7461
- chore: bump version to v5.5.0 by @psychedelicious in #7469
New Contributors
Full Changelog: v5.4.3...v5.5.0
v5.5.0rc1
This release brings support for FLUX Control LoRAs to Invoke, plus a few other fixes and enhancements.
FLUX Control LoRAs
Despite having "LoRA" in the name, these models are used in Invoke via Control Layers - like ControlNets. The only difference is that they do not support begin and end step percentages.
So far, BFL has released a Canny and Depth model. You can install them from the Model Manager.
All Changes
Enhancements
-
Support for FLUX Control LoRAs.
-
Improved error handling and recovery for Canvas, preventing Canvas from getting stuck if there is a network issue during some operations.
-
Reduced logging verbosity when default logging settings are used.
Previously, all Uvicorn logging occurred at the same level as the app's logging. This logging was very verbose and frequent, and made the app's terminal output difficult to parse, with lots of extra noise.
The Uvicorn log level is now set independently from the other log namespaces. To control it, set the
log_level_network
property ininvokeai.yaml
. The default iswarning
. To restore the previous log levels, set it toinfo
(e.g.log_level_network: info
).
Fixes
- Image context menu actions to create a Regional and Global Reference Image layers were reversed.
- Missing translation strings.
- Canvas filters could execute twice. Besides being inefficient, on slow network connections, this could cause an error toast to appear even when the filter was successful. They now only execute once.
- Model install error when the path contains quotes. Thanks @Quadiumm!
Internal
- Upgrade docker image to Ubuntu 24.04 and use
uv
for package management. - Fix dynamic invocation values causing non-deterministic OpenAPI schema. This allows us to add a CI check to ensure the OpenAPI schema and TypeScript types are always in sync. Thanks @rikublock!
Translations
- Updated Italian. Thanks @Harvester62!
- Updated German. Thanks @rikublock!
- Updated Vietnamese. Thanks @Linos1391!
- Updated French. Thanks @Ery4z!
Installation and Updating
This is the first Invoke release since we debuted our launcher, a desktop app that can install, upgrade and run Invoke on Windows, macOS and Linux.
While technically still in a prerelease state, it is working well. Download it from the repo's releases page. It works with your existing Invoke installation, or you can use it to do a fresh install.
macOS users may need to do this workaround for macOS until the first stable release of the launcher.
Legacy installer
You can still use our legacy installer scripts to install and run Invoke, though we do plan to deprecate this at some point.
To install or update, download the latest installer and follow the installation instructions.
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- [docker] upgrade to ubuntu 24.04 + use uv for package management by @ebr in #7401
- fix(ui): image context menu -> create layer from -> swap regional/global actions by @maryhipp in #7441
- docs: add redirect for patchmatch docs by @psychedelicious in #7443
- fix(ui): missing translation string by @psychedelicious in #7442
- feat(ui): improved canvas/queue error handling by @psychedelicious in #7451
- Support FLUX structural control LoRA models by @RyanJDick in #7450
- LoRA refactor to enable FLUX control LoRAs w/ quantized tranformers by @RyanJDick in #7446
- Add FLUX Control LoRA weight param by @RyanJDick in #7452
- add FLUX control loras to starter models by @maryhipp in #7453
- Add diffusers config object for control loras by @maryhipp in #7454
- chore: bump version to v5.4.4rc1 by @psychedelicious in #7456
- ui: translations update from weblate by @weblate in #7432
- fix(ui): fix double filter on slow networks by @maryhipp in #7457
- raise error if control lora used with schnell by @maryhipp in #7458
- update whats new copy for Control LoRAs by @maryhipp in #7459
- Fix error message when adding a local path with quotes (issue #6517) by @Quadiumm in #7426
- feat(api): less verbose uvicorn logs by @psychedelicious in #7466
- fix(app): fixed InputField default values by @rikublock in #7464
- chore(ui): update typegen schema by @rikublock in #7462
- ui: translations update from weblate by @weblate in #7465
- chore: bump version to v5.5.0rc1 by @psychedelicious in #7461
New Contributors
Full Changelog: v5.4.3...v5.5.0rc1
v5.4.4rc1
This release brings support for FLUX Control LoRAs to Invoke, plus a few other fixes and enhancements.
FLUX Control LoRAs
Despite having "LoRA" in the name, these models are used in Invoke via Control Layers - like ControlNets. The only difference is that they do not support begin and end step percentages.
So far, BFL has released a Canny and Depth model. You can install them from the Model Manager.
All Changes
Enhancements
- Support for FLUX Control LoRAs.
- Improved error handling and recovery for Canvas, preventing Canvas from getting stuck if there is a network issue during some operations.
Fixes
- Image context menu actions to create a Regional and Global Reference Image layers were reversed.
- Missing translation strings.
Internal
- Upgrade docker image to Ubuntu 24.04 and use
uv
for package management.
Translations
- Updated Italian. Thanks @Harvester62!
- Updated German. Thanks @rikublock!
- Updated Vietnamese. Thanks @Linos1391!
- Updated French. Thanks @Ery4z!
Installation and Updating
This is the first Invoke release since we debuted our launcher, a desktop app that can install, upgrade and run Invoke on Windows, macOS and Linux.
While technically still in a prerelease state, it is working well. Download it from the repo's releases page. It works with your existing Invoke installation, or you can use it to do a fresh install.
macOS users may need to do this workaround for macOS until the first stable release of the launcher.
Legacy installer
You can still use our legacy installer scripts to install and run Invoke, though we do plan to deprecate this at some point.
To install or update, download the latest installer and follow the installation instructions.
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- [docker] upgrade to ubuntu 24.04 + use uv for package management by @ebr in #7401
- fix(ui): image context menu -> create layer from -> swap regional/global actions by @maryhipp in #7441
- docs: add redirect for patchmatch docs by @psychedelicious in #7443
- fix(ui): missing translation string by @psychedelicious in #7442
- feat(ui): improved canvas/queue error handling by @psychedelicious in #7451
- Support FLUX structural control LoRA models by @RyanJDick in #7450
- LoRA refactor to enable FLUX control LoRAs w/ quantized tranformers by @RyanJDick in #7446
- Add FLUX Control LoRA weight param by @RyanJDick in #7452
- add FLUX control loras to starter models by @maryhipp in #7453
- Add diffusers config object for control loras by @maryhipp in #7454
- chore: bump version to v5.4.4rc1 by @psychedelicious in #7456
- ui: translations update from weblate by @weblate in #7432
Full Changelog: v5.4.3...v5.4.4rc1
v5.4.3
This minor release adds initial support for FLUX Regional Guidance, arrow key nudge on Canvas, plus an assortment of fixes and enhancements.
Changes
Enhancements
- Add 1-pixel
nudge
to the move tool on Canvas. Use the arrow keys to make fine adjustments to a layer's position. Thanks @hippalectryon-0! - Change the default infill method from
patchmatch
tolama
. You can usepatchmatch
. - Add empty state for Global Reference Images and Regional Guidance Reference Images, similar to the empty state for Control Layers. A blurb directs users to upload an image or drag an image from gallery to set the image.
- FLUX performance improvements (~10% speed-up).
- Added
ImagePanelLayoutInvocation
to facilitate FLUX IC-LoRA workflows. - FLUX Regional Guidance support (beta). Only positive prompts are supported; negative prompts, reference images and auto-negative are not supported for FLUX Regional Guidance.
- Canvas layers now have a warning indicator that indicates issues with the layer that could prevent invoking or cause a problem.
New Layer from Image
functions added to Canvas Staging Area Toolbar. These create a new layer without dismissing the rest of the staged images.- Improved empty state for Regional Guidance Reference Images.
- Added missing
New from...
image context menu actions:Reference Image (Regional)
andReference Image (Global)
- Added Vietnamese to language picker in Settings.
Fixes
- Soft Edge (Lineart, Lineart Anime) Control Layers default to the Soft Edge filter correctly.
- Remove the nonfunctional
width
andheight
outputs from theImage Batch
node. If you want to usewidth
andheight
in a batch, route theimage
fromImage Batch
to anImage Primitive
node, which outputswidth
andheight
. - Ensure invocation templates have fully parsed before running studio init actions.
- Bumped
transformers
to get a fix for Depth Anything artifacts. - False negative edge case with
picklescan
. - Invoke queue actions menu's Cancel Current action erroneously cleared the entire queue. Thanks @rikublock!
- New Reference Images could inadvertently have the last-used Reference Image populated on creation.
- Error when importing GGUF models. Thanks @JPPhoto!
- Canceling any queue item from the Queue tab also erroneously canceled the currently-executing queue item.
Internal
- Add redux actions for support video modal.
- Tidied various things related to the queue. Thanks @rikublock!
Docs
- General tidy across many docs pages. Thanks @magnusviri!
- Fixed a few broken links. Thanks @emmanuel-ferdman!
Translations
- Updated Italian translations. Thanks @Harvester62!
- Updated Vietnamese translations. Thanks @Linos1391!
Installation and Updating
To install or update, download the latest installer and follow the installation instructions
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- fix(api): make sure Soft Edge Detection has preprocessor applied by @maryhipp in #7360
- fix(ui): disable width and height output on image batch output by @psychedelicious in #7361
- feat(ui): set default infill method to lama by @psychedelicious in #7362
- fix(ui): make sure schema has loaded before trying to load any workflows by @maryhipp in #7364
- feat(ui): add actions for video modal clicks by @maryhipp in #7365
- feat(ui): add empty state for regional guidance ref image by @psychedelicious in #7363
- feat(ui): nudge on canvas by @psychedelicious in #7368
- chore: bump version to v5.4.3rc1 by @psychedelicious in #7369
- fix(ui): use token for download if its in store by @maryhipp in #7373
- Create SECURITY.md by @hipsterusername in #7376
- misc(ui): various copy updates by @maryhipp in #7382
- fix: Fail scan on InvalidMagicError in picklescan, update default for… by @brandonrising in #7381
- Add
ImagePanelLayoutInvocation
utility to facilitate In-Context LoRA workflows by @RyanJDick in #7374 - Bump transformers to ingest a DepthAnything post-processing fix by @RyanJDick in #7386
- docs: update code of conduct reference by @emmanuel-ferdman in #7380
- FLUX Regional Prompting by @RyanJDick in #7388
- FLUX Speed Improvements (~10% speedup) by @RyanJDick in #7399
- Update node vers by @JPPhoto in #7403
- feat(ui): add
New Layer from Image
menu to staging area toolbar by @psychedelicious in #7389 - refactor(ui): move clear queue hook to separate file by @rikublock in #7391
- fix(ui): call cancel instead of clear queue by @rikublock in #7392
- chore(ui): update typegen schema by @rikublock in #7394
- fix(app): adjust session queue api type by @rikublock in #7393
- ui: translations update from weblate by @weblate in #7397
- feat(ui): less confusing empty state for rg ref images by @psychedelicious in #7407
- fix(ui): ref image defaults to prev ref image's image selection by @psychedelicious in #7408
- feat(ui): add gallery image ctx menu items to create ref image from image by @psychedelicious in #7409
- fix(ui): allow invoke when inpaint/raster layers are empty by @psychedelicious in #7410
- fix(ui): remove "adding to" text on Invoke tooltip on Workflows/Upscaling tabs by @psychedelicious in #7411
- feat(ui): add vietnamese to language picker by @psychedelicious in #7412
- fix(worker): only apply processor cancel logic if cancel event is for current item by @maryhipp in #7416
- ui: translations update from weblate by @weblate in #7415
- Fix gguf importing by @JPPhoto in #7405
- [docs] Fix documentation broken links and remove whitespace at end of lines by @magnusviri in #7402
- ui: translations update from weblate by @weblate in #7418
- chore: bump version to v5.4.3rc2 by @psychedelicious in #7413
- fix(app): processor cancelation weirdness by @psychedelicious in #7421
- fix(ui): skip disabled global reference image by @psychedelicious in #7420
- Revert FLUX performance improvement that fails on MacOS by @RyanJDick in #7423
- ui: translations update from weblate by @weblate in #7419
- ui: translations update from weblate by @weblate in #7425
- chore: bump version to v5.4.3 by @psychedelicious in #7424
- fix(ui): capitalization for vietnamese language by @psychedelicious in #7427
New Contributors
- @emmanuel-ferdman made their first contribution in #7380
Full Changelog: v5.4.2...v5.4.3
v5.4.3rc2
This minor release adds initial support for FLUX Regional Guidance, arrow key nudge on Canvas, plus an assortment of fixes and enhancements.
Changes
Enhancements
- Add 1-pixel
nudge
to the move tool on Canvas. Use the arrow keys to make fine adjustments to a layer's position. Thanks @hippalectryon-0! - Change the default infill method from
patchmatch
tolama
. You can usepatchmatch
. - Add empty state for Global Reference Images and Regional Guidance Reference Images, similar to the empty state for Control Layers. A blurb directs users to upload an image or drag an image from gallery to set the image.
- FLUX performance improvements (~10% speed-up).
- Added
ImagePanelLayoutInvocation
to facilitate FLUX IC-LoRA workflows. - FLUX Regional Guidance support (beta). Only positive prompts are supported; negative prompts, reference images and auto-negative are not supported for FLUX Regional Guidance.
- Canvas layers now have a warning indicator that indicates issues with the layer that could prevent invoking or cause a problem.
New Layer from Image
functions added to Canvas Staging Area Toolbar. These create a new layer without dismissing the rest of the staged images.- Improved empty state for Regional Guidance Reference Images.
- Added missing
New from...
image context menu actions:Reference Image (Regional)
andReference Image (Global)
- Added Vietnamese to language picker in Settings.
Fixes
- Soft Edge (Lineart, Lineart Anime) Control Layers default to the Soft Edge filter correctly.
- Remove the nonfunctional
width
andheight
outputs from theImage Batch
node. If you want to usewidth
andheight
in a batch, route theimage
fromImage Batch
to anImage Primitive
node, which outputswidth
andheight
. - Ensure invocation templates have fully parsed before running studio init actions.
- Bumped
transformers
to get a fix for Depth Anything artifacts. - False negative edge case with
picklescan
. - Invoke queue actions menu's Cancel Current action erroneously cleared the entire queue. Thanks @rikublock!
- New Reference Images could inadvertently have the last-used Reference Image populated on creation.
- Error when importing GGUF models. Thanks @JPPhoto!
- Canceling any queue item from the Queue tab also erroneously canceled the currently-executing queue item.
Internal
- Add redux actions for support video modal.
- Tidied various things related to the queue. Thanks @rikublock!
Docs
- General tidy across many docs pages. Thanks @magnusviri!
- Fixed a few broken links. Thanks @emmanuel-ferdman!
Translations
- Updated Italian translations. Thanks @Harvester62!
Installation and Updating
To install or update, download the latest installer and follow the installation instructions
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- fix(api): make sure Soft Edge Detection has preprocessor applied by @maryhipp in #7360
- fix(ui): disable width and height output on image batch output by @psychedelicious in #7361
- feat(ui): set default infill method to lama by @psychedelicious in #7362
- fix(ui): make sure schema has loaded before trying to load any workflows by @maryhipp in #7364
- feat(ui): add actions for video modal clicks by @maryhipp in #7365
- feat(ui): add empty state for regional guidance ref image by @psychedelicious in #7363
- feat(ui): nudge on canvas by @psychedelicious in #7368
- chore: bump version to v5.4.3rc1 by @psychedelicious in #7369
- fix(ui): use token for download if its in store by @maryhipp in #7373
- Create SECURITY.md by @hipsterusername in #7376
- misc(ui): various copy updates by @maryhipp in #7382
- fix: Fail scan on InvalidMagicError in picklescan, update default for… by @brandonrising in #7381
- Add
ImagePanelLayoutInvocation
utility to facilitate In-Context LoRA workflows by @RyanJDick in #7374 - Bump transformers to ingest a DepthAnything post-processing fix by @RyanJDick in #7386
- docs: update code of conduct reference by @emmanuel-ferdman in #7380
- FLUX Regional Prompting by @RyanJDick in #7388
- FLUX Speed Improvements (~10% speedup) by @RyanJDick in #7399
- Update node vers by @JPPhoto in #7403
- feat(ui): add
New Layer from Image
menu to staging area toolbar by @psychedelicious in #7389 - refactor(ui): move clear queue hook to separate file by @rikublock in #7391
- fix(ui): call cancel instead of clear queue by @rikublock in #7392
- chore(ui): update typegen schema by @rikublock in #7394
- fix(app): adjust session queue api type by @rikublock in #7393
- ui: translations update from weblate by @weblate in #7397
- feat(ui): less confusing empty state for rg ref images by @psychedelicious in #7407
- fix(ui): ref image defaults to prev ref image's image selection by @psychedelicious in #7408
- feat(ui): add gallery image ctx menu items to create ref image from image by @psychedelicious in #7409
- fix(ui): allow invoke when inpaint/raster layers are empty by @psychedelicious in #7410
- fix(ui): remove "adding to" text on Invoke tooltip on Workflows/Upscaling tabs by @psychedelicious in #7411
- feat(ui): add vietnamese to language picker by @psychedelicious in #7412
- fix(worker): only apply processor cancel logic if cancel event is for current item by @maryhipp in #7416
- ui: translations update from weblate by @weblate in #7415
- Fix gguf importing by @JPPhoto in #7405
- [docs] Fix documentation broken links and remove whitespace at end of lines by @magnusviri in #7402
- ui: translations update from weblate by @weblate in #7418
- chore: bump version to v5.4.3rc2 by @psychedelicious in #7413
New Contributors
- @emmanuel-ferdman made their first contribution in #7380
Full Changelog: v5.4.2...v5.4.3rc2
v5.4.3rc1
This minor release adds arrow key nudge on Canvas, plus a handful of fixes and enhancements.
Changes
Enhancements
- Add 1-pixel
nudge
to the move tool on Canvas. Use the arrow keys to make fine adjustments to a layer's position. Thanks @hippalectryon-0! - Change the default infill method from
patchmatch
tolama
. You can usepatchmatch
. - Add empty state for Global Reference Images and Regional Guidance Reference Images, similar to the empty state for Control Layers. A blurb directs users to upload an image or drag an image from gallery to set the image.
Fixes
- Soft Edge (Lineart, Lineart Anime) Control Layers default to the Soft Edge filter correctly.
- Remove the nonfunctional
width
andheight
outputs from theImage Batch
node. If you want to usewidth
andheight
in a batch, route theimage
fromImage Batch
to anImage Primitive
node, which outputswidth
andheight
. - Ensure invocation templates have fully parsed before running studio init actions.
Internal
- Add redux actions for support video modal.
Installation and Updating
To install or update, download the latest installer and follow the installation instructions
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- fix(api): make sure Soft Edge Detection has preprocessor applied by @maryhipp in #7360
- fix(ui): disable width and height output on image batch output by @psychedelicious in #7361
- feat(ui): set default infill method to lama by @psychedelicious in #7362
- fix(ui): make sure schema has loaded before trying to load any workflows by @maryhipp in #7364
- feat(ui): add actions for video modal clicks by @maryhipp in #7365
- feat(ui): add empty state for regional guidance ref image by @psychedelicious in #7363
- feat(ui): nudge on canvas by @psychedelicious in #7368
- chore: bump version to v5.4.3rc1 by @psychedelicious in #7369
Full Changelog: v5.4.2...v5.4.3rc1