We are pleased to announce a bugfix and quality of life update to InvokeAI with the release of version 2.3.1.
- What's New
- Installation and Upgrading
- Getting Help
- Known Bugs
- Contributors
- Detailed Change Log
- Acknowledgements
What's New in 2.3.1
This is primarily a bugfix release, but it does provide several new features that will improve the user experience.
Enhanced support for model management
InvokeAI now makes it convenient to add, remove and modify models. You can individually import models that are stored on your local system, scan an entire folder and its subfolders for models and import them automatically, and even directly import models from the internet by providing their download URLs. You also have the option of designating a local folder to scan for new models each time InvokeAI is restarted.
There are three ways of accessing the model management features:
- From the WebUI, click on the cube to the right of the model selection menu. This will bring up a form that allows you to import models individually from your local disk or scan a directory for models to import.
- Using the Model Installer App
Choose option (5) download and install models from the invoke
launcher script to start a new console-based application for model management. You can use this to select from a curated set of starter models, or import checkpoint, safetensors, and diffusers models from a local disk or the internet. The example below shows importing two checkpoint URLs from popular SD sites and a HuggingFace diffusers model using its Repository ID. It also shows how to designate a folder to be scanned at startup time for new models to import.
Command-line users can start this app using the command invokeai-model-install
.
- Using the Command Line Client (CLI)
The !install_model
and !convert_model
commands have been enhanced to allow entering of URLs and local directories to scan and import. The first command installs .ckpt and .safetensors files as-is. The second one converts them into the faster diffusers format before installation.
Internally InvokeAI is able to probe the contents of a .ckpt or .safetensors file to distinguish among v1.x, v2.x and inpainting models. This means that you do not need to include "inpaint" in your model names to use an inpainting model. Note that Stable Diffusion v2.x models will be autoconverted into a diffusers model the first time you use it.
Please see INSTALLING MODELS for more information on model management.
An Improved Installer Experience
The installer now launches a console-based UI for setting and changing commonly-used startup options:
After selecting the desired options, the installer installs several support models needed by InvokeAI's face reconstruction and upscaling features and then launches the interface for selecting and installing models shown earlier. At any time, you can edit the startup options by launching invoke.sh
/invoke.bat
and entering option (6) change InvokeAI startup options
Command-line users can launch the new configure app using invokeai-configure
.
This release also comes with a renewed updater. To do an update without going through a whole reinstallation, launch invoke.sh
or invoke.bat
and choose option (9) update InvokeAI . This will bring you to a screen that prompts you to update to the latest released version, to the most current development version, or any released or unreleased version you choose by selecting the tag or branch of the desired version.
Command-line users can run this interface by typing invokeai-configure
Image Symmetry Options
There are now features to generate horizontal and vertical symmetry during generation. The way these work is to wait until a selected step in the generation process and then to turn on a mirror image effect. In addition to generating some cool images, you can also use this to make side-by-side comparisons of how an image will look with more or fewer steps. Access this option from the WebUI by selecting Symmetry from the image generation settings, or within the CLI by using the options --h_symmetry_time_pct
and --v_symmetry_time_pct
(these can be abbreviated to --h_sym
and --v_sym
like all other options).
A New Unified Canvas Look
This release introduces a beta version of the WebUI Unified Canvas. To try it out, open up the settings dialogue in the WebUI (gear icon) and select Use Canvas Beta Layout:
Refresh the screen and go to to Unified Canvas (left side of screen, third icon from the top). The new layout is designed to provide more space to work in and to keep the image controls close to the image itself:
Model conversion and merging within the WebUI
The WebUI now has an intuitive interface for model merging, as well as for permanent conversion of models from legacy .ckpt/.safetensors formats into diffusers format. These options are also available directly from the invoke.sh
/invoke.bat
scripts.
Numerous internal bugfixes and performance issues
This releases quashes multiple bugs that were reported in 2.3.0. Major internal changes include upgrading to diffusers 0.13.0
, and using the compel
library for prompt parsing. See Detailed Change Log for a detailed list of bugs caught and squished.
Summary of InvokeAI command line scripts (all accessible via the launcher menu)
invokeai Command line interface
invokeai --web Web interface
invokeai-model-install Model installer with console forms-based front end
invokeai-ti --gui Textual inversion, with a console forms-based front end
invokeai-merge --gui Model merging, with a console forms-based front end
invokeai-configure Startup configuration; can also be used to reinstall support models
invokeai-update InvokeAI software updater
Installation
To install or upgrade to InvokeAI 2.3.1, please download the zip file below, unpack it, and then double-click to launch the script install.sh
(Macintosh, Linux) or install.bat
(Windows). Alternatively, you can open a command-line window and execute the installation script directly.
InvokeAI-installer-v2.3.1+rc1.zip
If you are upgrading from an earlier version of InvokeAI, run the installer and when it asks you to confirm the location of the invokeai
directory, type in the path to the directory you are already using, if not the same as the one selected automatically by the installer. When the installer asks you to confirm that you want to install into an existing directory, simply indicate "yes".
Developers and power users can upgrade to the current version by activating the InvokeAI environment and then using pip install --use-pep517 --upgrade InvokeAI
. You may specify a particular version by adding the version number to the command, as in InvokeAI==2.3.1
. You can see which versions are available by going to The PyPI InvokeAI Project Page
Last Feature Release on the 2.3.x Branch
This will be the last feature release on the 2.3.x branch. The development team is migrating to a new software architecture called Nodes, which will provide enhanced workflow management features as well as a much easier way for community developers to contribute to the project. We anticipate the transition taking 4-8 weeks (spring 2023). Until that time, we will be releasing bugfixes and other minor updates only.
Known Bugs in 2.3.1
These are known bugs in the release.
- The Ancestral DPMSolverMultistepScheduler (
k_dpmpp_2a
) sampler is not yet implemented fordiffusers
models and will disappear from the WebUI Sampler menu when adiffusers
model is selected. Support will be added in the nextdiffusers
library release.
Help
Please see the InvokeAI Issues Board or the InvokeAI Discord for assistance from the development team.
Contributors
InvokeAI is the product of the loving attention of a large number of Contributors. For this release in particular, we'd like to recognize the combined efforts of @blessedcoolant, who worked tirelessly on the model management interface despite multiple changes in the backend, and Jonathon Pollack (@JPPhoto) for working deep in the bowels of memory management and image generation. Kudos to @damian0815 and Kevin Turner (@keturn) for their improvements on model memory management and prompt parsing, respectively, and many thanks to Matthias Wild (@mauwii) and Eugene Brodsky (@ebr) for their work on package management and installation.
Last but not least, we acknowledge the tireless efforts of Kent Keirsey (@hipsterusername) for his amazing videos, outreach and team management.
What's Changed
- adding support for ESRGAN denoising strength by @tjennings in #2598
- 2.3.0 Documentation Fixes by @lstein in #2609
- fix two bugs in conversion of inpaint models from ckpt to diffusers m… by @lstein in #2620
- Fix Incorrect Windows Environment Activation Location (Manual Installation Documentation) by @blhook in #2627
- small change to pull esrgan denoise strength through to the generate API. by @tjennings in #2623
- Huge Docker Update - better caching, don't use root user, include dockerhub and more.... by @mauwii in #2597
- add
merge_group
trigger to test-invoke-pip.yml by @mauwii in #2590 - Strategize slicing based on free [V]RAM by @JPPhoto in #2572
- Improve error messages from Textual Inversion and Merge scripts by @lstein in #2641
- Added arabic locale files by @ParisNeo in #2561
- Fix link to the installation documentation by @lstein in #2648
- Add thresholding for all diffusers types by @JPPhoto in #2479
- Fix typo and Hi-Res Bug by @hipsterusername in #2667
- Fix perlin noise generator for diffusers tensors by @JPPhoto in #2678
- [WebUI] Model Conversion by @blessedcoolant in #2616
- fix minor typos by @fat-tire in #2666
- Make install.bat.in point to correct configuration script by @zalo in #2680
- build: lint/format ignores stats.html by @psychedelicious in #2681
- [WebUI] Even off JSX string syntax by @dreglad in #2058
- design: smooth progress bar animations by @ryanccn in #2685
- skip huge workflows if not needed by @mauwii in #2688
- new OffloadingDevice loads one model at a time, on demand by @keturn in #2596
- Fix workflow path filters by @mauwii in #2689
- Update 050_INSTALLING_MODELS.md by @panicsteve in #2690
- [WebUI] They see me slidin .. they hatin... by @blessedcoolant in #2614
- Bugfix/convert v2 models by @lstein in #2630
- Bugfixes on the merge_model GUI by @lstein in #2697
- [WebUI] Model Merging by @blessedcoolant in #2699
- fix(xformers): shush about not having Triton available. by @keturn in #2701
- feat(ui): set up for weblate translation by @psychedelicious in #2702
- AttributeError: 'Namespace' object has no attribute 'log_tokenization' by @spezialspezial in #2698
- [WebUI] Localization Port Bug Fixes by @blessedcoolant in #2706
- Fixed grammar in "other options" feature tooltip by @ExperimentalCyborg in #2711
- fix(ui): fix translation files by @psychedelicious in #2708
- fix(diffusers_pipeline): ensure
cuda.get_mem_info
always gets a specific device index. by @keturn in #2700 - fix conversion of checkpoints into incompatible diffusers models by @lstein in #2714
- [ui] fix weblate merge conflict by @psychedelicious in #2716
- [WebUI] Implement a "Cancel after current iteration" Button by @blhook in #2642
- add ability to retrieve current list of embedding trigger strings by @lstein in #2650
- [WebUI] Model Manager Lag Fix by @blessedcoolant in #2720
- docs(ti): add using & troubleshooting sections by @psychedelicious in #2717
- ui: translations update from weblate by @weblate in #2727
- Fix behavior when encountering a bad embedding by @JPPhoto in #2721
- ui: update deps, fix husky script by @psychedelicious in #2726
- docs: add translation info to readme by @psychedelicious in #2725
- [WebUI] Bug Fixes by @blessedcoolant in #2728
- Add symmetry to generation by @JPPhoto in #2675
- Fix for issue #2707 by @AutoAwesome in #2710
- remove old swagger related files since security issues by @mauwii in #2730
- add @lstein and @blessedcoolant to all codeowner paths by @lstein in #2742
- [WebUI] Symmetry Settings by @blessedcoolant in #2741
- Correctly detect when an embedding is incompatible with the current model by @lstein in #2736
- Fix crash on calling diffusers' prepare_attention_mask by @JPPhoto in #2743
- fix crash in CLI when --save_intermediates called by @lstein in #2744
- [WebUI] Symmetry Fix by @blessedcoolant in #2745
- restore ability of textual inversion manager to read .pt files by @lstein in #2746
- During textual inversion training, skip over non-image files by @lstein in #2747
- Add 'update' action to launcher script by @lstein in #2636
- update installation docs for 2.3.1 installer screens by @lstein in #2749
- performance: low-memory option for calculating guidance sequentially by @keturn in #2732
- Fixed embiggening crash by @JPPhoto in #2756
- Fix crashing when using 2.1 model by @JPPhoto in #2757
- Fallback to using filename to trigger embeddings by @lstein in #2752
- fix crash in textual inversion with "num_samples=0" error by @lstein in #2762
- ui: fix use prompt when prompt has colon by @psychedelicious in #2760
New Contributors
- @blhook made their first contribution in #2627
- @fat-tire made their first contribution in #2666
- @zalo made their first contribution in #2680
- @panicsteve made their first contribution in #2690
- @ExperimentalCyborg made their first contribution in #2711
- @weblate made their first contribution in #2727
- @AutoAwesome made their first contribution in #2710
Full Changelog: v2.3.0...v.2.3.1-rc1