This release focuses on internal improvements with a few enhancements and fixes, including support for CogView4, a permissively-licensed model that is pretty close to FLUX in terms of quality.
🚨 Achtung! 🚨
When you install this release for the first time, your Form Builder will be reset, losing unsaved changes. Please save your current workflow before updating, then re-load it afterwards.
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.
We've tested across Windows, macOS and Linux, but it's possible that there are some compatibility issues. Please let us know if something doesn't work on v5.10.0rc1 that did work on v5.9.1.
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!
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.
Internal
- Support for python 3.12.
- 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
- refactor(nodes): invocation registration logic by @psychedelicious in #7826
- fix(ui): GET presigned URLs directly instead of trying to use redirects by @maryhipp in #7866
- Port LoRA to new classification API by @jazzhaiku in #7849
- Change
timm
andcontrolnet-aux
pins to fix LLaVA model support by @ebr in #7846 - fix(ui): error loading workflows by @psychedelicious in #7870
- fix(ui): do not switch between images when focused on a tab element by @psychedelicious in #7865
- ui: translations update from weblate by @weblate in #7841
- feat: workflow publishing ui by @psychedelicious in #7871
- gh: update codeowners by @psychedelicious in #7878
- feat: workflow publish followups by @psychedelicious in #7876
- Update manual.md by @chantellmocha in #7874
- chore: support python 3.12, torch 2.6.0, clean up build/deps by @psychedelicious in #7873
- fix(ui): fix badge for validation run by @maryhipp in #7882
- Fix docker build and re-add missing dependency by @ebr in #7884
- feat(app): restore "Using torch device" message on startup by @psychedelicious in #7888
- docs: remove legacy scripts refs by @psychedelicious in #7889
- feat(mm): support size calculation for onnx models by @psychedelicious in #7880
- refactor(ui): workflow unsaved changes/published state tracking by @psychedelicious in #7891
- (ui): more publishing follow-ups by @maryhipp in #7895
- refactor(ui): merge nodes & workflow slices by @psychedelicious in #7892
- fix(ui): normalize alpha value to 0-1 when picking color on canvas by @psychedelicious in #7896
- Update flux_redux.py with downsampling and weight options by @skunkworxdark in #7875
- chore: prep for v5.10.0a1 by @psychedelicious in #7898
- ui: translations update from weblate by @weblate in #7879
- feat(ui): save canvas/bbox to gallery saves basic metadata by @psychedelicious in #7900
- feat(ui): safer use of drawImage by @psychedelicious in #7902
- fix(ui): canvas dnd drop indicator color by @psychedelicious in #7903
- feat(ui): allow send-image-to-canvas to work when canvas is uninitialized by @psychedelicious in #7905
- feat: display model storage size by @keturn in #7877
- Add CogView4 model support by @RyanJDick in #7770
- ci: add check for
uv
lockfile consistency withpyproject.toml
by @psychedelicious in #7912 - feat: publish misc by @psychedelicious in #7907
- Add uv lock check to git pre-commit by @ebr in #7916
- fix(ui): increase padding when fitting layers to stage by @psychedelicious in #7913
- Update metadata_linked.py with conversion to primitive collections. by @skunkworxdark in #7915
- chore: prep for v5.10.0rc1 by @psychedelicious in #7917
New Contributors
- @chantellmocha made their first contribution in #7874
Full Changelog: v5.9.1...v5.10.0rc1