Releases: invoke-ai/InvokeAI
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
v5.4.2
This release includes support for FLUX IP Adapter v2 and image "batching" for Workflows.
Image Batching for Workflows
The Workflow Editor now supports running a given workflow for each image in a collection of images.
Add an Image Batch
node, drag some images into its image collection, and connect its output to any other node(s). Invoke will run the workflow once for each image in the collection.
Here are a few examples to help build intuition for the feature. Click the arrow to expand each example.
Example 1 - Single Batch -> Single Node
The simplest case is using a batch image output with a single node. Here's a workflow that resizes 5 images to 200x200 thumbnails.
Workflow
Results
This batch queues 5 graphs, each containing a single resize node with one of the 5 images in the batch list. Note the images are 200x200 pixels.
Example 2 - Single Batch -> Multiple Nodes
You can also use a batch image output with multiple nodes. This contrived workflow resizes the image to a 200x200 thumbnail, like the previous example, the pastes the thumbnail on the full size image.
Workflow
Results
This batch also queues 5 graphs, each of which contains one resize and one paste node. In each graph, the nodes get the image of the 5 images in the batch collection. The batch node can connect to any number of other nodes. For each queued graph, all connected nodes will get the same image.
Example 3 - Multiple Batches (Product Batching)
When multiple batches are used, they are combined such that all permutations are queued (e.g. the product of batches is taken).
Workflow
Results
In this case, the product of the two batches is 15 graphs. Each image of the 3-image batch is used as the base image, and a thumbnail of each tiger is pasted on top of it. We'll call this "product" batching.
Zipped Batching
The batching API supports "zipped" batches, where the batch collections are merged into a single batch.
For example, imagine two batches of 5 images. As described in the "product" example above, you'd get 5 images * 5 images = 25 graphs. Zipped batching would instead take the first image from each of the two batches and use them together in the first graph, then take the second two images for the second graph, and so on.
Zipped batching is not supported in the UI at this time.
Versus Iterate
Nodes
We support similar functionality to batching with Iterate
nodes, so why add batching? In short, Iterate
nodes have some technical issues which are addressed by batching.
Why `Iterate` Nodes are Scary
They result in unbounded graph complexity and size. If you don't know what these words mean, but they sound kinda scary, congrats! You are on the right track. They are indeed scary words.
- When using
Iterate
nodes, the graph is expanded with new nodes and edges during execution. Pretty scary. - We cannot know ahead of time how much the graph will expand, because iterate nodes' collections are dynamic. Terrifying.
- Multiple iterate nodes combine via Cartesian product, resulting in combinatorial explosion. Your graph could be running at the heat death of the universe. Existential dread.
Batch collections are defined up front and don't expand the graph. We know exactly the complexity we are getting into before the graph executes. Sanity restored!
Batching also more intuitive - we run exactly this graph, once for each image.
Unlike Iterate
nodes, Image Batch
nodes' collections cannot be provided by other nodes in the graph. The collection must be defined up-front, so you cannot replace Iterate
with Image Batch
for all use-cases.
Nevertheless, we suggest using batching where possible.
Other Notes
- We've added
Image Batch
nodes first because it images are the highest-impact field type, but the batching API supports arbitrary field types. In fact, the Canvas uses bothint
andstr
fields internally. We'll save nodes for other field types for a future enhancement. - If you want to batch over a board, you'll need to drag all images from the board into the batch collection. We'll explore a simpler way to use a board's images for a batch in a future enhancement.
- It is not possible to combine all outputs from a batch within the same workflow.
Other Changes
Enhancements
- Support for FLUX IP Adapter v2. We've optimized internal handling for v2, and you may find FLUX IP Adapter v1 results are degraded. Update to v2 to fix this.
- Updated image collection inputs for nodes. You may now drag images into collections directly.
- Brought some of @dwringer's often-requested composition nodes into Invoke's core nodes. They have been renamed to not conflict with your existing install of the node pack. Thanks for your work on these very useful nodes @dwringer!
- Show tab-specific info in the Invoke button's tooltip.
- Update the
New from Image
context menu actions. The actions that resize the image after creating a new Canvas are clearly named. - Change the
Reset Canvas
button, which was too similar to theDelete Image
button, into a menu with more options:- New Canvas Session: Resets all generation settings, resets all layers, and enables Send to Canvas.
- New Gallery Session: Resets all generation settings, resets all layers, and enables Send to Gallery.
- Reset Generation Settings: Resets all generation settings, leaving layers alone.
- Reset Canvas Layers: Resets all layers, leaving generation settings alone.
- New Support Videos button in the bottom-left corner of the app, which lists and links to videos on our YouTube channel.
Fixes
- Added padding to the metadata recall buttons in the metadata viewer, so they aren't cut off by other UI elements.
- The progress bar stopped throbbing in the last release. We apologize for this oversight. Throbbing has been restored.
- Addressed some edge cases that could cause the UI to crash with an error about an entity not found.
- Updated grid size for SD3.5 models to 16px. Thanks for the heads up @dunkeroni.
Internal
- Removed a node with a GPL-3 dependency (
easing-functions
), which had been contributed in thestep_param_easing
node that used it. While this node has been deprecated, please let us know if you were using this node, and the use-cases, so that we can better design inputs where these are found helpful.
Translations
We have had some issues communicating with "walk-in" translators on Weblate, resulting in translations being changed when they are already correct. To mitigate this, we are trying a more restricted Weblate translation setup. Access to contribute translations must be granted by @Harvester62. Please @ them in the #translators channel on discord to get access.
Our Weblate also has an account issue and is currently locked. This is unrelated to the access restriction changes.
We apologize for any inconvenience this change may cause. Thanks to all our translators for their continued efforts!
- Updated Chinese (Simplified). Thanks @youo0o0!
- Updated Italian. Thanks @Harvester62!
- Updated Spanish. Thanks gallegonovato (weblate user)!
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
- feat(ui): deferred invocation progress details for model loading by @maryhipp in #7320
- fix(ui): add padding to the metadata recall section so buttons are not blocked by @maryhipp in #7326
- ui: translations update from weblate by @weblate in #7323
- remove GPL-3 licensed package easing-functions by @maryhipp in #7337
- fix(ui): progress bar not throbbing when it should by @psychedelicious in #7332
- fix(ui): prevent entity not found errors by @psychedelicious in #7340
- XLabs FLUX IP-Adapter v2 by @RyanJDick in #7338
- feat(ui): image batching in workflows by @psychedelicious in #7343
- fix(ui): add sd-3 grid size of 16px to grid util by @psychedelicious in #7346
- chore: bump version to v5.4.2rc1 by @psychedelicious in #7344
- ui: translations update from weblate by @weblate in #7331
- feat: ingest composition node...
v5.4.2rc1
This release candidate includes support for FLUX IP Adapter v2 and image "batching" for Workflows.
Image Batching for Workflows
Invoke's Workflow Editor now supports running a given workflow for each image in a collection of images.
Add an Image Batch
node, drag some images into its image collection, and connect its output to any other node(s). Invoke will run the workflow once for each image in the collection.
Here are a few examples to help build intuition for the feature.
Example 1 - Single Batch -> Single Node
The simplest case is using a batch image output with a single node. Here's a workflow that resizes 5 images to 200x200 thumbnails.
Workflow
Results
This batch queues 5 graphs, each containing a single resize node with one of the 5 images in the batch list. Note the images are 200x200 pixels.
Example 2 - Single Batch -> Multiple Nodes
You can also use a batch image output with multiple nodes. This contrived workflow resizes the image to a 200x200 thumbnail, like the previous example, the pastes the thumbnail on the full size image.
Workflow
Results
This batch also queues 5 graphs, each of which contains one resize and one paste node. In each graph, the nodes get the image of the 5 images in the batch collection. The batch node can connect to any number of other nodes. For each queued graph, all connected nodes will get the same image.
Example 3 - Multiple Batches (Product Batching)
When multiple batches are used, they are combined such that all permutations are queued (e.g. the product of batches is taken).
Workflow
Results
In this case, the product of the two batches is 15 graphs. Each image of the 3-image batch is used as the base image, and a thumbnail of each tiger is pasted on top of it. We'll call this "product" batching.
Zipped Batching
The batching API supports "zipped" batches, where the batch collections are merged into a single batch.
For example, imagine two batches of 5 images. As described in the "product" example above, you'd get 5 images * 5 images = 25 graphs. Zipped batching would instead take the first image from each of the two batches and use them together in the first graph, then take the second two images for the second graph, and so on.
Zipped batching is not supported in the UI at this time.
Versus Iterate
Nodes
We support similar functionality to batching with Iterate
nodes, so why add batching? In short, Iterate
nodes have some technical issues avoided by batching.
Why `Iterate` Nodes are Scary
They result in unbounded graph complexity and size. If you don't know what these words mean, but they sound kinda scary, congrats! You are on the right track. They are indeed scary words.
- When using
Iterate
nodes, the graph is expanded with new nodes and edges during execution. Pretty scary. - We cannot know ahead of time how much the graph will expand, because iterate nodes' collections are dynamic. Terrifying.
- Multiple iterate nodes combine via Cartesian product, resulting in combinatorial explosion. Your graph could be running at the heat death of the universe. Existential dread.
Batch collections are defined up front and don't expand the graph. We know exactly the complexity we are getting into before the graph executes. Sanity restored!
Batching also more intuitive - we run exactly this graph, once for each image.
Unlike Iterate
nodes, Image Batch
nodes' collections cannot be provided by other nodes in the graph. The collection must be defined up-front, so you cannot replace Iterate
with Image Batch
for all use-cases.
Nevertheless, we suggest using batching where possible.
Other Notes
- We've added
Image Batch
nodes first because it images are the highest-impact field type, but the batching API supports arbitrary field types. In fact, the Canvas uses bothint
andstr
fields internally. We'll save nodes for other field types for a future enhancement. - If you want to batch over a board, you'll need to drag all images from the board into the batch collection. We'll explore a simpler way to use a board's images for a batch in a future enhancement.
- It is not possible to combine all outputs from a batch within the same workflow.
Other Changes
Enhancements
- Support for FLUX IP Adapter v2. We've optimized internal handling for v2, and you may find FLUX IP Adapter v1 results are degraded. Update to v2 to fix this.
- Updated image collection inputs for nodes. You may now drag images into collections directly.
Fixes
- Added padding to the metadata recall buttons in the metadata viewer, so they aren't cut off by other UI elements.
- The progress bar stopped throbbing in the last release. We apologize for this oversight. Throbbing has been restored.
- Addressed some edge cases that could cause the UI to crash with an error about an entity not found.
- Updated grid size for SD3.5 models to 16px. Thanks for the heads up @dunkeroni.
Internal
- Removed a node with a GPL-3 dependency (
easing-functions
), which had been contributed in thestep_param_easing
node that used it. While this node has been deprecated, please let us know if you were using this node, and the use-cases, so that we can better design inputs where these are found helpful.
Translations
We have had some issues communicating with "walk-in" translators on Weblate, resulting in translations being changed when they are already correct. To mitigate this, we are trying a more restricted Weblate translation setup. Access to contribute translations must be granted by @Harvester62. Please @ them in the #translators channel on discord to get access.
We apologize for any inconvenience this change may cause. Thanks to all our translators for their continued efforts!
- Updated Chinese (Simplified). Thanks @youo0o0!
- Updated Italian. Thanks @Harvester62!
- Updated Spanish. Thanks gallegonovato (weblate user)!
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
- feat(ui): deferred invocation progress details for model loading by @maryhipp in #7320
- fix(ui): add padding to the metadata recall section so buttons are not blocked by @maryhipp in #7326
- ui: translations update from weblate by @weblate in #7323
- remove GPL-3 licensed package easing-functions by @maryhipp in #7337
- fix(ui): progress bar not throbbing when it should by @psychedelicious in #7332
- fix(ui): prevent entity not found errors by @psychedelicious in #7340
- XLabs FLUX IP-Adapter v2 by @RyanJDick in #7338
- feat(ui): image batching in workflows by @psychedelicious in #7343
- fix(ui): add sd-3 grid size of 16px to grid util by @psychedelicious in #7346
- chore: bump version to v5.4.2rc1 by @psychedelicious in #7344
- ui: translations update from weblate by @weblate in #7331
Full Changelog: v5.4.1...v5.4.2rc1
v5.4.1
This release includes support for SD 3.5, plus a number of fixes and improvements.
We pulled v5.4.0 due to issues with model installation and loading. This release (v5.4.1) resolves those issues and includes all changes from v5.4.0.
Enhancements
- Support for SD 3.5 Medium and Large. You can download them in the starter models.
- Moved
Denoising Strength
slider to top of Layers panel with updated UI and info popover. - Update viewer styling to have a menubar-ish header. Also used for image comparison.
- Layer preview tooltip with larger sized preview.
- Empty state for Control Layers, guiding user to upload an image, drag an image from gallery or start drawing.
- "Simple" mode for control layers filtering, triggered when you select a control model. This automatically selects and processes the default filter for that model, if a default exists. If the user clicks
Advanced
, they get the full filter settings UI. Control Layers now start with no model selected, implicitly directing users into this flow. - Updated default control weight to 0.75 and end step % to 0.75. Updated label for the
Balanced
control mode, indicating it is the recommended setting. - The FLUX Denoise node now has a flag to skip adding noise to input latents. This is useful for switching models mid-generation and other fancy denoising techniques. Thanks @JPPhoto!
- Migrated the UI's drag-and-drop functionality to a new library, improving the overall performance of dnd. It also allows us to support external dnd. For example, dragging images from the OS directly into the canvas is now possible (not implemented in this release).
- Canvas layers may be sorted via drag-and-drop.
- When graph building fails, you will see an error toast. Previously, it only logged a message to the browser's JS console.
- Updated model warnings on Upscaling tab to not be misleading.
- More FLUX LoRA format support.
- Show alert over canvas/viewer with invocation progress event messages.
- Tweak gallery image selection styles to better differentiate between hovered and selected.
Output Only Masked Regions
renamed toOutput only Generated Regions
and now enabled by default.
Fixes
- Canvas progress images do not clear when canceling generation after at least one image has been staged.
- Tooltips on boards list stay open when scrolling, potentially causing the whole app to scroll.
- Saving canvas to gallery does not create a new image in gallery.
- Applying a filter could erase or otherwise change a layer's data unexpectedly, causing a range of user-facing generation issues.
- Unable to queue graphs with the Segment Anything node when its inputs were provided by connection.
- Unable to load a workflow from file when using the three-dots menu.
pip
downloadstorch
twice. This didn't cause any application issues - just a waste of time and bandwidth. We pinnedtorch
to<2.5.0
to preventpip
's dependency resolver from getting confused.mediapipe
install issue on Windows, related to its latest release. We pinnedmediapipe
to a known working version.- CLIP Vision error when using FLUX IP Adapter.
- Fit bbox to layers math could result in a slightly-too-large bbox.
- Outdated link to FLUX IP Adapter. Thanks @RadTechDad!
- Force a compatible precision for FLUX VAEs to prevent black outputs.
Translations
We have had some issues communicating with "walk-in" translators on Weblate, resulting in translations being changed when they are already correct. To mitigate this, we are trying a more restricted Weblate translation setup. Access to contribute translations must be granted by @Harvester62. Please @ them in the #translators channel on discord to get access.
We apologize for any inconvenience this change may cause. Thanks to all our translators for their continued efforts!
- Updated German. Thanks @rikublock!
- Updated Chinese (Simplified). Thanks @youo0o0!
- Updated Italian. Thanks @Harvester62 & @dakota2472!
- Updated Spanish. Thanks gallegonovato (weblate user)!
- Updated Vietnamese. Thanks Linos (weblate user)!
- Updated Japanese. Thanks @GGSSKK!
Internal
- Simplified parameter schema declarations. Thanks @rikublock!
- Simplified dnd image and gallery rendering, resulting in improved performance.
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
- Pin torch to <2.5.0 to prevent unnecessary downloads by @ebr in #7247
- fix(ui): misc fixes by @psychedelicious in #7252
- fix(nodes): relaxed validation for segment anything by @psychedelicious in #7253
- fix(ui): load workflow from file by @psychedelicious in #7254
- fix(deps): pin mediapipe strictly to a known working version by @ebr in #7258
- Ryan/sd3 diffusers by @maryhipp in #7222
- chore: bump version to v5.4.0 by @psychedelicious in #7259
- fix: Never throw an exception when finding the clip variant type by @brandonrising in #7263
- fix(ui): add some feedback while layers are merging by @maryhipp in #7265
- feat(api,ui): allow Whats New module to get content from back-end by @maryhipp in #7268
- fix(ui): fix link for infill method popover by @maryhipp in #7269
- update Whats New for 5.3.1 by @maryhipp in #7272
- fix(ui): bad merge conflict by @maryhipp in #7273
- fix: get_clip_variant_type should never return None by @brandonrising in #7275
- feat(ui): denoising strength UI by @maryhipp in #7262
- chore(gh): update pr template w/ reminder for what's new copy by @psychedelicious in #7274
- feat(ui): simplify parameter schema declaration by @rikublock in #7281
- feat(ui): new user ux improvements by @psychedelicious in #7279
- fix: Avoid downloading unsafe .bin files if a safetensors file is ava… by @brandonrising in #7282
- fix: Look in known subfolders for configs for clip variants by @brandonrising in #7283
- chore: release v5.4.1rc1 by @psychedelicious in #7285
- Update flux_denoise.py by @JPPhoto in #7270
- fix(app): silence pydantic protected namespace warning by @psychedelicious in #7291
- chore(ui): migrate dnd library by @psychedelicious in #7288
- chore: bump version to v5.4.1rc2 by @psychedelicious in #7293
- fix(ui): FLUX IP adapter clip vision model error by @psychedelicious in #7292
- fix(ui): excessive toasts when generating on canvas by @psychedelicious in #7294
- fix(ui): fit bbox to layers math by @psychedelicious in #7297
- fix(ui): restore missing image paste handler by @psychedelicious in #7298
- feat(ui): update warnings on upscaling tab based on model arch by @psychedelicious in #7299
- feat(ui): clarify denoising strength badge text by @psychedelicious in #7304
- Updated link to flux ip adapter model by @RadTechDad in #7309
- Flux Vae broke for float16, force bfloat16 or float32 were compatible by @Vargol in #7213
- Fix FLUX diffusers LoRA models with no
.proj_mlp
layers by @RyanJDick in #7313 - SD3 Image-to-Image and Inpainting by @RyanJDick in #7295
- (ui): update en string for full IP adapter by @maryhipp in #7312
- feat(ui, worker): add invocation progress events to model loading by @maryhipp in #7286
- feat(ui): tweak image selection/hover styling by @psychedelicious in #7302
- feat(ui): update output only masked regions by @psychedelicious in #7303
- fix(ui): image uploading handling by @psychedelicious in #7315
- fix(ui): unable to use text inputs within draggable by @psychedelicious in #7316
- fix(ui): multiple selection dnd sometimes doesn't get full selection by @psychedelicious in #7317
- fix(ui): remove progress message condition for canvas destinations by @psychedelicious in #7319
- ui: translations update from weblate by @weblate in #7242
New Contributors
- @RadTechDad made their fi...
v5.4.1rc2
This release brings support for SD 3.5 to Workflows, plus a number of fixes and improvements.
We pulled v5.4.0 due to issues with model installation and loading. This release (v5.4.1) resolves those issues and includes all changes from v5.4.0.
SD 3.5
We've added initial support for SD 3.5 in workflows. Currently, only Text-to-Image is supported. We'll add Image-to-Image support along Canvas support in the next few days.
Both SD 3.5 Large and Medium are supported and available via starter models. A sample workflow to get you started is in the Workflow Library. The node is marked as prototype; it's possible we will make some changes to it before marking it stable.
Other Changes
Enhancements
- Moved
Denoising Strength
slider to top of Layers panel with updated UI and info popover. - Update viewer styling to have a menubar-ish header. Also used for image comparison.
- Layer preview tooltip with larger sized preview.
- Empty state for Control Layers, guiding user to upload an image, drag an image from gallery or start drawing.
- "Simple" mode for control layers filtering, triggered when you select a control model. This automatically selects and processes the default filter for that model, if a default exists. If the user clicks
Advanced
, they get the full filter settings UI. Control Layers now start with no model selected, implicitly directing users into this flow. - Updated default control weight to 0.75 and end step % to 0.75. Updated label for the
Balanced
control mode, indicating it is the recommended setting. - The FLUX Denoise node now has a flag to skip adding noise to input latents. This is useful for switching models mid-generation and other fancy denoising techniques. Thanks @JPPhoto!
- Migrated the UI's drag-and-drop functionality to a new library, improving the overall performance of dnd. It also allows us to support external dnd. For example, dragging images from the OS directly into the canvas is now possible (not implemented in this release).
- Canvas layers may be sorted via drag-and-drop.
- When graph building fails, you will see an error toast. Previously, it only logged a message to the browser's JS console.
Fixes
- Canvas progress images do not clear when canceling generation after at least one image has been staged.
- Tooltips on boards list stay open when scrolling, potentially causing the whole app to scroll.
- Saving canvas to gallery does not create a new image in gallery.
- Applying a filter could erase or otherwise change a layer's data unexpectedly, causing a range of user-facing generation issues.
- Unable to queue graphs with the Segment Anything node when its inputs were provided by connection.
- Unable to load a workflow from file when using the three-dots menu.
pip
downloadstorch
twice. This didn't cause any application issues - just a waste of time and bandwidth. We pinnedtorch
to<2.5.0
to preventpip
's dependency resolver from getting confused.mediapipe
install issue on Windows, related to its latest release. We pinnedmediapipe
to a known working version.- CLIP Vision error when using FLUX IP Adapter.
Internal
- Simplified parameter schema declarations. Thanks @rikublock!
- Simplified dnd image and gallery rendering, resulting in improved performance.
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
- Pin torch to <2.5.0 to prevent unnecessary downloads by @ebr in #7247
- fix(ui): misc fixes by @psychedelicious in #7252
- fix(nodes): relaxed validation for segment anything by @psychedelicious in #7253
- fix(ui): load workflow from file by @psychedelicious in #7254
- fix(deps): pin mediapipe strictly to a known working version by @ebr in #7258
- Ryan/sd3 diffusers by @maryhipp in #7222
- chore: bump version to v5.4.0 by @psychedelicious in #7259
- fix: Never throw an exception when finding the clip variant type by @brandonrising in #7263
- fix(ui): add some feedback while layers are merging by @maryhipp in #7265
- feat(api,ui): allow Whats New module to get content from back-end by @maryhipp in #7268
- fix(ui): fix link for infill method popover by @maryhipp in #7269
- update Whats New for 5.3.1 by @maryhipp in #7272
- fix(ui): bad merge conflict by @maryhipp in #7273
- fix: get_clip_variant_type should never return None by @brandonrising in #7275
- feat(ui): denoising strength UI by @maryhipp in #7262
- chore(gh): update pr template w/ reminder for what's new copy by @psychedelicious in #7274
- feat(ui): simplify parameter schema declaration by @rikublock in #7281
- feat(ui): new user ux improvements by @psychedelicious in #7279
- fix: Avoid downloading unsafe .bin files if a safetensors file is ava… by @brandonrising in #7282
- fix: Look in known subfolders for configs for clip variants by @brandonrising in #7283
- chore: release v5.4.1rc1 by @psychedelicious in #7285
- Update flux_denoise.py by @JPPhoto in #7270
- fix(app): silence pydantic protected namespace warning by @psychedelicious in #7291
- chore(ui): migrate dnd library by @psychedelicious in #7288
- chore: bump version to v5.4.1rc2 by @psychedelicious in #7293
- fix(ui): FLUX IP adapter clip vision model error by @psychedelicious in #7292
- fix(ui): excessive toasts when generating on canvas by @psychedelicious in #7294
Full Changelog: v5.3.1...v5.4.1rc2