This is a Release Candidate. We strongly suggest backing up your database before testing to prevent data loss in case of any issues.
Please let us know if you run into anything unexpected.
What's New
New Model Manager
The model manager is rewritten in v4.0.0, both frontend and backend. This builds a foundation for future model architectures and brings some exciting new user-facing features:
- Queued model downloads
- Per-model preview images
- Per-model default settings - choose a model’s default VAE, Scheduler, CFG Scale, etc.
- User-defined trigger phrases for concepts/LoRAs and models - access by typing the
<
key in any prompt box - API key support for model marketplaces
Model Hashing
When you first run v4.0.0, it will take a while to start up as it does a one-time hash of all of your model files.
Do not panic.
Hashes provide a stable identifier for a model that is the same across every platform.
If you don’t care about this, you can disable the hashing using the skip_model_hash
setting in invokeai.yaml
.
Canvas Improvements
The canvas uses a new method for compositing called gradient denoising. This eliminates the need for multiple “passes”, greatly reducing generation time on the canvas. This method also provides substantially improved visual coherence between the masked regions and the rest of the image.
The compositing settings on canvas allow for control over the gradient denoising process.
Major research & experimentation for this novel denoising implementation was led by @dunkeroni, and @blessedcoolant was responsible for managing integration into the canvas UI.
Bonus: Invoke Training (Beta)
As of v4.0.0, all references to training in the core invoke script now point to the Invoke Training Repo. Invoke Training offers a simple user interface for:
- Textual Inversion Training
- LoRA Training
- Dreambooth Training
- Pivotal Tuning Training
You can learn more about Invoke Training at https://github.com/invoke-ai/invoke-training
Minor UI/UX Enhancements:
- Canvas Brush Size Scroll can now be inverted (Thanks @joshistoast!)
- Images in the Canvas Staging Area can now be discarded individually (Thanks @joshistoast!)
- Many small bug fixes and resolved papercuts
Installation and Upgrading
To install or upgrade to version 4.0, download the zip file from the release notes ("Assets" section), unpack it, and follow the installation instructions. For upgrades, select the same installation location.
💻 Developer Changes
v4.0.0 is versioned as a major release due to breaking changes:
- The internal nodes API has been refactored to provide a stable public API. Node authors should review the migration guide.
- The internal graph execution engine is drastically simplified, resulting in more efficient and performant processing. This carries on from the changes in v3.6.0 in which graphs are no longer stored in the database.
Contributing
As a community-supported project, we rely on volunteers and enthusiasts for continued innovation and polish. Everything from minor documentation fixes to major feature additions are welcome. To get started as a contributor, please refer to How to Contribute or reach out in #dev-chat on Discord!
What's Changed
- fix(ui): do not provide auth headers for openapi.json by @maryhipp in #5726
- ui: translations update from weblate by @weblate in #5736
- ui: translations update from weblate by @weblate in #5743
- add latent-upscale to communityNodes.md by @gogurtenjoyer in #5728
- updated tooltip popovers by @chainchompa in #5751
- ui: translations update from weblate by @weblate in #5752
- ui: translations update from weblate by @weblate in #5765
- ui: translations update from weblate by @weblate in #5788
- Update communityNodes.md by @skunkworxdark in #5802
- ui: translations update from weblate by @weblate in #5823
- chore: merge next by @psychedelicious in #5838
- feat: automated releases via github action by @psychedelicious in #5839
- Fix problem of all installed models being assigned "" by @lstein in #5841
- Tidy the attention code (in preparation for regional prompting) by @RyanJDick in #5843
- ci: fix workflows by @psychedelicious in #5854
- Remove attention map saving by @RyanJDick in #5845
- Make model key assignment deterministic by @lstein in #5792
- fix(canvas): use a corrected gradient mask for canvas pasteback by @dunkeroni in #5855
- Update Transformers 4.37.2 -> 4.38.2 by @Malrama in #5859
- consolidate tabs for main model and concepts in generation panel by @maryhipp in #5848
- ui: translations update from weblate by @weblate in #5832
- Log a stack trace for invocation errors by @RyanJDick in #5853
- Allow in place local installs of models by @brandonrising in #5852
- Default model settings by @maryhipp in #5850
- refactor(mm): update configs and schemas by @psychedelicious in #5846
- updates for
defaultModel
by @maryhipp in #5866 - Remove references to the no longer existing invokeai.app.services.mod… by @brandonrising in #5871
- refactor: ✏️ canvas mask compositor naming by @joshistoast in #5873
- fix(nodes): invocation cache clearing by @psychedelicious in #5880
- fix(ui): fix URL for get image workflow by @maryhipp in #5882
- feat(ui): UI papercuts by @maryhipp in #5881
- fix(ui): only show default settings on main models by @maryhipp in #5884
- feat(scripts): typegen improvements by @psychedelicious in #5878
- feat(ui): add config_path to model update form for ckpt models by @maryhipp in #5883
- fix(nodes): load config before doing anything else by @psychedelicious in #5877
- invert canvas brush size hotkey setting by @joshistoast in #5875
- refactor: model identifiers improvements by @psychedelicious in #5879
- ui: translations update from weblate by @weblate in #5864
- Add cover images to model manager by @chainchompa in #5876
- discard current inpaint instance by @joshistoast in #5874
- feat(ui): model manager UI pass by @psychedelicious in #5886
- Remove civit install source by @brandonrising in #5887
- feat(ui): allow inplace installs by @maryhipp in #5890
- fix: workflows backcompat by @psychedelicious in #5897
- feat: default processors for controlnet & t2i adapter by @psychedelicious in #5896
- migrate models on service start by @maryhipp in #5889
- remove old data migration from previous schema version by @maryhipp in #5901
- ui(model_manager): Remember Scan Path by @blessedcoolant in #5898
- fix(ui): only render convert button if ckpt model by @maryhipp in #5902
- fix(ui): add ordering for model list by @maryhipp in #5903
- Use absolute paths in model manager by @brandonrising in #5900
- docs: autogenerate app config docs by @psychedelicious in #5892
- fix(app): include
config_path
in yaml -> DB migration by @maryhipp in #5905 - fix(mm): only move model files if necessary by @psychedelicious in #5911
- fix(mm): yaml migration fixup by @psychedelicious in #5913
- docs: update docs by @psychedelicious in #5909
- feat(nodes): enriched model identifiers by @psychedelicious in #5910
- fix: make Canvas compatible with inpainting models again by @dunkeroni in #5895
- tidy(mm): ModelSearch cleanup by @psychedelicious in #5912
- fix(mm): do not erroneously rename files by @psychedelicious in #5914
- Remove dead code related to an old symmetry feature. by @RyanJDick in #5899
- fix(nodes): ip adapter by @psychedelicious in #5919
- chore: bump app deps by @psychedelicious in #5915
- Allow lists of basemodel objects in omegaconf by @brandonrising in #5922
- Do not override log_memory_usage when debug logs are enabled by @RyanJDick in #5921
- {release} 4.0.0rc1 by @brandonrising in #5908
- ci: add missing permission to release workflow by @psychedelicious in #5927
Full Changelog: 3.7.0...v4.0.0rc1