InvokeAI v6.12.0rc1
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.
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.
Gallery User Interface Improvements
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.
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.
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.
Model and Gallery Management Improvements
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
- Add configurable model cache timeout for automatic memory management by @Copilot in #8693
- chore: Remove extraneous log debug statements from model loader by @lstein in #8738
- Feature: z-image + metadata node by @Pfannkuchensack in #8733
- feat(z-image): add
add_noiseoption to Z-Image Denoise by @Pfannkuchensack in #8739 - (chore) Bump to version 6.10.0 by @lstein in #8742
- chore(release): bump development version to 6.10.0.post1 by @lstein in #8745
- Fix(model manager): Improve calculation of Z-Image VAE working memory needs by @lstein in #8740
- Chore: Fix weblate merge conflicts by @lstein in #8744
- ui: translations update from weblate by @weblate in #8747
- ui: translations update from weblate by @weblate in #8748
- Chore: Fix weblate rebase errors by @lstein in #8750
- fix(invocation stats): Report delta VRAM for each invocation; fix RAM cache reporting by @lstein in #8746
- Fix(UI): Error message for extract region by @DustyShoe in #8759
- Fix(UI): Canvas numeric brush size by @DustyShoe in #8761
- Feat(UI): Canvas high level transform smoothing by @DustyShoe in #8756
- chore(CI/CD): Remove codeowners from /docs directory by @lstein in #8737
- feat(z-image): add Seed Variance Enhancer node and Linear UI integration by @Pfannkuchensack in #8753
- fix(model_manager): prevent Z-Image LoRAs from being misclassified as main models by @Pfannkuchensack in #8754
- Add user survey section to README by @lstein in #8766
- ui: translations update from weblate by @weblate in #8767
- Limit automated issue closure to bug issues only by @Copilot in #8776
- Feat(UI): Search bar in image info code tabs and add vertical margins for improved UX in Recall Parameters tab. by @DustyShoe in #8786
- feat(flux2): add FLUX.2 klein model support by @Pfannkuchensack in #8768
- Feature: Add DyPE (Dynamic Position Extrapolation) support to FLUX models for improved high-resolution image generation by @Pfannkuchensack in #8763
- fix(model_manager): detect Flux1/2 VAE by latent space dimensions instead of filename by @Pfannkuchensack in #8790
- Prep for 6.11.0.rc1 by @lstein in #8771
- Fix ref_images metadata format for FLUX Kontext recall by @Pfannkuchensack in #8791
- Add input connectors to the FLUX model loader by @JPPhoto in #8785
- ui: translations update from weblate by @weblate in #8797
- fix(ui): use proper FLUX2 latent RGB factors for preview images by @Pfannkuchensack in #8802
- fix(ui): allow guidance slider to reach 1 for FLUX.2 Klein by @Pfannkuchensack in #8800
- Add new model type integration guide by @Pfannkuchensack in #8779
- [i18n]: Fix weblate merge errors by @lstein in #8805
- ui: translations update from weblate by @weblate in #8804
- ui: translations update from weblate by @weblate in #8806
- Release Workflow: Fix workflow edge case by @lstein in #8792
- Documentation: InvokeAI PR review and merge policy by @lstein in #8795
- ui: translations update from weblate by @weblate in #8807
- fix(ui): improve DyPE field ordering and add 'On' preset option by @Pfannkuchensack in #8793
- fix: Klein 2 Inpainting breaking when there is a reference image by @blessedcoolant in #8803
- fix(ui): remove scheduler selection for FLUX.2 Klein by @Pfannkuchensack in #8808
- Fix(UI): Removed canvas' blur filter clipping by expanding image bounds by @DustyShoe in #8773
- fix(ui): Flux 2 Model Manager default settings not showing Guidance by @blessedcoolant in #8810
- ui: translations update from weblate by @weblate in #8812
- ui: translations update from weblate by @weblate in #8813
- ui: translations update from weblate by @weblate in #8814
- fix(ui): convert reference image configs when switching main model base by @Pfannkuchensack in #8811
- ui: translations update from weblate by @weblate in #8816
- Chore(CI/CD): bump version to 6.11.0.post1 by @lstein in #8818
- feat(model_manager): add missing models filter to Model Manager by @Pfannkuchensack in #8801
- Implemented ordering for expanded iterators by @JPPhoto in #8741
- fix(flux2): support Heun scheduler for FLUX.2 Klein models by @Pfannkuchensack in #8794
- fix(ui): only show FLUX.1 VAEs when a FLUX.1 main model is selected by @Pfannkuchensack in #8821
- Feat(UI): Reintroduce paged gallery view as option by @DustyShoe in #8772
- fix(ui): reset seed variance toggle when recalling images without that metadata by @Pfannkuchensack in #8829
- fix(ui): restore denoising strength for outpaint mode by @Pfannkuchensack in #8828
- ui: translations update from weblate by @weblate in #8830
- fix(ui): remove duplicate DyPE preset dropdown in generation settings by @Pfannkuchensack in #8831
- ui: translations update from weblate by @weblate in #8834
- Feat(UI): Add linear and radial gradient tools to canvas by @DustyShoe in #8774
- Feature(backend): Add user toggle to run encoder models on CPU by @lstein in #8777
- Add dype area option by @JPPhoto in #8844
- fix(flux2): Fix FLUX.2 Klein image generation quality by @Pfannkuchensack in #8838
- Fix DyPE Area Calculation by @JPPhoto in #8846
- chore(CI/CD): bump version to 6.11.1.post1 by @lstein in #8852
- feat(model_manager): Add scan and delete of orphaned models by @lstein in #8826
- ui: translations update from weblate by @weblate in #8856
- fix(flux2): resolve device mismatch in Klein text encoder by @girlyoulookthebest in #8851
- ui: translations update from weblate by @weblate in #8878
- Feature(app): Add an endpoint to recall generation parameters by @lstein in #8758
- Feature: Canvas Blend and Boolean modes by @dunkeroni in #8661
- Feature(backend): Add a command-line utility for running gallery maintenance by @lstein in #8827
- fix(flux2): apply BN normalization to latents for inpainting by @Pfannkuchensack in #8868
- feat(z-image): add Z-Image Base (undistilled) model variant support by @Pfannkuchensack in #8799
- Feature(UI): Add text tool to canvas by @DustyShoe in #8723
- ui: translations update from weblate by @weblate in #8881
- Feature (UI): Add Invert button for Regional Guidance layers by @DustyShoe in #8876
- Fix: canvas text tool broke global hotkeys by @Copilot in #8887
- Fix Create Board API call by @hjohn in #8866
- Fix: Improve non square bbox coverage for linear gradient tool. by @DustyShoe in #8889
- Fix bare except clauses and mutable default arguments by @Mr-Neutr0n in #8871
- Feat(Model Manager): Add improved download manager with pause/resume partial download. by @DustyShoe in #8864
- Feature: flux2 klein lora support by @Pfannkuchensack in #8862
- ui: translations update from weblate by @weblate in #8905
- chore(CI/CD): Add pfannkuchensack to codeowners for backend by @lstein in #8915
- Feature: Add FLUX.2 LOKR model support (detection and loading) by @lstein in #8909
- Fix(Text-tool): Remove redundant Font tooltip on fonts selection by @DustyShoe in #8906
- feat(multiuser mode): Support multiple isolated users on same backend by @lstein in #8822
- Fix(UI): Fixes broken "Cancel Current Item" button in left panel introduced in last commit. by @DustyShoe in #8925
- ui: translations update from weblate by @weblate in #8924
- Fix: Replace deprecated huggingface_hub.get_token_permission() with whoami() by @Pfannkuchensack in #8913
- fix: Filter non-transformer keys from Z-Image checkpoint state dicts by @Pfannkuchensack in #8918
- Fix(MM): Fixed incorrect advertised model size for Z-Image Turbo by @DustyShoe in #8934
- fix(model-install): persist remote access_token for resume after restart by @DustyShoe in #8932
- feat(MM):model settings export import by @Pfannkuchensack in #8872
- Fix: Shut down the server with one keyboard interrupt (#94) by @lstein in #8936
- QoL: Persist selected board and most recent image across browser sessions by @lstein in #8920
- Fix(backend): Fix race condition in download queue when concurrent jobs share same destination by @lstein in #8931
- Prompt Attention Fixes by @joshistoast in #8860
- Fix: model reidentify losing path and failing on IP Adapters by @Pfannkuchensack in #8941
- perf(flux2): optimize cache locking in Klein encoder to fix #7513 by @girlyoulookthebest in #8863
- fix(model_manager): detect Flux 2 Klein LoRAs in Kohya format with transformer-only keys by @Pfannkuchensack in #8938
- ui: translations update from weblate by @weblate in #8946
- Added SQL injection tests by @JPPhoto in #8873
- Add user management UI for admin and regular users (#106) by @lstein in #8937
- Fix(gallery): Re-add image browsing with arrow keys by @DustyShoe in #8874
- Doc: update multiuser mode documentation by @lstein in #8953
- docs: Fix typo in README.md - 'easy' should be 'ease' by @haosenwang1018 in #8948
- docs: Fix typo in contributing guide - remove extra 'the' by @haosenwang1018 in #8949
- ui: translations update from weblate by @weblate in #8947
New Contributors
- @Copilot made their first contribution in #8693
- @girlyoulookthebest made their first contribution in #8851
- @hjohn made their first contribution in #8866
- @Mr-Neutr0n made their first contribution in #8871
- @haosenwang1018 made their first contribution in #8948
Full Changelog: v6.11.1...v6.12.0rc1
