v4.2.6
版本发布时间: 2024-07-15 12:31:04
invoke-ai/InvokeAI最新发布版本:v4.2.7(2024-07-27 03:59:30)
v4.2.6 includes a handful of fixes and improvements, plus three major changes:
- Gallery updates
- Tiled upscaling via
MultiDiffusion
- Checkpoint models work without conversion to diffusers
Gallery Updates
We've made some changes to the gallery, adding features, improving the performance of the app and reducing memory usage. The changes also fix a number of bugs relating to stale data - for example, a board not updating as expected after moving an image to it.
Thanks to @chainchompa and @maryhipp for working on this major effort.
Pagination & Selection
Infinite scroll is dead, long live infinite scroll!
The gallery is now paginated. Selection logic has been updated to work with pagination. An indicator shows how many images are selected and allows you to clear the selection entirely. Arrow keys still navigate.
https://github.com/invoke-ai/InvokeAI/assets/4822129/128c998a-efac-41e5-8639-b346da78ca5b
The number of images per page is dynamically calculated as the panel is resized, ensuring the panel is always filled with images.
Boards UI Refresh
The bulky tiled boards grid has been replaced by a scrollable list. The boards list panel is now a resizable, collapsible panel.
https://github.com/invoke-ai/InvokeAI/assets/4822129/2dd7c316-36e3-4f8d-9d0c-d38d7de1d423
Boards and Image Search
Search for boards by name and images by metadata. The search term is matched against the image's metadata as a string. We landed on full-text search as a flexible yet simple implementation after considering a few methods for search.
https://github.com/invoke-ai/InvokeAI/assets/4822129/ebe2ecfe-edb4-4e09-aef8-212495b32d65
Archived Boards
Archive a board to hide it from the main boards list. This is purely an organizational enhancement. You can still interact with archived boards as you would any other board.
https://github.com/invoke-ai/InvokeAI/assets/4822129/7033b7a1-1cb7-4fa0-ae30-5e1037ba3261
Image Sorting
You can now change the sort for images to show oldest first. A switch allows starred images to be placed in the list according to their age, instead of always showing them first.
https://github.com/invoke-ai/InvokeAI/assets/4822129/f1ec68d0-3ba5-4ed0-b1e8-8e8bc9ceb957
Tiled Upscaling via MultiDiffusion
MultiDiffusion
is a fairly straightforward technique for tiled denoising. The gist is similar to other tiled upscaling methods - split the input image up in to tiles, process each independently, and stitch them back together. The main innovation for MultiDiffusion
is to do this in latent space, blending the tensors together continuously. This results in excellent consistency across the output image, with no seams.
This feature is exposed as a Tiled MultiDiffusion Denoise Latents
node, currently classified as a beta version. It works much the same as the OG Denoise Latents
node. You can find an example workflow in the workflow library's default workflows.
We are still thinking about to expose this in the linear UI. Most likely, we expose this with very minimal settings. If you want to tweak it, use the workflow.
Thanks to @RyanJDick for designing and implementing MultiDiffusion
.
How to use it
This technique is fundamentally the same as normal img2img. Appropriate use of conditioning and control will greatly improve the output. The one hard requirement is to use the Tile ControlNet model.
Besides that, here are some tips from our initial testing:
- Use a detail-adding or style LoRAs.
- Use a base model best suited for the desired output style.
- Prompts make a difference.
- The initial upscaling method makes a difference.
- Scheduler makes a difference. Some produce softer outputs.
VRAM Usage
This technique can upscale images to very large sizes without substantially increasing VRAM usage beyond what you'd see for a "normal" sized generation. The VRAM bottlenecks then become the first VAE encode (Image to Latents
) and final VAE decode (Latents to Image
) steps.
You may run into OOM errors during these steps. The solution is to enable tiling using the toggle on the Image to Latents
and Latents to Image
nodes. This allows the VAE operations to be done piecewise, similar to the tiled denoising process, without using gobs of VRAM.
There's one caveat - VAE tiling often introduces inconsistency across tiles. Textures and colors may differ from tile to tile. This is a function of diffusers
' handling of VAE tiling, not the new tiled denoising process. We are investigating ways to improve this.
Takeaway: If your GPU can handle non-tiled VAE encode and decode for a given output size, use that for best results.
Checkpoint models work without conversion to diffusers
The required conversion of checkpoint format models to diffusers
format has long been a pain point. The diffusers
library now supports loading single-file (checkpoint) models directly, and we have removed the mandatory checkpoint-to-diffusers
conversion step.
The main user-facing change is that there is no longer a conversion cache directory.
Major thanks to @lstein for getting this working.
📈 Patch Nodes for v4.2.6
Enhancements
- When downloading image metadata, graphs or workflows, the JSON file includes the image name and type of data. Thanks @jstnlowe!
- Add
clear_queue_on_startup
config setting to clear problematic queues. This is useful for a rare edge case where your queue is full of items that somehow crash the app. Set this to true, and the queue will clear before it has time to attempt to execute the problematic item. Thanks @steffy-lo! - Performance and memory efficiency improvements for LoRA patching and model offloading.
- Addition of a simplified model installation methods to the Invocation API:
download_and_cache_model
,load_local_model
andload_remote_model
. These methods allow models to be used without needing them to be added to the model manager. For example, we are now using these methods to load ESRGAN models. - Support for probing and loading SDXL VAE checkpoint.
- Updated gallery UI.
- Checkpoint models work without conversion to diffusers.
- When using a VAE in tiled mode, you may now select the tile size.
Fixes
- Fix handling handling of 0-step denoising process.
- If a control image's processed version is missing when the app loads, it is now re-processed.
- Fixed an issue where a model's size could be misreported as 0, possibly causing memory issues.
- Fixed an issue where images - especially large images - may fail to delete.
Performance improvements
- Improved LoRA patching.
- Improved RAM <-> VRAM model transfer performance.
Internal changes
- The
DenoiseLatentsInvocation
has had its internal methods split up to support tiled upscaling viaMultiDiffusion
. This included some amount of file shuffling and renaming. Theinvokeai
package's exported classes should still be the same. Please let us know if this has broken an import for you. - Internal cleanup, intending to eliminate circular import issues. There's a lot left to do for this issue, but we are making progress.
💾 Installation and Updating
To install or update to v4.2.6, download the installer and follow the installation instructions.
To update, select the same installation location. Your user data (images, models, etc) will be retained.
Missing models after updating from v3 to v4
See this FAQ.
Error during installation ModuleNotFoundError: No module named 'controlnet_aux'
See this FAQ
What's Changed
- Prefixed JSON filenames with the image UUID by @jstnlowe in https://github.com/invoke-ai/InvokeAI/pull/6486
- feat(ui): control layers internals cleanup by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6487
- LoRA patching optimization by @lstein in https://github.com/invoke-ai/InvokeAI/pull/6439
- fix(ui): re-process control image if processed image is missing on page load by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6494
- Split up latent.py (code reorganization, no functional changes) by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/6491
- Add simplified model manager install API to InvocationContext by @lstein in https://github.com/invoke-ai/InvokeAI/pull/6132
- fix: Some imports from previous PR's by @blessedcoolant in https://github.com/invoke-ai/InvokeAI/pull/6501
- Improve RAM<->VRAM memory copy performance in LoRA patching and elsewhere by @lstein in https://github.com/invoke-ai/InvokeAI/pull/6490
- Fix
DEFAULT_PRECISION
handling by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/6492 - added route to install huggingface models from model marketplace by @chainchompa in https://github.com/invoke-ai/InvokeAI/pull/6515
- Model hash validator by @brandonrising in https://github.com/invoke-ai/InvokeAI/pull/6520
- Tidy
SilenceWarnings
context manager by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/6493 - [#6333] Add clear_queue_on_startup config to clear problematic queues by @steffy-lo in https://github.com/invoke-ai/InvokeAI/pull/6502
- [MM] Add support for probing and loading SDXL VAE checkpoint files by @lstein in https://github.com/invoke-ai/InvokeAI/pull/6524
- Add
TiledMultiDiffusionDenoiseLatents
invocation (for upscaling workflows) by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/6522 - Update prevention exception message by @hipsterusername in https://github.com/invoke-ai/InvokeAI/pull/6543
- Fix handling handling of 0-step denoising process by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/6544
- chore: bump version v4.2.5 by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6547
- feat(ui): gallery pagination by @maryhipp in https://github.com/invoke-ai/InvokeAI/pull/6527
- fix(backend): mps should not use
non_blocking
by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6549 - Load single-file checkpoints directly without conversion by @lstein in https://github.com/invoke-ai/InvokeAI/pull/6510
- feat(ui, api): archive boards by @maryhipp in https://github.com/invoke-ai/InvokeAI/pull/6546
- Update controlnet starters by @hipsterusername in https://github.com/invoke-ai/InvokeAI/pull/6537
- feat(ui, api): gallery sort by @maryhipp in https://github.com/invoke-ai/InvokeAI/pull/6551
- fix(app): fix SQL query w/ enum for python 3.11 by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6557
- feat(ui, api): gallery search by @maryhipp in https://github.com/invoke-ai/InvokeAI/pull/6561
- Update README.md by @hipsterusername in https://github.com/invoke-ai/InvokeAI/pull/6519
- fix(ui): don't mess up redux actions if 403 gets thrown by @maryhipp in https://github.com/invoke-ai/InvokeAI/pull/6567
- (ui) clarify auto-add logic by @maryhipp in https://github.com/invoke-ai/InvokeAI/pull/6566
- feat(ui): gallery ux by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6568
- Make the VAE tile size configurable for tiled VAE by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/6555
- fix(ui): reset page when search term changes by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6569
- Fix access token lookup for model downloads by @lstein in https://github.com/invoke-ai/InvokeAI/pull/6570
- fix sort order by @maryhipp in https://github.com/invoke-ai/InvokeAI/pull/6573
- Update pnpm github action by @ebr in https://github.com/invoke-ai/InvokeAI/pull/6574
- [MM bugfix] Put model install errors on the event bus by @lstein in https://github.com/invoke-ai/InvokeAI/pull/6578
- Fix some models treated as having size 0 in the model cache by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/6571
- Enforce absolute imports with ruff by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/6576
- Delete unused duplicate libc_util.py file by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/6579
- Update the PR template QA instructions by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/6580
- Fix circular imports related to SCHEDULER_NAME_VALUES by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/6582
- Fixed 404 error on latest release link (line 16): by @ddm21 in https://github.com/invoke-ai/InvokeAI/pull/6583
- Demote error log to warning for models treated as having size 0 by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/6589
- Overhaul docker documentation and fix minor bugs by @ebr in https://github.com/invoke-ai/InvokeAI/pull/6540
- Boards UI update and add support for private boards by @chainchompa in https://github.com/invoke-ai/InvokeAI/pull/6588
- More Styling Updates for Boards and Gallery UI by @chainchompa in https://github.com/invoke-ai/InvokeAI/pull/6592
- chore: bump version to 4.2.6a1 by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6595
- ui: translations update from weblate by @weblate in https://github.com/invoke-ai/InvokeAI/pull/6498
- Do not crash if there are invalid model configs in the DB by @RyanJDick in https://github.com/invoke-ai/InvokeAI/pull/6593
- fix(ui): gallery followups by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6601
- fix(app): vae tile size field description by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6600
- ui: translations update from weblate by @weblate in https://github.com/invoke-ai/InvokeAI/pull/6604
- fix(api): delete image race condition by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6607
- chore: bump version to 4.2.6rc1 by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6608
- fix(ui): clear selection when deleting last image in board by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6612
- ui: translations update from weblate by @weblate in https://github.com/invoke-ai/InvokeAI/pull/6616
- chore: update default workflows by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6621
- fix(ui): boards cut off when search open by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6619
- chore: bump version to v4.2.6 by @psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/6620
New Contributors
- @jstnlowe made their first contribution in https://github.com/invoke-ai/InvokeAI/pull/6486
- @ddm21 made their first contribution in https://github.com/invoke-ai/InvokeAI/pull/6583
Full Changelog: https://github.com/invoke-ai/InvokeAI/compare/v4.2.4...v4.2.6
1、 InvokeAI-4.2.6-py3-none-any.whl 2.13MB
2、 InvokeAI-4.2.6.tar.gz 1.97MB
3、 InvokeAI-installer-v4.2.6.zip 16.44KB