Skip to content

All versions since v5.2.0

v5.2.0

This release includes a number of enhancements and fixes. Standouts include:

  • Support for FLUX ControlNets.
  • Improved UX for common img2img flows in Canvas.
  • Boards may be sorted by name or date.
  • Starter model bundles in Model Manager.
  • Support for bulk image uploads.

** 🚨 Important Update Note: **

During update, you’ll now be selecting between different configurations of the Invoke environment that are optimized and dependent on your hardware (specifically, torch-sdp vs. xformers) — If you have previously used xformers, and update to the version for 3xxx and 4xxx NVidia cards, you’ll often experience an error after the update.

You can uninstall xformers before running the update by -

  • Running the Invoke batch script from your existing installation
  • Selecting the “developer console” option
  • Typing pip uninstall xformers

We’ve also added a fix for Apple Silicon users for the mushy noise issue and updated the installer to skip xformers for GPUs where it causes a performance hit.

Be sure to review the v5 release notes if you haven’t already upgraded to v5.

FLUX ControlNets

We now support both XLabs and InstantX ControlNets for FLUX. We’ve found the Union Pro model substantially outperforms the other models and added it to the starter models. Other models work, but outputs are not as good.

You can use FLUX ControlNets in both Workflows and the Linear UI. We will be adding a union mode control to the Linear UI in a a future release. You can select the union mode in Workflows today.

Canvas img2img Flow

We’ve made a number of changes to support the common img2img flow in the Canvas:

  • Transform now supports 3 modes:
    • fill (old behaviour): The layer is stretched to fit the generation bbox exactly. Its aspect ratio is not maintained.
    • contain (new default): The layer is stretched to fit the generation bbox, retaining its aspect ratio.
    • cover: The layer is scaled up so that its smallest dimension fits the bbox exactly, retaining its aspect ratio.
  • Add a layer context menu item to fit the layer to the bbox using the contain mode.
  • Update theNew Canvas from Image image context menu item to streamline the img2img flow. It now resizes the bbox to match the image’s aspect ratio, respecting the currently-selected models’ optimal size. The image will fit exactly in the box. You can click this and then immediately Invoke to do img2img.

Installer Updates

The performance of torch-sdp attention is substantially faster than xformers on 30xx and 40xx series GPUs. We’ve made two changes to ensure you generate with the best settings:

  • Add an installer option for 30xx & 40xx series GPUs, which does not install xformers.
  • When the attention type is set to auto (the default), and you do have xformers installed, we choose the best option of torch-sdp and xformers, based on your GPU.

Apple Silicon Fix

The mushy noise issue on Apple Silicon is related to sliced attention. We’ve temporarily forced all MPS devices to use torch-sdp. Memory usage is a bit higher, but you won’t get mushy noise (unless, of course, you prompt for it 😅).

This appears to be a torch bug, and we’ll revert this change once it is resolved.

All Changes

Enhancements

  • Support for FLUX ControlNets.
  • Improved UX for common img2img flows in Canvas.
  • Installer option to select best packages based on GPU model, and internal logic to select the best attention type based on GPU model.
  • Updated workflow list menu UI, restoring New Workflow confirmation dialog.
  • Support for bulk image uploads, button in gallery to upload images.
  • Boards maybe sorted by name or date.
  • Recall FLUX guidance parameter. Thanks @rikublock!
  • Add starter model bundle for each supported architecture to model manager.
  • The Layers and Gallery tabs now remember which one you last selected.
  • Added an indicator to the Layers and Gallery tabs when dragging an image to indicate you that you can hover over the tabs to change them.
  • Updated translations. French is now 100%! Thanks gallegonovato, @Harvester62, @Ery4z!

Fixes

  • Workaround for Apple Silicon SDXL noisy mush issue.
  • Fixed misc UI jank in workflow list menu UI.
  • Fixed longstanding issue where workflows were marked as unsaved immediately after loading.
  • Fixed canvas layer preview not updating if layer is disabled.
  • Fixed an edge case where entity isn’t visible until interacting with canvas.

Perf

  • Reworked gallery rendering and context menu for a ~100% perf boost when rendering the gallery.
  • Rendering optimizations for canvas.

Installation and Updating

To install or update to v5.2.0, 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

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.1.1…v5.2.0

v5.3.0

This release includes a number of enhancements and fixes. Standouts include:

  • Object selection in Canvas (via Segment Anything).
  • Support for XLabs FLUX IP Adapters.
  • Installer improvements, which should resolve all xformers-related issues.
  • Improved FLUX support for MPS (Apple Silicon) devices.
  • Reworked context menus, now with sub-menus.

Be sure to review the v5 release notes if you haven’t already upgraded to v5.

Canvas Select Object

Click the Canvas to add Include and Exclude points to select an object in a layer, then use the selection as an Inpaint Mask.

In the next example, we want to select the fox and the ground, but the model has a hard time with this, as it is trained to select single objects. We are able to work around this by selecting the background and inverting the selection.

https://github.com/user-attachments/assets/29fd08a3-10f0-4cb6-bc7b-699ff0a0094d

As demonstrated, applying the selection masks the layer with the selection. You can also save the selection as a Raster Layer, Control Layer or Regional Guidance. This enables some useful workflows.

Internally, this uses Segment Anything v1. We’ll upgrade to SAM v2, which substantially improves object selection, once support for it lands in transformers.

FLUX IP Adapters

We now support XLabs FLUX IP Adapters. There’s only the one model right now, which we’ve added to the starter models.

Workflow & Input Image Output

Internally, IP Adapter requires CFG to work. For now, this is only exposed via workflows. Negative conditioning is also now available in workflows. We’re exploring a sane way to expose this in the linear UI.

Negative conditioning requires a CFG value >1. Leave CFG at 1 to disable it and ignore negative conditioning.

Note: CFG doubles denoising time, and negative conditioning requires a good additional chunk of VRAM.

All Changes

Enhancements

  • Object selection in Canvas (via Segment Anything).
  • Support for XLabs FLUX IP Adapters.
  • Support for CFG and Negative Conditioning for FLUX in workflows only.
  • Added RealVisXL5 to SDXL Starter Model Bundle.
  • Model manager in-place checkbox remembers your choice. Thanks @rikublock!
  • Better tooltips in the model manager, including a starter bundle contents.
  • Support for sub-menus, which are now used in the Image context menu and various Canvas context menus.
  • Support more conversions between Canvas layers. Both in-place and copy conversions are supported. For example, convert between Inpaint Masks and Regional Guidance, or copy a Raster Layer into a new Inpaint Mask.
  • Model descriptions are now displayed in model selection drop-downs. You can disable this in settings.
  • We now track whether or not enabled model default settings are currently set. When they are not, we list the defaults that differ in a tooltip on the little button next to the main model drop-down.
  • Always show staging images when staging starts, even if user hid them last staging session.
  • Canvas alerts (e.g. the Sending to Gallery alert overlaid on the canvas) are moved to the top-left corner of the center panel.
  • Updated translations. Thanks @rikublock, @Vasyanator, @Harvester62, @Ery4z!

Fixes

  • Improved FLUX support for MPS devices. Thanks @Vargol!
  • FLUX denoise node erroneously required controlnet_vae field.
  • Uninstall xformers before installation, fixing issues w/ xformers version mismatch.
  • Fixed installer text output. Thanks @max-maag!
  • Fixed ROCm PyPI indices. Thanks @max-maag!
  • Normalize solid infill alpha values from 0-1 to 0-255 when building canvas graphs. This issue didn’t cause any problems, because VAE ignores the alpha channel, but it should be fixed regardless.
  • View/Hide Boards button cut off with certain translations.
  • Fix a longstanding issue where nodes could mutate the objects (images, tensors, conditioning data) in disk-backed in-memory caches. For example, node 1 might retrieve image X and do some in-place operation on it to create image Y. Node 2 retrieves image X but gets image Y instead. This issue only affected the in-memory caches; mutations were not pushed to disk. The invocation API now returns clones of all objects, so nodes can safely mutate their inputs in-place.

Internal

  • Reworked logging implementation.
  • Directory traversal issue when deleting images.

Documentation

  • Updated dev install docs. Thanks @hippalectryon-0!

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

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.2.0…v5.3.0

v5.3.1

This release expands layer merging capabilities in the Canvas and makes a number of other fixes and enhancements.

Layer Merging

We’ve expanded layer merging capabilities to all layer types and made one change to the existing Merge Visible operation.

Merge Down (new)

The selected layer and the one immediately below it are merged into a single layer. The two input layers are deleted as part of this process.

Merge Visible (changed)

Previously, in Invoke, Merge Visible deleted all the layers that were merged together.

This has been changed to match image editors like Affinity Photo and PS, where the merged layer is added as a new layer, leaving all other layers untouched.

Merging Regional Guidance

When merging Regional Guidance, the resultant merged Regional Guidance has no prompt or reference image. It’s not possible to merge those settings. Keep this in mind when doing a Merge Down, which will delete the two input Regional Guidance layers.

Merging Control Layers

When merging Control Layers, the resultant merged Control Layer has no model or control settings. Like Regional Guidance, it’s not possible to merge the settings, and Merge Down will delete the two input layers.

Control Layers require some special handling. For example, we display them with a “transparency effect” to help you visualize how they stack up. When merging them, we first apply a similar effect to the layer. Specifically, we use the “lighter” blend mode, optimizing for control images with black backgrounds.

All Changes

Enhancements

  • Layer merging improvements.
  • Updated “What’s New” popover.
  • Inpaint Mask and Regional Guidance may be saved to assets.
  • Support for HF tokens in the model manager UI. This prepares Invoke’s MM for SD3.5, which requires you to authenticate with HF to download the model. You can paste your token into the MM to allow the the model to download, instead of needing to configure it with the HF CLI.
  • Add a safeguard for invocation classes, requiring they implement the invoke method and have a correct output annotation.

Fixes

  • Canvas alerts prevent clicks on the metadata viewer tabs.
  • Save as-ing a Filtered layer may result in the wrong image data being used during generation.
  • More resilient Filter handling.
  • SDXL T2I OpenPose model gets input images with the correct channel order, which makes this model work correctly. Thanks @dunkeroni!
  • T2I Adapters now work with any output size supported by the main model. Previously, they required output sizes to be in multiples of 32 or 64. Thanks @dunkeroni!
  • Recall of seamless metadata settings. Thanks @rikublock!
  • Fixed broken link in installer. Thanks @hippalectryon-0!
  • Fixed (another) broken link in installer. Thanks @ventureOptimism!

Internal

  • Bump diffusers, accelerate and huggingface-hub dependencies to latest versions.
  • Refactored CanvasCompositorModule to support new merge capabilities.
  • Remove version pins for several packages including torch and numpy. This is in preparation for an updated installer and also makes it easier for advanced users to customize the versions of various packages.
  • Canvas inpaint and outpaint graphs output one less intermediate image, saving one expensive PNG encode (and your disk space).
  • Added caches for generation mode calculations in Canvas, providing a substantial reduction in intermediate images created and faster Invoke-to-Queue times.

Docs

  • Updated patchmatch docs. Thanks @nirmal0001!
  • Updated FAQ. Thanks @JPPhoto!
  • Updated dev docs. Thanks @hippalectryon-0!

Translations

  • Updated German. Thanks @rikublock & @Atalanttore!
  • Updated Chinese (Simplified). Thanks @qyouqme & @youo0o0!
  • Updated Italian. Thanks @Harvester62 & @dakota2472!
  • Updated French. Thanks @Ery4z!

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

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.3.0…v5.3.1

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 to Output 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 downloads torch twice. This didn’t cause any application issues - just a waste of time and bandwidth. We pinned torch to <2.5.0 to prevent pip’s dependency resolver from getting confused.
  • mediapipe install issue on Windows, related to its latest release. We pinned mediapipe 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

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.3.1…v5.4.1

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

image

Results

image

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

image

Results

image

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

image

Results

image

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 both int and str 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 the Delete 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 the step_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

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.4.1…v5.4.2

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 to lama. You can use patchmatch.
  • 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) and Reference 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 and height outputs from the Image Batch node. If you want to use width and height in a batch, route the image from Image Batch to an Image Primitive node, which outputs width and height.
  • 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

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.4.2…v5.4.3

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 ✨

image

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 in invokeai.yaml. The default is warning. To restore the previous log levels, set it to info (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.

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

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.4.3…v5.5.0

v5.6.0

This release brings major improvements to Invoke’s memory management, new Blur and Noise Canvas filters, and expanded batch capabilities in Workflows.

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 4 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 their invokeai.yaml:

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 each of the new data types. They work the same as the existing image batch node.

image

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 the release are these generators:

  • Arithmetic Sequence (float, integer): Generate a sequence of count numbers, starting from start, that increase or decrease by step.
  • Linear Distribution (float, integer): Generate a distribution of count numbers, starting with start and ending with end.
  • Uniform Random Distribution (float, integer): Generation a random distribution of count numbers from min to max. You can set a seed for reproducible sequences.
  • Parse String (float, integer, string): Split the input on the specified string, parsing each value as a float, integer or string. You can load the input from a .txt file. Use \n as the split string to split on new lines.

You’ll notice the different handle icon for batch generators. These nodes cannot connect to non-batch nodes, which run in the backend.

Grouped (aka zipped) batches

When you use multiple batches, we run the graph once for every possible combination of values in the batch collections. In mathematical terms, we “take the Cartesian product” of all batch collections.

Consider this simple workflow that joins two strings: image

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:

image

This results in 2 runs, one for each “pair” of strings. We get these outputs:

  • “a cute cat”
  • “a ferocious dog”

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 each group’s 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 node, or multiple batch nodes all with the same group), the product operation outputs the single collection as-is.

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

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.
  • Add a small handful of nodes designed to support inpainting in workflows. See #7583 for more details and an example workflow.

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.3.2. Review the launcher releases for a changelog. To update the launcher itself, download the latest version from the quick start guide - the download links there are kept up to date.

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

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.5.0…v5.6.0

v5.6.1

This release includes a handful of minor improvements and fixes.

  • Improvements to memory management defaults, resulting in fewer OOMs.
  • Expanded FLUX LoRA compatibility.
  • On-demand model cache clearing via button on the Queue tab.
  • Canvas Adjust Image filter (i.e. levels, hue, etc). Thanks @dunkeroni!
  • Button to cancel all queue items except current. Thanks @rikublock!
  • Copy Canvas/Bbox as image via Canvas right-click menu.
  • Paste image into Canvas/Bbox via normal paste hotkey. You will be prompted for where the image should be placed.
  • Allow Collect nodes to be connected directly to Iterate nodes.
  • Allow Any type node inputs to accept collections. For example, the Metadata Item node’s value field now accepts collections.
  • Improved error messages when invalid graphs are queued.
  • LoRA Loader node LoRA collection input is now optional, supporting @skunkworxdark’s metadata nodes. Thanks @skunkworxdark!
  • Fixed issues where staging area got stuck if one image failed to load (e.g. if it was deleted).
  • Updated translations. Thanks @Harvester62, @Linos1391, @rikublock, @Ery4z!

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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.6.0…v5.6.1

v5.6.2

This minor release includes the following enhancements and fixes:

  • Make the Upscaling tab’s Scheduler and CFG Scale settings independent from the Canvas tab. We’ve found that the best Scheduler and CFG Scale settings for Canvas rarely work well for Upscaling, and vice-versa. Separating the settings prevents your Canvas settings from causing bad upscale results.
  • Fixed issue with Multiply Image Channel node loading images with different channel counts. Thanks @dunkeroni!
  • Fixed typos in docs. Thanks @maximevtush!
  • Fixed issue where the app scrolls out of view, especially when using the launcher. Again. Hopefully.
  • Update internal build toolchain dependencies.
  • Updated translations. Thanks @Harvester62, @Linos1391, @Ery4z!

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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.6.1…v5.6.2

v5.7.0

This release upgrades the Workflow Editor’s Linear View to a more fully-featured Form Builder. It also includes many other fixes and enhancements, including the adoption of @skunkworxdark’s excellent metadata nodes into Invoke’s core nodes.

The launcher has recently been updated to v1.4.1, fixing a minor memory leak.

Form Builder

Nodeologists may now create more sophisticated UIs for their workflows using the Form Builder. This replaces the older Linear View feature.

In addition to Node Fields, you may add Heading, Text, Container and Divider elements to the form. Some form elements are configurable. For example, Containers support row or column layouts, and certain Node Field types can render different UI components.

Here’s a brief demo of the Form Builder, touching on the core functionality:

Your existing workflows with the Linear View fields will automatically be migrated to the new format.

We’ll be iterating on the Form Builder and extending its capabilities in future updates.

Other Changes

@skunkworxdark’s Metadata Nodes ship with Invoke

We are pleased to bring this popular node pack into the core Invoke repo! Thanks to @skunkworxdark for allowing us to adopt these nodes, and for their continued support of the project.

After you update to v5.7.0, if you have the node pack installed as custom nodes, you will see an error when on start up. It’s saying that you already have these nodes installed. Everything should work fine - but you’ll need to delete the node pack to get rid of the error.

Enhancements

  • Increase default VAE tile size to 1024, reducing “grid” artifacts in images generated on the Upscaling tab.
  • Failed or canceled queue items may be retried via the queue tab.
  • Canvas color picker now supports transparency.
  • Canvas color picker shows RGBA values next to it.
  • Minor redesign/improved styles throughout the Workflow Editor.
  • When attempting to load a workflow while you have unsaved changes, a dialog will appear asking to you confirm. Previously it would just load the workflow and you’d lose any unsaved work.
  • When a node has an invalid field, its title will be error-colored.
  • Less ginormous image field component in nodes.
  • Node fields now have editable descriptions.
  • Double-click a node to zoom to it.
  • Click the bullseye icon in a Form Builder node field to zoom to the node.
  • ❗Minor Breaking Change: Board fields now have an Auto option in the drop-down. When set to Auto, the auto-add board will be used for that board field. Auto is the new default. Workflows that previously had None (Uncategorized) selected will now have Auto selected.
  • Add Dynamic Prompts (Random) and Dynamic Prompts (Combinatorial) modes to the String Generator node.
  • Add Image Generator node with Images from Board mode. Select a board and category to run a batch over its images.

Fixes

  • Canvas mouse cursor disappears when certain layer types and tools are selected.
  • Canvas color picker doesn’t work when certain layer types are selected.
  • Sometimes mask layers don’t render until you zoom or pan.
  • When using shift-click to draw a straight line, if the canvas was moved too much between the clicks, the line got cut off.
  • Incorrect node suggestions when dropping an edge into empty space.
  • When loading a workflow with fields that reference unavailable models, the fields were not always reset correctly.
  • If an image collection field referenced images that were deleted, it was impossible to delete them without emptying the whole collection.
  • Lag/stutters in the Add Node popover.
  • When deleting a board and its images, we didn’t check if any of the deleted images were used in an image collection field, potentially leading to errors when attempting to use a nonexistent image.

Internal

  • Upgraded reactflow to v12. This major release provides no new user-facing features, but does feature improved performance.
  • Upgraded @reduxjs/toolkit to latest. A new utility allows for more efficient cache management and yields a minor perf improvement to gallery load times.
  • Numerous performance improvements throughout the workflow editor. Many code paths were revised and components restructured to improve performance. Some CSS transitions were disabled for performance reasons.
  • Substantial performance improvement for batch queuing logic (i.e. the stuff that happens between clicking Invoke and the progress bar starts moving).
  • Improved custom node loading. For each node pack, if an error occurs while loading it, importing of that pack’s nodes will stop and Invoke will skip to the next node pack. This may result in only some nodes from a pack loading, but the app will still run. Previously, any error prevented Invoke from starting up.

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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

The launcher has recently been updated to v1.4.1, fixing a minor memory leak.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.6.2…v5.7.0

v5.7.1

Enhancements

Improved workflow usability

  • Fixed an issue where descriptions were cut off and increasing spacing between node fields in the form builder.
  • Auto-linking was added to headings, text elements, workflow descriptions, and node field descriptions.
  • The workflow menu was restructured by replacing the “New Workflow” button on the left panel with a workflow menu, while the old menu location now serves as a button to open workflow settings.
  • “New Workflow” button was added to the workflow library list for easier access.

Updated Translations Big thanks to @hironow @Ery4z

Fixes

  • Fixed an issue where the Invoke button on the Canvas tab did not display a loading spinner due to the request being reset too early, preventing RTKQ from tracking the loading state.
  • The enqueue request is now awaited before resetting tracking, ensuring proper feedback.
  • Additional logging messages were added to provide consistent JS console logs across tabs.

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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.7.0…v5.7.1

v5.7.2

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

Memory Management Improvements

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

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

pytorch_cuda_alloc_conf: "backend:cudaMallocAsync"

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

There are other possible configurations you can use for this setting, dictated by pytorch. Refer to the new section in the Low-VRAM mode docs for more information.

Other Changes

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

Installing and Updating

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

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

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

v5.8.0

This release introduces an upgraded Workflow Library and FLUX Redux support, among other fixes and enhancements.

Workflow Library

We’ve redesigned the Workflow Library to provide a smoother interface for browsing workflows.

  • Larger modal to display workflows in a grid
  • Browse by tag (default workflows only)
  • Search by name/description/tags
  • Opened at works correctly
  • Workflows may have thumbnails

FLUX Redux

This release includes support for FLUX Redux in Workflows and Canvas.

FLUX Redux is an add-on model for FLUX. It works similarly to IP Adapter or an “instant” LoRA, where an input image guides the generation’s style and composition. It can provide some degree of character consistency.

To use it on Canvas, add a Global Reference Image layer and drag a reference image onto the layer - same as you would for IP Adapter - and select the FLUX Redux from the model drop-down.

You can also use it in Regional Guidance layers. Add a Reference Image to the layer and select FLUX Redux from the model drop-down.

Other Changes

  • You may override the min and max constraints for float and integer fields added to the Form Builder. This is useful when fields are set to render as sliders and/or to add guardrails to your form fields.
  • Support for uploading WEBP images. They are converted to PNG after uploading.
  • Improvements to workflow loading, including checks on every load to ensure unsaved changes are not lost.
  • Fixed an issue where workflows were not marked as having unsaved changes when its form was edited.
  • Form Builder text and heading elements render line breaks correctly.
  • Fixed issue where some Form Builder elements didn’t fill their containers correctly.
  • Invalid node fields now display errors in the field’s tooltip.
  • Fixed issue where duplicate edges could be created when re-connecting an existing edge.
  • Focused UI regions are highlight (configurable in Settings, off by default). Thanks @joshistoast!
  • Updated the display names of model-specific nodes and default workflows to include the model. For example, Main Model Loader is now Main Model - SD1.5.
  • Internal changes to custom node loading.
  • Updated translations. Thanks @rikublock @Linos1391 @Harvester62!

Download the models from the Starter Models tab in the Model Manager.

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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.7.2…v5.8.0

v5.8.1

This release fixes a bug with retry functionality that could result in an endless loop of errors.

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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.8.0…v5.8.1

v5.9.0

This release adds FLUX Fill support in Workflows and Canvas, beta support for the LLaVA OneVision VLLM family of models, and a selection of minor fixes and enhancements.

FLUX Fill

FLUX Fill provides high quality inpainting and outpainting, improving on these tasks over the other FLUX models. It’s a “main” model, like FLUX dev or schnell.

To use it, download it from Starter Models and then select it from the main model drop-down on Canvas. It’s not compatible* with Text to Image or Image to Image - you’ll get an error if you try to Invoke without an inpaint mask or some empty regions in your bbox.

*Technically, it can do Text to Image and Image to Image - but the quality is very poor. We’ve opted to disallow this on Canvas.

LLaVA OneVision VLLM

This multimodal model generates text from text, image and/or video* inputs. You can use it to generate prompts and and describe images. You can use it in Workflows with the LLaVA OneVision VLLM node.

The 0.5B variant of the model is available for download from Starter Models.

*Invoke does not support video inputs.

Other Changes

  • Support for custom string field drop-downs in Workflow Builder. Add a node’s string field to the Builder and choose the dropdown component to see it in action.
  • The About modal now shows the app’s runtime settings. It includes a list of explicitly-set settings (i.e. the contents of invokeai.yaml), so it is possible to see what runtime settings are app defaults and which are user-defined.
  • Improved UX for missing or unexpected fields in Workflows.
  • De-wonkified LoRA node names (they got wonkified in v5.8.0).
  • Better error messages when scanning models with picklescan.
  • Fixed issue where shift-clicking to draw on Canvas ignored Clip to Bbox setting.
  • Fixed issue with Image Viewer where the image could overflow the viewer.
  • Fixed overflow with looooong node titles.
  • Fixed a minor visual bug in string generator nodes.
  • Internal: First iteration of improved model probing API.
  • Internal: Improved testing system for model-related tests.
  • Internal: Port LLaVA OV models to use new API.
  • Internal: Cleaned up a lot of model-related code.
  • Internal: Support hot reload for custom nodes. Thanks @keturn!
  • Updated translations. Thanks @rikublock @Harvester62 @Linos1391!

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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.8.1…v5.9.0

v5.9.1

This release includes bugfixes and internal changes.

Changes

  • Enhancement: Disable the denoising strength slider for FLUX Fill, which ignores the strength parameter.
  • Fix: Error when mask blur is set to 0.
  • Fix: Issue with inpaint/outpainting where the output images were not masked correctly, causing what should be transparent areas (i.e. alpha 0/255) to be very slightly not-transparent (i.e. alpha 1/255). This threw off layer bounds calculations and caused gradual degradation across repeated inpainting/outpainting operations in unmasked areas.
  • Fix: Error when installing certain FLUX finetunes.
  • Internal: Continued iteration on model manager’s internal API.
  • Internal: CI workflows now use uv, dropped nonfunctional CUDA/ROCm workflows (we only have CPU runners anyways).

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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.9.0…v5.9.1

v5.10.0

This release focuses on internal improvements with a number of enhancements and fixes.

The biggest enhancement is support for CogView4, a permissively-licensed model that is fairly close to FLUX in terms of quality.

🚨 Achtung! 🚨

There are important installation notes to be aware of in this release, which includes major updates to Invoke’s core components.

  1. You must use the latest installer/launcher (v1.5.0). If you’re using an older launcher version, the update may fail.

    To fix this, download the latest installer/launcher from https://invoke.com/downloads.

  2. If the installation fails, use repair mode to fix it.

    The installation may fail due to Python environment conflicts with log messages like those in this screenshot.

    To fix this, retry the installation with repair mode enabled, which will reinstall the bundled Python and resolve most installation issues.

    Enable repair mode by ticking this checkbox on the Review step of the install, then click Install.

  3. Form Builder reset on first launch.

    When you start Invoke for the first time after updating to v5.10.0, your Form Builder will be reset, losing any unsaved changes.

    Before updating, save your current workflow. After updating, re-load it manually.

Python 3.12 & PyTorch 2.6.0 support

Invoke now supports Python 3.12 and PyTorch 2.6.0. Many major dependencies have also be bumped to their latest version.

Changes

Enhancements

  • Support for CogView4 in Canvas and Workflows. Like FLUX, it works best with detailed, narrative prompts. You can download the model from the Starter Models tab in the Model Manager. It’s pretty chunky at ~30GB overall, with similar hardware requirements to FLUX.
  • Save Canvas/Bbox to Gallery buttons now save basic metadata with the image (prompts, model, seed).
  • Models now have their file sizes recorded and displayed in the Model Manager. Thanks @keturn!
  • New capabilities for FLUX Redux to control how much influences the generation. On Canvas, this is controlled by the new Image Influence setting for both Global and Regional Reference Images. There are more controls in Workflows. Thanks @skunkworxdark!
  • Added nodes to convert metadata into collection types. Thanks @skunkworxdark!
  • Improved undo/redo on Workflows.
  • Updated docs. Thanks @chantellmocha!
  • Updated translations. Thanks @rikublock @Harvester62 @Linos1391 @RyoK0220!

Fixes

  • Fixed error when loading workflows that has invalid edges. This can occur if an installation is missing a custom node.
  • When left/right arrow keys are pressed while focused on a tab UI element, do not switch between images.
  • Restored missing “Using torch device” message that should display on startup.
  • ONNX models (e.g. DW OpenPose) now have their sizes calculated correctly. This fixes an issue where these models didn’t work fully with the model manager.
  • Fixed issue where the Canvas Color Picker didn’t grab alpha values correctly.
  • Fixed Canvas layer drop indicator line color (was bright red).
  • Send to Canvas image actions now work when Canvas is uninitialized. For example, if the UI loads on the Workflows tab and the user has not yet clicked the Canvas tab, the Canvas will not be initialized.
  • Increased padding when fitting layers to canvas to prevent the floating tool panel and other buttons from covering up the edges of the layers.
  • Fixed issue where, after a Canvas reset, if no prompt is entered, generating will re-use the prompt that was last used before the reset.
  • Fixed issue where some network queries weren’t reset correctly. This could have caused a minor memory leak.

Internal

  • Support for python 3.12. This necessitates the use of repair mode during installation, as described in the 🚨 callout above.
  • Bump many dependencies to latest, including torch.
  • Remove many unused dependencies.
  • Remove legacy scripts from the codebase.
  • Ported LoRA model configs to the new classification API. This is an internal change.
  • Merged workflow Form Builder and Node Editor state and logic. Undo/redo on the Workflows tab now works for both Node Editor and the Form Builder, and the way actions are grouped in the undo/redo history is improved. This causes the loss of Form Builder state on first run, as described in the 🚨 callout above. Unfortunately, there’s no way to prevent this data loss without significant effort.

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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.9.1…v5.10.0

v5.10.1

🚨 Achtung! 🚨

If you already updated to v5.10.0, you can skip this section. If you are on v5.9.1 or older, please review this section before updating.

There are important installation notes to be aware of in this release, which includes major updates to Invoke’s core components.

  1. You must use the latest installer/launcher (v1.5.0). If you’re using an older launcher version, the update may fail.

    To fix this, download the latest installer/launcher from https://invoke.com/downloads.

  2. If the installation fails, use repair mode to fix it.

    The installation may fail due to Python environment conflicts with log messages like those in this screenshot.

    To fix this, retry the installation with repair mode enabled, which will reinstall the bundled Python and resolve most installation issues.

    Enable repair mode by ticking this checkbox on the Review step of the install, then click Install.

  3. Form Builder reset on first launch.

    When you start Invoke for the first time after updating to v5.10.0, your Form Builder will be reset, losing any unsaved changes.

    Before updating, save your current workflow. After updating, re-load it manually.

Changes

  • Support partial loading for LLaVA and SigLIP (FLUX Redux) models, reducing VRAM requirements for users with Nvidia GPUs.
  • Reduce peak CPU RAM usage during initial load of LLaVA and SigLIP models. This allows users with at least 24GB CPU RAM to run the LLaVA 7B model without crashing during load. With partial loading now working for the model, most users should be able to run the model - though it can take a few minutes if you don’t have a GPU with 24GB VRAM.
  • Revert a recent change to model installation, which could result in some models being misidentified as LoRAs.
  • The data viewer component, used to display JSON (e.g. metadata, workflows, node outputs) now wraps lines.

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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.10.0…v5.10.1

v5.11.0

This release’s largest change is a new and improved model drop-down component.

🚨 Achtung! 🚨

If you already updated to v5.10.0, you can skip this section. If you are on v5.9.1 or older, please review this section before updating.

There are important installation notes to be aware of in this release, which includes major updates to Invoke’s core components.

  1. You must use the latest installer/launcher (v1.5.0). If you’re using an older launcher version, the update may fail.

    To fix this, download the latest installer/launcher from https://invoke.com/downloads.

  2. If the installation fails, use repair mode to fix it.

    The installation may fail due to Python environment conflicts with log messages like those in this screenshot.

    To fix this, retry the installation with repair mode enabled, which will reinstall the bundled Python and resolve most installation issues.

    Enable repair mode by ticking this checkbox on the Review step of the install, then click Install.

  3. Form Builder reset on first launch.

    When you start Invoke for the first time after updating to v5.10.0, your Form Builder will be reset, losing any unsaved changes.

    Before updating, save your current workflow. After updating, re-load it manually.

Changes

  • New model drop-down component, aiming to improve the user experience with selecting models. It’s currently enabled only for the main model drop-down.
  • Added button to reset an existing HF token to the Model Manager tab.
  • Support for FLUX LoRAs trained in invoke-training.
  • Nodes that output images, including nodes that output image collections, should always update the gallery.
  • Fixed issue where drag-and-drop didn’t scroll when used in a scrollable container (for example, when you have a lot of layers or form builder elements).
  • Internal: Updated frontend dependencies.
  • Internal: Optional output_meta field added to BaseInvocationOutput. This field is not currently exposed in the Workflow Editor. In the future, it may be exposed to facilitate attaching additional metadata to invocation outputs.
  • Internal: Support code for a generation via Imagen3/ChatGPT 4o. These API models are currently unavailable in the Community Edition, but we may be able to change that in the future.

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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.10.1…v5.11.0

v5.12.0

This release includes support for Nvidia 50xx GPUs, a way to relate models (e.g. LoRAs with a specific main model), new IP Adapter methods and other smaller changes..

Changes

  • Bumped PyTorch dependency to v2.7.0, which means Invoke now supports Nvidia 50xx GPUs.
  • New model relationship feature. In the model manager tab, you may “link” two models. At this time, the primary intended use case is to link LoRAs to main models. When you have the main model selected, the linked LoRAs will be at the top of the LoRA list. Thanks @xiaden!
  • New IP Adapter methods Style (Strong) and Style (Precise). The previous style method is renamed to Style (Simple). Thanks @cubiq!
  • Fixed GGUF quantization on MPS. Thanks @Vargol!
  • Updated translations. Thanks @Harvester62 @rikublock @Linos1391 @RyoK0220!
  • Internal: Invocation model changes, which aim to reduce occurrences of ValidationError errors.
  • Internal: Addressed pydantic deprecation warning.
  • Internal: Re-enabled new model classification API with safeguards.

🚨 Stricter Rules for Nodes, including Custom Nodes

This section is for node authors, whose nodes may be affected by the stricter rules.

Default values for node fields are now validated as the app starts up.

For example, this node defines my_image as an ImageField, but it provides a default value of None, which is not a valid ImageField:

@invocation("my_invocation")
class MyInvocation(BaseInvocation):
my_image: ImageField = InputField(default=None)
def invoke(self, context: InvocationContext) -> ImageOutput:
...

This node will error on app startup:

# 😱 Error on startup!
InvalidFieldError: Default value for field "my_image" on invocation "my_invocation" is invalid, 1 validation error for MyInvocation
my_image
Input should be a valid dictionary or instance of ImageField [type=model_type, input_value=None, input_type=NoneType]

There are two ways to fix this, depending on the node author’s intention.

1. If the field is truly optional, update the type annotation.

Using the example invocation from above, make the type annotation for my_image a union with None:

@invocation("my_invocation")
class MyInvocation(BaseInvocation):
my_image: ImageField | None = InputField(default=None)
def invoke(self, context: InvocationContext) -> ImageOutput:
...

ImageField | None is equivalent to Optional[ImageField]. Either works.

2. If the field is not optional, remove the default or provide a valid default value.

Using the example invocation from above, simply remove default=None:

@invocation("my_invocation")
class MyInvocation(BaseInvocation):
my_image: ImageField = InputField()
def invoke(self, context: InvocationContext) -> ImageOutput:
...

This node has an integer field that must be greater than 10, but the provided default value of 5. This will error:

@invocation("my_other_invocation")
class MyOtherInvocation(BaseInvocation):
my_number: int = InputField(default=5, gt=10)
def invoke(self, context: InvocationContext) -> IntegerOutput:
...

Either remove the default, or provide a default value greater than 10.

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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.11.0…v5.12.0

v5.13.0

This release adds advanced Inpainting mask controls and a selection of other minor enhancements.

Changes

  • Canvas Inpaint Masks have additional per-mask settings. Enable them via right-click menu on the mask layer. Thanks @dunkeroni for working on these very useful features!
    • Noise Level adds image-space noise to the masked region before it is denoised. This can add natural variation and detail to the region. The added noise is generated using the global seed parameter as the RNG seed.
    • Denoise Limit caps the amount of denoising done on the masked region. You can inpaint multiple regions of the image simultaneously, but with different amounts of variation. This greatly simplifies a workflow where you want to make variations on an image, but want different parts of the image to vary more or less.
  • When selecting aspect ratios, give special handling to SDXL’s trained sizes to reduce artifacts. Thanks @dunkeroni!
  • Improved Canvas scroll-to-zoom handling, including smoother scaling on touchpads and snapping to common zoom levels.
  • Added button to pull the bbox content into an empty Control Layer.
  • Added ability to delete all images from the Uncategorized board via button in its right-click menu.
  • Prompt boxes remember their size.
  • Support installing HF repo subfolders via Model Manager’s HuggingFace tab.
  • Faster Heuristic Resize algorithm, used in New Layer from Image (Resize) functionality.
  • Allow LoRA patcher to skip unknown layers instead of erroring. Thanks @keturn!
  • Log a warning when a node has an unregistered output class.
  • Updated Compel to get better handling for long prompts.
  • Updated translations.

Installing and Updating

The 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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.12.0…v5.13.0

v5.14.0

Changes

  • Fix error when using inpainting models. Thanks @dunkeroni!
  • Fix issue where Canvas didn’t fit layers to the viewport correctly.
  • When fitting layers, Canvas animates the transition to the new zoom and scale to make it less jarring.
  • During internal Canvas operations like compositing, a small spinner renders in the bottom-right corner of the Canvas to indicate that it is indeed doing something.
  • Updated translations. Thanks @Harvester62 @RyoK0220 @hironow!

Installing and Updating

The 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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.13.0…v5.14.0

v5.15.0

Changes

  • Support for AI Toolkit FLUX LoRAs. Thanks @keturn!
  • Fixed AttributeError: module 'cv2.ximgproc' has no attribute 'thinning' error, which could occur when using Control Layers.
  • Added SDXL IP Adapter Plus to starter models.
  • Gallery search supports image creation dates. Thanks @dunkeroni!
  • Improved JSON formatting. Thanks @j-brooke!
  • Fixed (hopefully) a rare ValidationError during generation/dequeuing, as seen in #7950.
  • Support for CUDA devices in slots 2 and above. Thanks @heathen711!
  • Internal: Use warning instead of warn, fixing deprecation message. Thanks @emmanuel-ferdman!
  • Improved memory usage behaviour, reducing peak RAM usage due to memory fragmentation.

Installing and Updating

The 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 don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.14.0…v5.15.0

v6.0.0

Invoke’s next major release, 6.0, brings many new features plus an improved UI and user experience.

Core UI Enhancements

We’ve retired the 5.0 layout and introduced the foundations for a task-specific, flexible, and persistent interface. It should still feel very familiar!

  • Launchpads for Guided Experience: New to a feature? The Generate, Upscale, Workflow, and Model tabs now feature “Launchpads” to guide you through getting started.

  • Customizable Layout: Drag, drop, and resize panels to create the workspace that works for you on each tab. Your custom layout, including your last panel used, is saved automatically, and we have plans to expand customization options in the future for power users.

  • Reference Image Prompt Zone: Updated and intuitive global reference image management, now in the left-hand settings panel.

  • Improved Performance: Tabs now load on demand, resulting in a faster and more responsive experience within each tab.

  • The Infinite Scroll is back, and now shows all images at once in a single grid. We anticipate that the loss of pagination please some, and anger others. We’re considering and evaluating ways we can solve for the problem of simple chunk-based navigation here — Share feedback as you use it!

Enhanced Canvas Experience

The Canvas has been enhanced further to continue to serve as a powerhouse for artists and creators, with a host of new features and workflow improvements.

  • Rule of Thirds Guide: Enable a composition guide to help frame your creations. Enabled in Canvas settings.

  • Bounding Box to Reference Image: Instantly create a new reference image from the contents of the bounding box, using the button next to the Reference image drop zone.

  • New “Edit” button in image viewer, creating a new canvas with the selected image.

  • New “Control Layer Resized” drop zone for adding an automatically optimized control layer to an existing canvas.

  • Overlay Control - Toggle the visibility of all non-raster layers (like Control Layers and Inpaint Masks) with a single click or the Shift+H hotkey.

  • Improved staging toolbar and navigation, with preview image controls available directly on the toolbar.

  • Save All Canvas Generations: A new option allows you to automatically save every image generated on the canvas to your gallery. Available in the Canvas settings.

  • Export Canvas to PSD (Photoshop) - Accessed in the Raster Layers header) - You can now directly export your canvas, with all raster layers intact, to a .psd file for seamless integration with Adobe Photoshop and other compatible image editors.

Other Features and Improvements

  • Full UI integration for FLUX Kontext Dev, allowing you to guide generations with a reference image. This includes support for the dev and quantized (gguf) variants. (Note: No support currently for fp8)

  • LoRA Picker Overhaul: The LoRA list now uses the new model picker, automatically filtering for LoRAs compatible with your selected base model, with the option to display preview images and related models configured within the Model Manager.

  • OMI LoRA Support and additional AI Toolkit LoRA support for FLUX.

  • Countless bug fixes, enhancements and performance improvements.

Installing and Updating

The 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.

Note: With recent updates to pytorch, users on older GPUs (2XXX series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs as torch updates are released within the installer, but in the meantime users have found success manually downgrading torch. Head to Discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v5.15.0…v6.0.0

v6.0.1

This patch release fixes a number of bugs.

Check out the v6.0.0 release notes if you haven’t already! It’s a big one.

Changes

  • Fix an issue that could result in images getting stuck as placeholders.
  • Fix an issue where you could drag a panel tab and end up with stacked panels.
  • Fix an issue w/ certain languages hard-crashing the UI.
  • Render the staging area in a virtualized list to prevent slowdowns when many images are staged.
  • Alter the request frequency and prefetching logic for gallery to reduce network requests during scrolling, but keep the same UX.
  • Clearer error message when model probing fails.
  • Do not attempt to download models when there isn’t enough disk space for them.
  • Potential fix for rare UI state persistence issues.
  • Introduce global, thread-safe locking for all DB operations. We hope that this will fix these errors:
    • sqlite3.InterfaceError: bad parameter or other API misuse
    • pydantic_core._pydantic_core.ValidationError: 1 validation error for GraphExecutionState
      JSON input should be string, bytes or bytearray [type=json_type, input_value=None, input_type=NoneType]
      For further information visit https://errors.pydantic.dev/2.11/v/json_type

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.0.0…v6.0.1

v6.0.2

This patch release fixes drag-and-drop from the gallery.

Check out the v6.0.0 release notes if you haven’t already! It’s a big one.

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.0.1…v6.0.2

v6.1.0

This minor release includes a handful of fixes and enhancements.

Check out the v6.0.0 release notes if you haven’t already! It’s a big one.

In Invoke v5, we had a toggle near the Invoke button that let you choose either Send to Gallery or Send to Canvas. Here’s what it looked like in v5:

Screen Recording 2025-07-17 at 5 11 19 pm

  • Send to Gallery: Generations go directly to the Gallery. The Staging Area is bypassed completely. You can change settings, Invoke, change more settings, Invoke again, and so on, building up a large queue of generations.
  • Send to Canvas: Generations go to the Canvas Staging Area. You cannot change some settings until you accept or discard all pending images.

This toggle was a major stumbling block for new users, causing a lot of confusion. It was removed in v6, replaced by a Save All Images to Gallery setting. This new setting didn’t work the same as Send to Gallery. Yes, it saved images to the Gallery, but it didn’t bypass the Staging Area - and Canvas would still be locked down.

We received a ton of feedback that the Send to Gallery mode enabled a critical workflow for many users. In v6.1.0, we are restoring that functionality with what we hope to be a less confusing UX.

The Canvas Save All Images to Gallery setting now replicates Send to Gallery mode. Generations queued up while the setting is enabled will bypass the Canvas Staging Area entirely. The Canvas isn’t locked down when you generate like this.

We renamed the setting to Save New Generations to Gallery to better describe what it does: image

You’ll see an alert on Canvas when it is enabled: image

Enhancements

  • Added hotkey to star/unstar images (.). You must be focused in the Gallery to use the hotkey.
  • Added button and hotkey (shift+b) to fit the Canvas Bbox to visible Inpaint Masks, with padding to account for mask blur.
  • Added button and hotkey (shift+v) to invert the selected Inpaint Mask layer.
  • Added auto-layout functionality to the Workflow Editor to reposition nodes based on a configurable graph layout algorithm. It’s in the bottom-left column of buttons. Thanks @skunkworxdark !
  • When importing LoRAs, Invoke checks for an a metadata file and image alongside the LoRA. If present, we parse the metadata and copy the image in.
  • Expose Tile Size, Tile Overlap and Tile Control model in Upscaling tab.
  • Show related embeddings in prompt trigger menu.
  • Update model picker styling.
  • Style nodes when they have errors or warnings in workflow editor.
  • Improved performance in workflow editor.
  • Updated translations. Thanks @Linos1391 @Harvester62 @RyoK0220 @rikublock!

Fixes

  • Ignore disabled ref images when determine if the user can click Invoke.
  • Aspect ratios out of order.
  • Error when uploading image with uppercase file extensions (e.g. .JPG vs .jpg).
  • Prevent dragging on empty space in workspace tabs, which can bork the layout.
  • Canvas Staging Area auto-switch could fail when too many images were in the list, plus other minor Staging Area jank.
  • SDXL Negative Style Prompt not recorded in metadata.
  • Unstyled error boundary screen.
  • Rare error encountered during rehydration of UI state.

Internal/Dev

  • Fix docker UI build.
  • Updated manual install docs for v6. Thanks @JPPhoto!
  • Export FLUX Conditioning classes from package. Thanks @JPPhoto!
  • Upgraded many frontend packages.

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.0.2…v6.1.0

v6.2.0

This minor release includes a handful of fixes and enhancements.

Check out the v6.0.0 release notes if you haven’t already! It’s a big one.

Enhancements

  • Restored Cancel and Clear All functionality, which was removed in v6. The button for this is in the hamburger menu next to the Invoke button.
  • When resetting Canvas Layers, an empty Inpaint Mask layer is added.
  • Restored the Viewer toggle hotkey z.
  • Updated translations. Thanks @Harvester62 !

Fixes

  • Fixed useInvocationNodeContext must be used within an InvocationNodeProvider error that could crash the Workflow Editor.
  • Fixed issue where scrolling on Canvas could result in zooming in the wrong direction, especially when using a mouse scrollwheel.

Internal/Dev

  • Minor perf improvement in Workflow Editor, reducing re-renders of the Auto Layout popover.

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.1.0…v6.2.0

v6.3.0

This minor release includes a handful of fixes and enhancements.

Support for multiple reference images for FLUX Kontext

You may now use multiple ref images when using FLUX Kontext on the Generate, Canvas and Workflows tabs.

On the Generate and Canvas tabs, the images are concatenated in image-space before being encoded.

This is done using the new Flux Kontext Image Prep node, which you can use in Workflows. Use it to resize an image to one of Kontext’s preferred sizes. If multiple images are added to its collection, they are concatenated horizontally. Pass the output of this node into a single Kontext Conditioning node, and then pass its output into the Denoise node.

If, for some reason, you want to use latent-space concatenation, you can do it like this:

  • Add a Flux Kontext Image Prep for each image
  • Pass each of those to its own Kontext Conditioning
  • Collect the Kontext Conditioning nodes
  • Pass the output collection to the Denoise node

The images will be concatenated in latent-space by the Denoise node. It will not resize the images to Kontext preferred dimensions. For best results, use the Flux Kontext Image Prep node, as described above, to prep your ref images.

Studio state is stored in the database

Studio state includes all generation settings, Canvas layers, Workflow editor state - in other words, everything that you lose when you click Reset Web UI. Studio state does not include models, images, boards, saved workflows, etc.

Previously, this data was stored in the web browser or Launcher’s built-in UI. In v6.3.0, it is stored in the database, allowing your Studio state to follow you across browsers and devices.

For example, let’s say you were working in Canvas from the Launcher’s UI. You need to switch computers, so you enable Server Mode in the launcher and open Invoke on the other computer.

Previously, your Studio would load up with default settings on the other computer. In v6.3.0, you will instead pick up right where you left off on the first computer.

On the first launch of Invoke after updating to v6.3.0, we will migrate Studio state stored in the browser to the database, so you shouldn’t lose anything.

Added setting to disable picklescan

Invoke uses picklescan to scan certain unsafe model types for malware during installation and loading.

Sometimes, picklescan is unable to scan models because their internal structure is broken. It is possible that these unscannable models will still work fine, and have no malware, but until now, there was no way to tell Invoke to ignore detections or scan errors.

You may now dangerously, unsafely opt-out of model scanning by adding this line to your invokeai.yaml config file:

# 😱 scary!
unsafe_disable_picklescan: true

We strongly suggest you do not disable picklescan. Disable it at your own risk.

Enhancements

  • Support for multiple reference images for FLUX Kontext on Generate, Canvas and Workflows tabs. Ref images are concatenated in image space.
  • New Flux Kontext Image Prep node. Use it to resize an image to one of Kontext’s preferred sizes. If multiple images are added to its collection, they are concatenated horizontally.
  • When Snap to Grid on Canvas is disabled, hold Ctrl/Cmd to temporarily enable course snapping. Hold Ctrl/Cmd+Shift to temporarily enable fine snapping. Thanks @Ar7ific1al !
  • Update styling and layout for image comparison.
  • Added visual indicator on node fields when they are added to the form. The field names are in blue with a small link icon.
  • Added setting to disable picklescan.
  • Added FLUX.1 Krea dev to starter models (full-fat and quantized).
  • Added a not-broken anime upscaler model to starter models.
  • Studio state is stored on the server.
  • Add hotkey shift+n to fit bbox to layers. It does the same thing as the button in the Canvas toolbar.
  • Add a button to the ref image display to use that image’s size for generation. This is useful for FLUX Kontext, where you often want to generate at the same/similar size as a reference image.
  • Updated translations. Thanks @Harvester62 @Linos1391 !

Fixes

  • Fix issue where model filenames with periods were not handled correctly.
    • This fixes the error DuplicateModelException: A model with path 'flux/main/FLUX.safetensors' is already installed.
  • Fix issue where model installation required 2x the disk space the model actually needed. We now move - not copy - from download temp dir to final destination.
  • Metadata not recorded for API model generations.
  • Queue count badge not hidden when left panel is collapsed.
  • Fix an issue where canceling a queue item didn’t clear its progress image.
  • Fix an issue where viewer could briefly show the last-selected image between the last progress image being received, and its output image rendering.
  • Add handling for a rare race condition where we get socket events for a queue item after it has completed.
  • Add handling for a common race condition where queue status network requests complete after queue events optimistically update the counts, often resulting in a the little yellow queue count badge being incorrect.
  • Fix an issue where intermediate images could trigger changes to gallery view.
  • Progress image not hiding when a generation fails or is canceled, when gallery auto-switch is disabled.
  • Awkward flash of incorrectly-sized image when starting image comparison.
  • Fix an issue where gallery auto-scroll could not work during an image loading race condition.
  • Prevent creating a new canvas while staging, which could bork your existing canvas session.
  • Fix an issue where the Reset Canvas Layers button also reset the bbox.
  • Hide Reset Canvas Layers button when not on the canvas.
  • Fix visual overflow with very long board names.

Internal/Dev

  • UI logging now includes the source code filename of the logger, making troubleshooting much easier for UI bugs.
  • All redux state is modeled with zod schemas. Rehydrated state is validated against the schemas before it makes it into the browser, preventing some (very rare) errors.

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.2.0…v6.3.0

v6.4.0

This release includes a handful of fixes and enhancements.

Enhancements

Shout-out to @csehatt741 for knocking out some great QoL improvements. Thank you!

  • Canvas Bbox visibility can be toggled with shift+o. Thanks @csehatt741!
  • Nodes with execution errors are highlighted red. Thanks @csehatt741!
  • Prevent a field from being added to Workflow Builder forms multiple times. Thanks @csehatt741!
  • Support recall of CLIP Skip metadata. Thanks @csehatt741!
  • Fixed some issues with model install paths.
  • Tweaked state persistence strategy - now debounced to 300ms instead of throttled to 2000ms. This should reduce stutters while doing things like panning around the Canvas.
  • SDXL Style prompts have been removed from the Generate, Canvas and Upscaling tabs. This rarely-used setting was unintuitive at best. You can still use it in Workflows, but we are removing this footgun from the linear UI tabs.
  • Prompt and seed metadata may now be recalled on the Upscaling tab.
  • The buttons to download potentially very large starter model bundles show a confirmation dialog before starting the download. Thanks @csehatt741!
  • Merged layers are inserted in the right spot in the layers panel. Thanks @csehatt741!
  • Added button to image context menu and viewer toolbar to locate an image in the gallery. The image’s board is selected and image scrolled to. Thanks @csehatt741!
  • Support FLUX PEFT LoRAs with base_model.model key prefix.
  • Improved VAE encode VRAM usage.
  • Updated translations. Thanks @Harvester62!

Fixes

  • Minor bug when concatenating Kontext ref images in latent space that could result in some images not being “seen”.
  • Fit to Bbox functionality could result in the layer being sized correctly but positioned incorrectly when the bbox was not aligned to the 64px grid.
  • Allow use of mouse in node title editable inputs.

Internal/Dev

  • Fix AMD docker image build issue related to disk space. Thanks @heathen711!

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.3.0…v6.4.0

v6.5.0

This release includes a handful of fixes and enhancements.

Enhancements

  • Add a optional Shuffle button to float and integer fields in Workflow Builder forms. Thanks @csehatt741!
  • Canvas color picker non longer changes the alpha of the color.
  • When the bbox aspect ratio is locked, resizing the bbox from the Canvas will respect the locked status of the aspect ratio. Hold shift to temporarily invert the locked status:
    • When the aspect ratio is locked, holding shift while resizing the bbox will allow you to freely resize the bbox.
    • When the aspect ratio is not locked, holding shift while resizing the bbox will maintain the last aspect ratio of the bbox.
  • When a node field is added to a Workflow Builder form, the + button to add it will now show a - and let you remove the field. Thanks @csehatt741!
  • When changing a selection of image’s board, the current board is hidden from the board drop-down. The items in the drop down are now sorted alphabetically. Thanks @csehatt741!
  • When using a model that doesn’t support reference images, they will be hidden. You can now Invoke without needing to disable them.
  • When using a model that doesn’t support explicit width and height settings, they will be hidden.

Fixes

  • Rare issue with HF tokens that could cause an error when downloading models from a protect HF repo immediately after setting the token in Invoke’s Model Manager.
  • Fix an issue with float field precision in the Workflow editor.
  • Fix an error AttributeError: module 'cv2.ximgproc' has no attribute 'thinning'. Affected users should use the Launcher’s Repair Mode to get the fix, otherwise the error will persist.
  • Disable the color picker when using middle mouse to pan the Canvas.
  • Minor issue related to gallery multi-select where the last-selected image didn’t show in the viewer.
  • Prevent dragging and dropping a node field into the Workflow Builder if it has already been added once.
  • Fix an issue where the last progress image for a Canvas generation would get stuck on the Viewer tab.
  • Fix an issue where certain image loading errors in Canvas were not logged correctly.

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.4.0…v6.5.0

v6.5.1

This is a patch release, fixing a few high priority bugs.

Fixes

  • Hard crash when generating with FLUX on Windows.
  • Super tiny progress images on Canvas.
  • Assorted Canvas issues, mostly around transparency.

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.5.0…v6.5.1

v6.6.0

This is a minor release, adding a few QoL improvements and fixes.

Enhancements

  • Canvas Color Picker has foreground and background colors. Switch between them with x. Press d to reset them to black and white. Thanks @csehatt741!
  • You can set a default weight setting for LoRAs in the Model Manager. When you add the LoRA, it will start at the default weight. Thanks @csehatt741!
  • Canvas Brush/Eraser width renders an in-line slider when there is enough space instead of showing the slider in a popover.
  • Updated translations. Thanks @Harvester62!

Fixes

  • Always delete LoRAs when recalling all metadata. Thanks @csehatt741!
  • Incompatible LoRAs being enabled prevents you from clicking Invoke.
  • Fixed an issue where it was possible to drag a tab panel to another location in the UI on Chrome and Launcher (Firefox was unaffected).
  • Internal file organization fix for docker builds.
  • Fix an issue where progress images were super tiny (again).
  • Fix an issue where no fallback was rendered in the viewer when no image is selected.
  • Fix an issue where a single middle-mouse click on Canvas would activate the View tool (i.e. drag-to-pan), and you had to click again to deactivate it.
  • Fix an issue in the Viewer where the last-generated image would briefly show after the current generation finishes.

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.5.1…v6.6.0

v6.7.0

This minor release includes improved object selection on Canvas, layer adjustments, prompt history and a handful of other enhancements and fixes.

Select Object v2

We’ve made some major improvements to object selection.

  • Segment Anything v2 is now supported. You can choose between SAM1 and SAM2. We’ve found that SAM2 is much faster than SAM1, but often does not perform as well, so we left SAM1 as an option.
  • You may now draw a box around the target object. The box doesn’t need to be exact - sometimes, you can get better results by making it a bit smaller than the target object. Points are still supported and can be used independently or as a refinement for a box.
  • Holding shift while clicking creates an exclude point if you have include selected. If you have selected exclude, holding shift will instead create an include point.
  • You can now provide a text prompt instead of a box and points. Use very simple language for best results. Internally, this uses Grounding DINO to identify the target.

Raster Layer Adjustments

Right click a Raster Layer to add adjustments. Adjustments are non-destructive, though you can accept them to bake them into the layer.

You can adjust brightness, contrast, saturation, temperature, tint, and sharpness, or use the curves editor to adjust each channel independently.

Thanks @dunkeroni for implementing this very useful feature.

Prompt History

There’s a new button in the Positive Prompt box for prompt history. Your last 100 unique prompts are stored for easy recall. You can search them, delete individual prompts, or clear the whole list.

Enhancements

  • Improved object selection on Canvas.
  • Raster layer adjustments. Thanks @dunkeroni!
  • Support for mathematical expressions in number input fields. Currently, these are only enabled for fields in the Workflow Editor (including Builder Forms). Thanks @csehatt741!
  • Prompt history for Positive Prompt.
  • Queue list now sorts with newest on top. You can reverse the sort if you want, to restore the previous sorting. Thanks @csehatt741!
  • Updated translations. Thanks @Harvester62 @Linos1391!

Fixes

  • Fixed an issue that prevented you from using LoRA weights outside the range -1 to 2.
  • Fixed an issue where LoRA settings could be lost on refresh.
  • Fixed an issue where LoRAs with weights outside the range -1 to 2 were not able to be recalled from metadata.
  • Fixed an issue where popovers like the Canvas Settings popover were obscured by other UI elements.
  • Fixed a path traversal vulnerability affecting the bulk downloads API.

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.6.0…v6.7.0

v6.8.0

This minor release includes a handful of fixes and enhancements.

Fixes

  • When accepting raster layer adjustments, the opacity of the layer was “baked” in.
  • Corrected help text for non-in-place model installation. Previously, the help text said that a non-in-place model install would copy the model files. This is incorrect; it moves them into the Invoke-managed models dir.
  • Failure to queue generations with an error like Failed to Queue Batch / Unknown Error.

Enhancements

  • Added a crop tool. For now, it is only enabled for Global Ref Images.
    • Click the crop icon on the Ref Image preview to open the tool.
    • Adjust the crop box and click apply to save the cropped image for that ref image.
    • To revert, open the crop tool, click Reset, then Apply to revert to the original image.
    • We’ll explore integrating this new tool elsewhere in the app in a future update.
  • Improved Model Manager tab UI. Thanks @joshistoast!
  • Keyboard shortcuts to navigate prompt history. Use alt/option+up/down to move through history.
  • Support for the NOOB-IPA-MARK1 IP Adapter. Thanks @Iq1pl!

Internal

  • Support for dynamic model drop-downs in Workflow Editor. This change greatly reduces the amount of frontend code changes needed to support a new model type. Node authors may need to update their nodes to prevent warnings from being displayed. However, there are no breakages expected. See #8577 for more details.

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.7.0…v6.8.0

v6.8.1

This patch release fixes the Exception in ASGI application startup error that prevents Invoke from starting.

The error was introduced by an upstream dependency (fastapi). We’ve pinned the fastapi dependency to the last known working version.

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.8.0…v6.8.1

v6.9.0

This release focuses on improvements to Invoke’s Model Manager. The changes are mostly internal, with one significant user-facing change and a data migration.

On first run after installing this release, Invoke will do some data migrations:

  • Run-of-the mill database updates.
  • Update some model records to work with internal Model Manager changes, described below.
  • Restructure the Invoke-managed models directory into a flat directory structure, where each model gets its own folder named by the model’s UUID. Models outside the Invoke-managed models directory are not moved.

If you see any errors or run into any problems, please create a GH issue or ask for help in the #new-release-discussion channel of the Invoke discord.

Model Installation Improvements

Invoke analyzes models during install to attempt to identify them, recording their attributes in the database. This includes the type of model, its base architecture, its file format, and so on. This release includes a number of improvements to that process, both user-facing and internal.

Unknown Models

Previously, when this identification fails, we gave up on that model. If you had downloaded the model via Invoke, we would delete the downloaded file.

As of this release, if we cannot identify a model, we will install it as an Unknown model. If you know what kind of model it is, you can try editing the model via the Model Manager UI to set its type, base, format, and so on. Invoke may be able to run the model after this.

If the model still doesn’t work, please create a GH issue linking to the model so we can improve model support. The internal changes in this release are focused on making it easier for contributors to support new models.

Invoke-managed Models Directory

Previously, as a relic of times long past, Invoke’s internal model storage was organized in nested folders: <models_dir>/<type>/<base>/model.safetensors. Many moons ago, we didn’t have a database, and models were identified by putting them into the right folder. This has not been the case for a long time.

As of this release, Invoke’s internal model storage has a normalized, flat directory structure. Each model gets its own folder, named its unique key: <models_dir>/<model_key_uuid>/model.safetensors.

On first startup of this release, Invoke will move model files into the new flat structure. Your non-Invoke-managed models (i.e. models outside the Invoke-managed models directory) won’t be touched.

We understand this change may seem user-unfriendly at first, but there are good reasons for it:

  • This structure eliminates the possibility of model name conflicts, which have caused of numerous hard-to-fix bugs and errors.
  • It reinforces that the internal models directory is Invoke-managed:
    • Adding models to this directory manually does not add them to Invoke. With the previous structure, users often dropped models into a folder and expected them to work.
    • Deleting models from this directory or moving them in the directory causes the database to lose track of the models.
  • It obviates the need to move models around when changing their type and base.

Refactored Model Identification system

Several months ago, we started working on a new API to improve model identification (aka “probing” or “classification”). This process involves analyzing model files to determine what kind of model it is.

As of this release, the new API is complete and all legacy model identification logic has been ported to it. Along with the changes in #8577, the process of adding new models to Invoke is much simpler.

Model Identification Test Suite

Besides the business logic improvements, model identification is now fully testable!

When we find a model that is not identified correctly, we can add that model to the test suite, which currently has test cases for 70 models.

Models can be many GB in size and are thus not particularly well-suited to be stored in a git repo. We can work around this by creating lightweight representations of models. Model identification typically relies on analyzing model config files or state dict keys and shapes, but we do not need the tensors themselves for this process.

This allows us to strip out the weights from model files, leaving only the model’s “skeleton” as a test case. The 70-model test suite is currently about 115MB but represents hundreds of GB of models.

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.8.1…v6.9.0

v6.10.0

InvokeAI v6.10.0

This is the first InvokeAI Community Edition release since the closure of the commercial venture, and we think you will be pleased with the new features and capabilities. This release introduces backend support for the state-of-the-art Z-Image Turbo image generation models, and multiple frontend improvements that make working with InvokeAI an even smoother and more pleasurable experience.

The Z-Image Turbo Model Family

Z-Image Turbo (ZiT) is a bilingual image generation model that manages to combine high performance with a small footprint and excellent image generation quality. It excels in photorealistic image generation, renders both English and Chinese text accurately, and is easy to steer. The full model will run easily on consumer hardware with 16 GB VRAM, and while quantized versions will run on significantly smaller cards, with some loss of precision.

With this release InvokeAI runs almost all released versions of ZiT, including diffusers, safetensors, GGUF, FP8 and quantified versions. However, be aware that the FP8 scaled weights models are not yet fully supported and will produce image artifacts. In addition, InvokeAI supports text2image, image2image, ZiT LoRA models, controlnet models, canvas functions and regional guidance. Image Prompts (IP) are not supported by ZiT, but similar functionality is expected when Z-Image Edit is publicly released.

To get started using ZiT, go to the Models tab and from the Launchpad select the Z-Image Turbo bundle to install all the available ZiT related models and dependencies (rougly 35 GB in total). Alternatively, you can select individual models from the Starter Models tab, and search for “Z-Image.” The full and Q8 models will run on a 16 GB card. For cards with 6-8 GB of VRAM, choose the smaller quantized model, Z-Image Turbo GGUF Q4_K. Note that when using one of the quantized models, you will also need to install the standalone Qwen3 encoder and one of the Flux VAE models. This will be handled for you when you install a ZiT starter model.

When generating with these models it is recommended to use 8-9 steps and a CFG of 1. Be aware that due to ZiTs strong prompt following it does not generate as much image diversity as other models you may be used to. One way to increase image diversity is to create a custom workflow that adds noise to the Z-Image Text Encoder using @Pfannkuchensack’s Image Seed Variance Enhancer Node.

In addition to the default Euler scheduler for ZiT we offer the more accurate but slower Heun scheduler, and a faster but less accurate LCM scheduler. Note that the LCM and Heun schedulers are still experimental, and may not produce optimal results in some workflows.

A big shout out to @Pfannkuchensack for his critical contributions to this effort.

New Workflow Features

We have two new improvements to the Workflow Editor:

  • Workflow Tags: It is now possible to add multiple arbitrary text tags to your workflows. To set a tag on the current workflow, go to Details and and scroll down to Tags. Enter a comma-delimited of tags that describe your workflow, such as “image, bounding box”, and save. The next time you browse your workflows, you will see a series of checkboxes for all the unique tags in your workflow connection. Select the tag checkboxes individually or in combination to filter the workflows that are displayed. This feature was contributed by @Pfannkuchensack.
  • Prompt Template Node: Another @Pfannkuchensack workflow contribution is a new Prompt Template node, which allows you to apply any of the built-in or custom prompt style templates to a prompt before passing it onward to generation.

Prompt Weighting Hotkeys

@joshistoast has added a neat feature for adjusting the weighting of words and phrases in the prompt. Simply select a word or phrase in the prompt textbox and press Ctrl-Up Arrow to increase the weight of the selection (by adding ”+” marks) or Ctrl-Down Arrow to decrease the weighting.

Limitations: The prompt weighting does not work properly with numeric weights, nor with prompts that contain the .add() or .blend() functions. This will be fixed in the next point release.

Hotkey Editor

Speaking of hotkeys, @Pfannkuchensack and @joshistoast contributed a new user interface for editing hotkeys. Any of the major UI functions, such as kicking off a generation, opening or closing panels, selecting tools in the canvas, gallery navigation, and so forth, can now be assigned a key shortcut combination. You can also assign multiple hotkeys to the same function.

To access the hotkey editor, go to the Settings (gear) menu in the bottom left, and select Hotkeys.

Bulk Operations in the Model Manager

You can now select multiple models in the Model Manager tab and apply bulk operations to them. Currently the only supported operation is to Delete unwanted models, but this feature will be expanded in the future to allow for model exporting, archiving, and other functionality.

This feature was contributed by @joshistoast, based on earlier work by @Pfannkuchensack .

Masked Area Extraction in the Canvas

It is now possible to extract an arbitrary portion of all visible raster layers that are covered by the Inpaint Mask. The extracted region is composited and added as a new raster layer. This allows for greater flexibility in the generation and manipulation of raster layers.

Thanks to @DustyShoe for this work.

PBR Maps

@blessedcoolant added support for PBR maps, a set of three texture images that can be used in 3D graphics applications to define a material’s physical properties, such as glossiness. To generate the PBR maps, simply right click on any image in the viewer or gallery, and select “Filters -> PBR Maps”. This will generate PBR Normal, Displacement, and Roughness map images suitable for use with a separate 3D rendering package.

New FLUX Model Schedulers

We’ve also added new schedulers for FLUX models (both dev and schnell). In addition to the default Euler scheduler, you can select the more accurate but slow Heun scheduler, and the faster but less accurate LCM scheduler. Look for the selection under “Advanced Options” in the Text2Image settings panel, or in the FLUX Denoise node in the workflow editor. Note that the LCM and Heun schedulers are still experimental, and may not produce optimal results in some workflows.

Thanks to @Pfannkuchensack for this contribution.

SDXL Color Compensation

When performing SDXL image2image operations, the color palette changes subtly and the discrepancy becomes increasingly obvious after several such operations. @dunkeroni has contributed a new advanced option to compensate for this color drift when generating with SDXL models.

Option to Release VRAM When Idle

InvokeAI tends to grab as much GPU VRAM as it needs and then hold on to it until the model cache is manually cleared or the server is restarted. This can cause an annoyance for people who need the VRAM for other tasks. @lstein added a new feature that will automatically clear the InvokeAI model cache and release its VRAM after a set period of idleness. To activate this feature, add the configuration option model_cache_keep_alive_min to the invokeai.yaml configuration file. It takes a floating point number corresponding to the number of minutes of idleness before VRAM is released. For example, to release after 5 minutes of idleness, enter:

model_cache_keep_alive_min: 5.0

Setting this value to 0 disables the feature. This is also the default if the configuration option is absent.

Bugfixes

Multiple bugs were caught and fixed in this release and are listed in the detailed changelog below.

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

New Contributors

Translation Credits

Many thanks to Riccardo Giovanetti (Italian) and RyoKoba (Japanese) who contributed their time and effort to providing translations of InvokeAI’s text.

What’s Changed

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.9.0…v6.10.0

v6.11.0

InvokeAI v6.11.0

This is a feature release of InvokeAI which provides support for the new FLUX.2 Klein image generation and edit models as well as a few small improvements and bug fixes. Before we get to the details, consider taking our 2026 User Engagement Survey. We want to know who you are, how you use InvokeAI, and what new features we can add to make the software even better.

Support for FLUX.2 Klein models

The FLUX2 Klein family of models (F2K) are fast, high quality image generation and editing models. Invoke provides support for multiple versions, including both the fast-but-less-precise 4 billion (4B) and the slower-but-more-accurate 9 billion (9B) models, as well as quantized versions of these models suited for systems with limited VRAM. These models are small and fast; the fastest can render images in seconds with just four steps.

In addition to the usual features (txt2img, img2img, inpainting, outpainting) F2K offers a unique image editing feature which allows you to make targeted modifications to an image or set of images using prompts like “Change the goblet in the king’s right hand from silver to gold,” or “Transfer the style from image 1 to image 2”.

Suggested hardware requirements are:

FLUX.2 Klein 4B - 1024×1024

  • GPU: Nvidia 30xx series or later, 12GB+ VRAM (e.g. RTX 3090, RTX 4070). FP8 version works with 8GB+ VRAM.*
  • Memory: At least 16GB RAM.
  • Disk: 10GB for base installation plus 20GB for models (Diffusers format with encoder).

FLUX.2 Klein 9B - 1024×1024

  • GPU: Nvidia 40xx series, 24GB+ VRAM (e.g. RTX 4090). FP8 version works with 12GB+ VRAM.
  • Memory: At least 32GB RAM.
  • Disk: 10GB for base installation plus 40GB for models (Diffusers format with encoder).

Getting Started with F2K

After updating InvokeAI, you will find a new FLUX.2 Klein starter pack for in the Starter Models section of the Model Manager. This will download three files: the Q4 quantized version of F2K 4B, which is suitable to run on low-end hardware, and two supporting files: the FLUX.2 VAE, and a quantized version of the FLUX.2 Qwen3 text encoder.

After installing the bundle, select the “FLUX.2 Klein 4B (GGUF Q4)” model in theGeneration section of Invoke’s left panel. Also go to the Advanced section at the bottom of the panel and select the F2K VAE and text encoder models that were installed with the starter bundle. (If you don’t select these, you will get an warning message on the first generation that tells you to do this.) Recommended generation settings are:

  • Steps: 4-6
  • CFG: 1-2

Modestly increasing the number of steps may increase accuracy somewhat. If you work with the Base versions of F2K (available from HuggingFace), increase the steps to >20 and the CFG to 3.5-5.0.

Text2img, img2img, inpainting and outpainting will all work as usual. InvokeAI does not currently support F2K LoRAs or ControlNets (there have not been many published so far). In addition, only the Euler sampler is currently available. Support for LoRAs and additional schedulers will be added in a future release.

Prompting with FLUX.2

Like ZiT, F2K’s text encoder works best when you provide it with long prose prompts that follow the framework Subject + Setting + Details + Lighting + Atmosphere. For example: “An elderly king is standing on a low dais in front of a crowded and chaotic banquet hall bursting with courtiers and noblemen. He is shown in profile, facing his noblemen, holding high a jeweled chalice of wine to toast the unification of his fifedoms. This is a cinematic shot set that conveys historical grandeur and a medieval vibe.

F2K does not perform any form of prompt enhancement, so what you write is what the model sees. See FLUX.2 Prompting Guide for more guidance.

Image Editing

F2K provides an image editing mode that works like a souped-up version of Image Prompt (IP) Adapters. Drag-and-drop or upload an image to the Reference Image section of the Prompt panel. Then instruct the model on modifications you wish to make using active verbs. You may issue multiple instructions in the same prompt.

  • Change the king’s chalice from silver to gold. Give him a crown, and grow him a salt-and-pepper beard.
  • Change the image style to a scifi/fantasy vibe.
  • Use an anime style and give the noblemen and courtiers brightly-colored robes.

F2K editing supports multiple reference images, letting you transfer visual elements (subjects, style and background) from one to another. When prompting over multiple images, refer to them in order as “image 1,” “image 2,” and so forth.

  • Give the king in image 1 the crown that appears in image 2.
  • Transfer the style of image 1 to image 2.

Dealing with multiple reference images is tricky. There is no way to adjust the weightings of each image, and so you will have to be explicit in the prompt about which visual elements you are combining. If you cannot get the effect you are looking for by modifying the prompt, you may find success by changing the order of images.

Also be aware that each image significantly increases the model’s VRAM usage. If you run into memory errors, use a smaller (quantized) model, or reduce the number and size of the reference images.

Other Versions of F2K Available in the Model Manager

To find additional supported versions of F2K, type “FLUX.2” into the Starter Models search box. This will show you the following types of files:

  • FLUX.2 Klein 4B/9B (Diffusers) These are the full-size all-in-one diffusers versions of F2K which come bundled with the VAE and text encoder.
  • FLUX.2 Klein 4B/9B These are standalone versions of the full-size F2K which require installation of separate VAE and text encoders. Note that the 4B and 9B models require different text encoders, “FLUX.2 Klein Qwen3 4B Encoder” and “FLUX.2 Klein Qwen3 8B Encoder” respectively. (Not a misprint: use the 9B F2K model with the 8B text encoder!)
  • FLUX.2 Klein 4B/9B (FP8) These are the standalone versions quantized to 8 bits. The 4B model will run comfortably on macines with 8GB VRAM, while the 9B model will run on machines with 12GB or higher. As with all quantized versions, there is minor loss of generation accuracy.
  • FLUX.2 Klein 4B/9B (Q4) These are standalone versions that have been quantized to 4 bits, resulting in very small and fast models that can run on cards with 6-8 GB VRAM.

There is only one F2K VAE, and it happens to be same as the one used by FLUX.1 and Z-Image Turbo. However, there are several text encoder options:

  • FLUX.2 Klein Qwen3 4B Encoder Use this encoder with the F2K 4B versions. It also works with Z-Image Turbo.
  • Z-Image Qwen3 Text Encoder (quantized) This is a Q6-quantized version of the text encoder, that works with both F2K and ZiT. You may use this on smaller memory systems to reduce swapping of models in and out of VRAM.
  • FLUX.2 Klein Qwen3 8B Encoder Use this encoder with the F2K 9B versions. It is not compatible with ZiT.

You will find additional F2K models on HuggingFace and other model repositories, including the base models intended for fine-tuning and LoRA training. We have not exhaustively tested InvokeAI compatibility with all the available variants. Please report any incompatible models to InvokeAI Issues.

Many credits to @Pfannkuchensack for contributing F2K support.

Other Features in this Release

The other features in this release include:

Z-Image Turbo Variance Enhancer

ZiT tends to produce very similar images for a given prompt. To increase image diversity, @Pfannkuchensack contributed a Seed Variance Enhancer node which adds calibrated amounts of noise to the prompt conditioning prior to generation. You will find this feature in the Generation panel under Advanced Options. When activated, you will see two sliders, one for Variance Strength and the other for Randomize Percent. The first slider controls how much noise will be added to the conditioned prompt, and the second controls what proportion of the conditioning’s weights will be altered. Using the default randomization of 50% of the values, a variance strength of 0.1 will produce subtle variations, while a strength of 0.5 will produce very marked deviation from the prompt. Increasing the percentage of weights modified will also increase the level of variation.

Improved Support for High-Resolution FLUX.1 Images

A new denoising tuning algorithm, introduced by @Pfannkuchensack, increases the accuracy of FLUX.1 generations at high resolutions. When a FLUX.1 model is selected, a new DyPE option will appear in the Generation panel. Its settings are Off (the default) to disable the algorithm, Auto to automatically activate DyPE when rendering images greater than 1536 pixels in either dimension, and 4K Optimized to activate the algorithm with parameters that are tuned for 4K images. Note that if you do not have sufficient VRAM to generate 4K images, this feature will not help you generate them. Instead, generate a smaller image and use Invoke’s Upscaling feature.

Canvas high level transform smoothing

Another improvement contributed by @DustyShoe: The Canvas raster layer transform operation now supports multiple types of smoothing, thereby reducing the number of artifacts when an area is upscaled.

Text Search and Highlighting in the Image Metadata Tab

The Image Viewer’s info (🛈) tab now has a search field that allows you to rapidly search and highlight text in image metadata, details, workflow and generation graph. In addition, the left margin of the metadata display has been widened to make the display more readable.

Thanks to @DustyShoe for this improvement.

Bugfixes

Several bugs were caught and fixed in this release and are listed in the detailed changelog below. Thanks to first-time contributors @kyhavlov and @aleyan for the bugs they caught and fixed.

Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

Translation Credits

Many thanks to the following language translators who contributed to this release: @Harvester62 (Italian) and @DustyShoe (Russian).

Also many thanks to Weblate for granting InvokeAI a free Open Source subscription to use its translation management service.

What’s Changed

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.10.0…v6.11.0

v6.11.1

InvokeAI 6.11.1

This is a bugfix release that corrects several image generation and user interface glitches:

  • Fix FLUX.2 Klein image generation quality (@Pfannkuchensack)
    • At higher step values and larger images, the FLUX.2 Klein models were generating image artifacts characterized by diagonals, cross-hatching and dust. This bug is now corrected.
  • Restore denoising strength for outpaint mode (@Pfannkuchensack)
    • Previously, when outpainting, the denoising strength was pinned at 1.0 rather than observing the value set by the user.
  • Only show FLUX.1 VAEs when a FLUX.1 main model is selected (@Pfannkuchensack)
    • This fix prevents the user from inadvertently selecting a FLUX.2 VAE when generating with FLUX.1.
  • Reset ZiT seed variance toggle when recalling images without that metadata (@Pfannkuchensack)
    • When remixing an image generated by Z-Image Turbo, the setting of the seed variance toggle (which increases image diversity) is now correctly restored.
  • Improve DyPE area calculation (@JPPhoto)
    • DyPE increases the quality of FLUX.1 models at higher resolutions.. This fix improves how the algorithm’s parameters are automatically adjusted for image size.
  • Remove duplicate DyPE preset dropdown in generation settings (@Pfannkuchensack
    • The DyPE dropdown in generation settings is no longer duplicated in the generation UI.

In addition to these bug fixes, new Russian translations were added by (@DustyShoe).

Checkout the roadmap

To see what the development team has planned for forthcoming releases, check out the InvokeAI roadmap. Feature releases will be issued roughly monthly.

Take the user survey

And don’t forget to tell us who you are, what features you use, and what features you most want to see included in future releases. Take the InvokeAI 2026 User Engagement Survey and share your thoughts!

Credits

In addition to the authors of these bug fixes, many thanks to @blessedcoolant, @skunkworxdark, and @mickr777 for their time and patience testing and reviewing the code.

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.11.0…v6.11.1

v6.12.0 Latest

InvokeAI v6.12.0

This is a feature release of InvokeAI which provides support for multiple accounts on the same InvokeAI backend, enhanced support for the Z-Image and FLUX.2 models, multiple user interface enhancements, and new utilities for managing models.

[Jump to Installing and Updating]

Multi-User Mode (Experimental)

Have you ever wished you could share your InvokeAI instance with your friends, family or coworkers, but didn’t want to share your galleries or give everyone the ability to add and delete models? Now you can. InvokeAI 6.12 introduces an experimental multi-user mode that allows you to create separate user accounts with login names and passwords. Each account’s image boards, images, canvas state and UI preferences are separate from the others. Users with administrative privileges are allowed to perform system-wide tasks such as adding and configuring models and managing the session queue, while ordinary users are prevented from making this type of change.

InvokeAI Log-In Screen

See the Multi-User Mode User’s Guide for information on setting up and using this mode.

Multi-User mode was contributed by @lstein .

Enhanced Support for Z-Image and FLUX.2 Models

Z-Image Base — This version of InvokeAI adds support for the Z-Image Base model family. This is an undistilled version of Z-Image suitable for fine-tuning and LoRA training. It also provides a high level of image diversity while preserving excellent image quality.

FLUX.2 LoRAs — InvokeAI now supports a variety of FLUX.2 Klein LoRA formats.

Thanks to @Pfannkuchensack for his work on these enhancements.

Paged Gallery Browsing — Paged gallery browsing is back. Go to image board settings and select “Use Paged Gallery View” to replace infinite gallery scrolling with page-by-page navigation.

image

Arrow Key Navigation — The arrow keys now work correctly when browsing a gallery. When the Viewer is in focus, the right and left arrow keys will navigate through the currently selected gallery. When the gallery thumbnails are in focus, the right/left/up/down arrows navigate among them.

@DustyShoe contributed these enhancements.

New Canvas Features

The Canvas now features several new features added by @DustyShoe

Text Tool — The Canvas now features a Text tool that allows you to insert text in a variety of fonts, sizes and styles, move it around the canvas, and commit it to the raster layer.

Linear and radial gradient tools — These new tools add radial and linear gradients to the Canvas. The gradients use color transparency and the foreground/background colors to draw gradients in the direction of the mouse movement.

image

Invert Button for Regional Guidance Layers — You can now select any Regional Guidance region and select the “invert” button to exchange painted regions with unpainted ones and vice versa. As an added bonus, the invert button also works with Inpaint Masks.

Layer Controls Moved The controls for creating, duplicating and deleting canvas layers have been moved from the top of the layers list to the bottom, which is more consistent with how other graphics packages position their layer controls and, we think, more intuitive. Long-term Canvas users may need to adjust to the new positioning.

A few improvements contributed by @lstein aim to make it easier to maintain the model and image databases.

Remove Orphaned Models — Over time InvokeAI may accumulate unused “orphan” models in its models directory that take up space but have no entries in the models database for one reason or another. This means they take up disk space without being usable. A new “Sync Models” button in the Model Manager detects and offers to delete such orphaned models. Developers and other users who have access to the source code repository will also find a script, located in scripts/remove_orphaned_models.py , that will do the same thing from the command line.

Remove Dangling Models — The converse problem occurs when a model directory, or one of its files, was removed or renamed externally, causing it to be referenced in the models database but not be usable. There is now a “Missing Files” filter option in the Model Manager that will identify models that are damaged or deleted. You can then select the models you wish to delete and remove them from the database. In addition, the model selection menus will no longer display models that are missing or broken.

Gallery Maintenance Script — For users with access to the source code repository, the scripts/gallery_maintenance.py python script will clean up dangling and orphaned gallery images. Dangling images are those that appear in the Invoke gallery database but whose files have been deleted from disk. Orphaned images are those that have files on disk but are missing from the database. A related database maintenance tool with more bells and whistles can also be found in @Pfannkuchensack ‘s GitHub at https://github.com/Pfannkuchensack/sqlite_invokeai_db_tool.

Workflow Iterator Improvements

@JPPhoto fixed the way that workflow collections work. Previously when you created a Collection and passed it to an iterator, the items in the collection would be passed to downstream nodes in an unpredictable order. Now, the order of items in the collection is preserved, making complex workflows more predictable and reproducible.

Remote Controlling Invoke’s Generation Parameters

It is now possible to programmatically set Invoke’s generation parameters using a new REST endpoint. This allows a script or other external program to select the model, image size, seed, steps, LoRAs, reference images, and all the other parameters that go into a generation. For documentation of the feature see:

@lstein added this feature.

Translations

Thanks to @Harvester62 for providing the Italian translations for this release.


Installing and Updating

The 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.

Note: With recent updates to torch, users on older GPUs (20xx and 10xx series) will likely run into issues with installing/updating. We are still evaluating how we can support older GPUs, but in the meantime users have found success manually downgrading torch. Head over to discord if you need help.

Follow the Quick Start guide to get started with the launcher.

If you don’t want to use the launcher, or need a headless install, you can follow the manual install guide.

Behind-the-Scenes Improvements

This release are contains a number of bug fixes and performance enhancements.

  • Optimize cache locking in Klein text encoder — (@girlyoulookthebest) This addresses a race condition in the Model Cache which prematurely removed the FLUX.2 Klein encoder from memory.
  • Run Text Encoder on CPU — (@lstein) This is an option available in the details panel of the Model Manager that allows you to force large text encoder models to run on CPU rather than GPU. This preserves VRAM for use by the denoiser steps and in some cases improves performance. Thanks to @girlyoulookthebest who found and fixed a bug in this feature.
  • Fix IP Adapters losing their model path — (@Pfannkuchensack) Fixes the Model Manager’s “reidentify” function when run on IP Adapter models.
  • Kill the server with a single ^C — (@lstein) When previous version of Invoke were launched from a command-line terminal, it used to require two key board interrupts (control-C) to completely shut it down. This is now fixed.
  • Persist the selected board and image across browser sessions — (@lstein) The last image board selected is now restored when you edit a browser session and restart it.

Detailed Change Log

What’s Changed

New Contributors

Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v6.11.0…v6.12.0

This site was designed and developed by Aether Fox Studio.