This minor release includes a handful of fixes and enhancements.
Support for multiple reference images for FLUX Kontext
You may now use multiple ref images when using FLUX Kontext on the Generate, Canvas and Workflows tabs.
On the Generate and Canvas tabs, the images are concatenated in image-space before being encoded.
This is done using the new Flux Kontext Image Prep
node, which you can use in Workflows. Use it to resize an image to one of Kontext's preferred sizes. If multiple images are added to its collection, they are concatenated horizontally. Pass the output of this node into a single Kontext Conditioning
node, and then pass its output into the Denoise node.
If, for some reason, you want to use latent-space concatenation, you can do it like this:
- Add a
Flux Kontext Image Prep
for each image- Pass each of those to its own
Kontext Conditioning
- Collect the
Kontext Conditioning
nodes- Pass the output collection to the Denoise node
The images will be concatenated in latent-space by the Denoise node. It will not resize the images to Kontext preferred dimensions. For best results, use the
Flux Kontext Image Prep
node, as described above, to prep your ref images.
Studio state is stored in the database
Studio state includes all generation settings, Canvas layers, Workflow editor state - in other words, everything that you lose when you click Reset Web UI
. Studio state does not include models, images, boards, saved workflows, etc.
Previously, this data was stored in the web browser or Launcher's built-in UI. In v6.3.0, it is stored in the database, allowing your Studio state to follow you across browsers and devices.
For example, let's say you were working in Canvas from the Launcher's UI. You need to switch computers, so you enable Server Mode in the launcher and open Invoke on the other computer.
Previously, your Studio would load up with default settings on the other computer. In v6.3.0, you will instead pick up right where you left off on the first computer.
On the first launch of Invoke after updating to v6.3.0, we will migrate Studio state stored in the browser to the database, so you shouldn't lose anything.
Added setting to disable picklescan
Invoke uses picklescan
to scan certain unsafe model types for malware during installation and loading.
Sometimes, picklescan
is unable to scan models because their internal structure is broken. It is possible that these unscannable models will still work fine, and have no malware, but until now, there was no way to tell Invoke to ignore detections or scan errors.
You may now dangerously, unsafely opt-out of model scanning by adding this line to your invokeai.yaml
config file:
# 😱 scary!
unsafe_disable_picklescan: true
We strongly suggest you do not disable picklescan
. Disable it at your own risk.
Enhancements
- Support for multiple reference images for FLUX Kontext on Generate, Canvas and Workflows tabs. Ref images are concatenated in image space.
- New
Flux Kontext Image Prep
node. Use it to resize an image to one of Kontext's preferred sizes. If multiple images are added to its collection, they are concatenated horizontally. - When Snap to Grid on Canvas is disabled, hold Ctrl/Cmd to temporarily enable course snapping. Hold Ctrl/Cmd+Shift to temporarily enable fine snapping. Thanks @Ar7ific1al !
- Update styling and layout for image comparison.
- Added visual indicator on node fields when they are added to the form. The field names are in blue with a small link icon.
- Added setting to disable
picklescan
. - Added FLUX.1 Krea dev to starter models (full-fat and quantized).
- Added a not-broken anime upscaler model to starter models.
- Studio state is stored on the server.
- Add hotkey
shift+n
to fit bbox to layers. It does the same thing as the button in the Canvas toolbar. - Add a button to the ref image display to use that image's size for generation. This is useful for FLUX Kontext, where you often want to generate at the same/similar size as a reference image.
- Updated translations. Thanks @Harvester62 @Linos1391 !
Fixes
- Fix issue where model filenames with periods were not handled correctly.
- This fixes the error
DuplicateModelException: A model with path 'flux/main/FLUX.safetensors' is already installed
.
- This fixes the error
- Fix issue where model installation required 2x the disk space the model actually needed. We now move - not copy - from download temp dir to final destination.
- Metadata not recorded for API model generations.
- Queue count badge not hidden when left panel is collapsed.
- Fix an issue where canceling a queue item didn't clear its progress image.
- Fix an issue where viewer could briefly show the last-selected image between the last progress image being received, and its output image rendering.
- Add handling for a rare race condition where we get socket events for a queue item after it has completed.
- Add handling for a common race condition where queue status network requests complete after queue events optimistically update the counts, often resulting in a the little yellow queue count badge being incorrect.
- Fix an issue where intermediate images could trigger changes to gallery view.
- Progress image not hiding when a generation fails or is canceled, when gallery auto-switch is disabled.
- Awkward flash of incorrectly-sized image when starting image comparison.
- Fix an issue where gallery auto-scroll could not work during an image loading race condition.
- Prevent creating a new canvas while staging, which could bork your existing canvas session.
- Fix an issue where the
Reset Canvas Layers
button also reset the bbox. - Hide
Reset Canvas Layers
button when not on the canvas. - Fix visual overflow with very long board names.
Internal/Dev
- UI logging now includes the source code filename of the logger, making troubleshooting much easier for UI bugs.
- All redux state is modeled with zod schemas. Rehydrated state is validated against the schemas before it makes it into the browser, preventing some (very rare) errors.
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.
What's Changed
- chore: prep for v6.2.0 by @psychedelicious in #8334
- feat: server-side client state persistence by @psychedelicious in #8314
- build(ui): add vite plugin to add relative file path to logger context by @psychedelicious in #8344
- fix(ui): progress tracking fixes by @psychedelicious in #8345
- fix(ui): connect metadata to output node for ext api nodes by @psychedelicious in #8348
- fix(ui): queue count badge renders when left panel collapsed by @psychedelicious in #8350
- fix(ui): progress image does not hide on viewer with autoswitch disabled by @psychedelicious in #8349
- fix(app): handle model files with periods in their name by @psychedelicious in #8352
- fix(app): move (not copy) models from install tmpdir to destination by @psychedelicious in #8351
- build(ui): export loading component by @psychedelicious in #8356
- fix(ui): gallery slice rehydration error by @psychedelicious in #8354
- fix(docker) rocm 6.3 based image by @heathen711 in #8152
- feat: client state persistence updates by @psychedelicious in #8355
- Add temporary snapping while Snap to Grid is off by holding CTRL for 64px snap or CTRL+SHIFT for 8px snap by @Ar7ific1al in #8357
- feat: support multiple ref images for flux kontext by @psychedelicious in #8359
- feat(ui): zhoosh image comparison ui by @psychedelicious in #8364
- feat(ui): add visual indicator when input field is added to form by @psychedelicious in #8365
- refactor: client state again by @psychedelicious in #8363
- ui: translations update from weblate by @weblate in #8362
- feat(ui): add migration path for client state from IndexedDB to server-backed storage by @psychedelicious in #8366
- chore: prep for v6.3.0rc1 by @psychedelicious in #8367
- fix(ui): add image name data attr to gallery placeholder image elements by @psychedelicious in #8369
- feat(ui): add missing translations by @psychedelicious in #8371
- feat(ui): support disabling roarr output styling via localstorage by @psychedelicious in #8370
- flux kontext multi-ref image improvements by @psychedelicious in #8386
- chore: bump version to v6.3.0rc2 by @psychedelicious in #8387
- multi-ref image support for flux kontext API by @maryhipp in #8389
- fix graph building for flux kontext API multi-image prep by @maryhipp in #8390
- feat(app): add setting to disable picklescan by @psychedelicious in #8396
- feat(ui): prevent creating new canvas when staging by @psychedelicious in #8394
- fix(ui): reset session button actions by @psychedelicious in #8393
- ui: translations update from weblate by @weblate in #8368
- fix(ui): overflow w/ long board names by @psychedelicious in #8392
- Add reset bbox to canvas hotkey by @hipsterusername in #8388
- feat(mm): change anime upscaling model to one that doesn't trigger picklescan by @psychedelicious in #8395
- feat(ui): add button to ref image to recall size & optimize for model by @psychedelicious in #8391
Full Changelog: v6.2.0...v6.3.0