Releases: invoke-ai/InvokeAI
v5.0.1
This minor release includes support for Kohya FLUX LoRAs and a handful of fixes and enhancements.
Be sure to review the v5 release notes if you haven't already upgraded to v5.
Enhancements
- Support for Kohya FLUX LoRAs with
lora_te1
layers (i.e. CLIP LoRA layers) - Default scheduler is now dpmpp_3m_k
- First round of v5 translations @Harvester62 @Vasyanator @Atalanttore @Ery4z @rikublock
- Improved FLUX img2img/inpainting
- ❗ This is a breaking change. The
trajectory_guidance_strength
field onFluxDenoiseInvocation
was removed in favor of a simpler solution that doesn't need the extra field. More details in #6938.
- ❗ This is a breaking change. The
- Revised hotkeys focus tracking
- Recall hotkeys work when viewer is closed and gallery is open
- Added
enter
andesc
hotkeys to apply and cancel filters and transforms - Model default settings support for FLUX guidance parameter
Fixes
- Hide brush preview while staging
- Prevent error toasts from being so large they cannot be closed
- UI crash with
TypeError: i.map is not a function
- Canvas erroneously interactable after refresh while staging
Internal
- More efficient image selection handling
- More efficient newly-generated image handling
- Revised resizable panels logic
Installation and Updating
To install or update to v5.0.1, download the installer and follow the installation instructions
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- fix(ui): reduce extraneous image selection by @psychedelicious in #6930
- feat(ui): cleanup resizable panels by @psychedelicious in #6932
- fix(ui): incorrect translations for flux bbox constraints by @psychedelicious in #6933
- fix,feat: canvas followups 18 by @psychedelicious in #6941
- fix(ui): restore send-to functionality by @maryhipp in #6937
- update default scheduler to dpmpp_3m_k by @maryhipp in #6943
- fix workflow tab translations by @maryhipp in #6944
- fix(ui): gallery nav hotkeys not working by @psychedelicious in #6949
- fix(ui): handle resizable panels not rendered in DOM by @psychedelicious in #6948
- fix(ui): truncate error description so toast is always close-able by @maryhipp in #6946
- fix(ui): new image selection logic by @psychedelicious in #6951
- ui: translations update from weblate by @weblate in #6818
- fix(ui): resizable panels collapsed on first app startup by @psychedelicious in #6953
- fix(ui): canvas interactable after refresh while staging by @psychedelicious in #6956
- Further improvements to FLUX image-to-image by @RyanJDick in #6938
- (ui): add button to learn more about supported models by @maryhipp in #6958
- fix(api): UI crash with
TypeError: i.map is not a function
by @psychedelicious in #6985 - Support FLUX LoRA models in kohya format with
lora_te1
layers (i.e. CLIP LoRA layers) by @RyanJDick in #6967 - refactor(ui): hotkey/focus handling by @psychedelicious in #6987
- ui: translations update from weblate by @weblate in #6963
- chore: bump version to v5.0.1 by @psychedelicious in #6993
- Update communityNodes.md add OBP by @AIrjen in #6990
- feat(ui,api): add guidance as a default setting option for FLUX models by @maryhipp in #6959
New Contributors
Full Changelog: v5.0.0...v5.0.1
v5.0.0
Invoke 5.0 Release: Our Biggest Update Yet — A new canvas with Layer & Flux support
Today, we're thrilled to launch the most significant update to Invoke this year: Invoke 5.0. This release introduces Control Canvas, a new tool to generate, iterate, and refine images with unprecedented control and flexibility. We’re also announcing integration with the hugely popular Flux models.
You may notice that some things have moved around. We’ve created a few resources for you to get to know the new Control Canvas and everything new in Invoke 5.0:
- (8 minutes) A short overview of how to complete common tasks in the new Control Canvas
- (23 minutes) A longer workflow demonstration of what is possible in the New Control Canvas and Invoke 5.0
- (~25 minutes) A self-guided tutorial playlist for Getting Started in Invoke
Control Canvas
Building on our Unified Canvas, the new Control Canvas integrates generation, iteration, and refinement into a single workspace. Highlights include:
- Raster Layers: Easily draw, paint, and manipulate shapes or guides that can be moved and resized independently, giving you more flexibility in editing.
- Editable Control Layers: Directly edit Control Layers (e.g., ControlNets) on the canvas, offering precise control over generation tasks without needing to re-upload images.
- Canvas Layer Recall: Save and recall the canvas state of your creation, ensuring that works can be regenerated and saved with the proper metadata.
Flux.1 Model Integration
We’ve partnered with Black Forest Labs to integrate the highly popular Flux.1 models into Invoke. You can now:
- Use Flux’s schnell model for commercial or non-commercial projects and dev models for non-commercial projects in your studio.
- Generate with text-to-image, image-to-image, inpainting, and LoRA support, with more features coming soon.
If you are looking to use Flux [dev] for commercial purposes, you’ll need to obtain a commercial license from Black Forest Labs. This is included as an add-on option in our Professional Edition. If you are interested in learning more, you can get in touch with us.
- Note: Flux Model support is currently only available for local inference on Windows and Linux systems.
Installation and Updating
To install or update to v5.0.0, download the installer and follow the installation instructions
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- feat: canvas v2 by @psychedelicious in #6771
- feat, fix: canvas v2 followups 1 by @psychedelicious in #6819
- fix, feat: canvas followups 2 by @psychedelicious in #6821
- fix,feat: canvas followups 3 by @psychedelicious in #6824
- fix,feat: canvas followups 4 by @psychedelicious in #6826
- chore: 5.0.0.a1 version bump by @brandonrising in #6827
- feat,fix,chore: canvas followups 5, release v5.0.0.a2 by @psychedelicious in #6832
- fix,feat: canvas followups 6 by @psychedelicious in #6834
- feat(nodes): migrate cnet nodes away from
controlnet_aux
by @psychedelicious in #6831 - chore: release v5.0.0.a3 by @psychedelicious in #6838
- feat(ui): viewer UX by @psychedelicious in #6842
- chore: release v5.0.0.a4 by @psychedelicious in #6843
- Split LoRA layer implementations into separate files. by @RyanJDick in #6845
- fix(ui): spandrel filter by @psychedelicious in #6844
- chore: release v5.0.0.a5 by @psychedelicious in #6850
- fix,feat: canvas followups 7 by @psychedelicious in #6849
- Invert the expected
denoise_mask
parameter to the FLUX Denoise node by @RyanJDick in #6853 - fix,feat: canvas followups 8 by @psychedelicious in #6858
- chore: v5.0.0.a6 by @psychedelicious in #6859
- fix,feat: canvas followups 9 by @psychedelicious in #6860
- chore: v5.0.0.a7 by @psychedelicious in #6861
- fix(ui): remove accidentally added staging button by @psychedelicious in #6862
- fix(ui): map order of layer types to the menu order by @maryhipp in #6863
- feat(ui): change upscaling icon by @psychedelicious in #6867
- fix(ui): restore Settings Modal functionality to render using children by @maryhipp in #6864
- fix(nodes): add thresholding to lineart & lineart anime nodes by @psychedelicious in #6869
- fix(worker): fix progress image for FLUX inpainting by @maryhipp in #6868
- feat(ui): FLUX in linear UI by @maryhipp in #6846
- fix(ui): canvas followups 10 by @psychedelicious in #6872
- feat(ui): update image usage check for canvas v2 layers and upscaling by @maryhipp in #6874
- feat(ui): copy layers to clipboard and save layers as assets by @maryhipp in #6875
- fix: staging status & queue insanity by @psychedelicious in #6871
- export hotkeys modal by @maryhipp in #6879
- FLUX LoRA Support by @RyanJDick in #6847
- fix,feat: canvas followups 11 by @psychedelicious in #6878
- chore: v5.0.0.a8 by @psychedelicious in #6882
- Fix typos by @omahs in #6877
- fix,feat: canvas followups 12 by @psychedelicious in #6884
- fix(ui): update studio destinations by @maryhipp in #6880
- feat(ui, worker): FLUX LoRAs in linear UI by @maryhipp in #6886
- fix(ui): revert change to grid calc algorithm by @maryhipp in #6887
- fix(ui): gallery grid calculation by @psychedelicious in #6889
- feat(ui): "What's New" in side nav with indicator badge by @maryhipp in #6888
- fix,feat: canvas followups 13 by @psychedelicious in #6893
- UI fixes followup by @blessedcoolant in #6895
- fix(ui): set crossOrigin on every image load by @psychedelicious in #6891
- feat(ui): new user experience by @maryhipp in #6892
- feat(ui): canvas error handling by @psychedelicious in #6896
- fix(ui): bbox stuff by @psychedelicious in #6897
- feat: canvas node cleanup by @psychedelicious in #6898
- Fix flaky FLUX LoRA unit test by @RyanJDick in #6899
- fix(ui): align project name with gallery header by @maryhipp in #6901
- tweak(ui): open notification by default, get rid of indicator by @maryhipp in #6903
- fix(ui): track whether studio destination hook fn has already fired by @maryhipp in #6904
- feat(ui): adds notice for FLUX dev's commercial license by @maryhipp in #6902
- Improve FLUX image-to-image (Trajectory Guidance) by @RyanJDick in #6900
- chore: update version for 5.0.0.rc1 by @brandonrising in #6905
- docs: cleanup by @psychedelicious in #6913
- fix, feat: canvas followups 14 by @psychedelicious in #6914
- feat: generic progress events by @psychedelicious in #6908
- (fix) fixed bbox size reset to optimals on 'Use All' (Asterisk) button press by @FloeHetling in #6915
- fix(ui): mark optimized inpainting as beta by @maryhipp in #6917
- fix, feat: canvas followups 15 by @psychedelicious in https://github.com/invoke-ai...
v5.0.0.rc2
Invoke 5.0
Invoke 5.0 is a major change in the user experience of utilizing Invoke. It's been through multiple rounds of alpha testing, and the experience has evolved into a very significant enhancement for many creatives using the tool. We hope this video will help everyone smoothly transition to the new UI.
Canvas v2
The Generation & Canvas UIs have been merged into a unified experience as part of our Control Canvas release. This enhances the interaction between all your favorite features for a more intuitive and efficient workflow. Highlighted below are the key improvements and new additions that bring this experience to life.
Control Canvas
To orient existing users, you’ll find that the core generation experience is now optimized and geared towards maximizing control. There are two main workflows that users have primarily geared towards in the past:
- Batch Generation: Generating a large number of images/iterations into the Gallery by varying/tweaking different settings.
- Composition: Working continuously on a single composition, with multiple iterations and edits.
Both of these workflows have increasingly gravitated towards a canvas for control mechanisms like ControlNet, Initial Image, and more. Now, with the power of our Control Canvas, including a full layer system, you’ll be able to use the same Canvas controls in both of these workflows.
The destination of your generations can be set at the top of your Layers & Gallery tab, with Gallery generations saving a new copy of the image to your gallery with each generation, and Canvas generations creating a new Raster layer in the bounding box on the canvas.
This is one of the big changes with v5.0, and a major point we’re looking for feedback on during alpha testing. We ask that you try to approach it with an open mind, and highlight areas where you find sustained friction, as opposed to just managing the initial shock and adjustment of change.
Layers
Carrying forward from the Control Layers release, the full suite of controls is now available on the Canvas, with some notable enhancements.
Layer Types
Each control layer on the canvas is now manageable as a moveable and editable layer. You can create multiple layers, manipulate and transform them, and compose the full set of generational controls before generating your invocation.
The naming of these layers is likely to change. A full write-up of the layers will be as we work towards a stable release.
Control Editing
When using ControlNet models, the control image can now be manipulated as a layer. Instead of managing processors just for ControlNets, any layer can now have a processors applied as Filters. Unless your control layer is a pre-processed image, remember to apply the appropriate filter before generation.
One notable benefit of this approach is that creators are now able to draw and manipulate the control images directly. While tablet support is currently limited, we intend to expand that along with some additional pressure sensitivity/brushing options to streamline that part of leveraging the tool. In the meantime, use a white brush and eraser to draw and edit your control images.
Flux
We're excited to announce expanded Flux integration within the InvokeAI ecosystem. In this release, you can now leverage Flux models directly on the canvas to simplify many of your standard tasks. With Flux models, you will now be able to use Inpainting, Raster Layers, and Loras, with many more features on the way!
We're also beta testing our Optimized Inpainting mode for Flux. You'll see Flux operate with a different image to image functionality than base Flux normally runs inference. This will change significantly as we tune the inpainting feature for continually optimizing the flexibility in denoising control. Please test it out and give us feedback.
Other Updates
We'd be here all day if we were to call out every individual change, so we'll hit the highlights and expand on each point as we get closer to the stable release.
- Layer Types - Inpaint Mask, Regional Guidance, Raster Layer, Control Layer:
- Inpaint Mask and Raster Layer map to the Canvas v1 Inpaint Mask and Base Layer.
- Regional Guidance works the same as it does in the current Control Layers canvas.
- Control Layer (name TBD) is a Raster Layer with a ControlNet stapled on. You can convert a Raster Layer into a Control Layers and back again.
- Layer Compositing During Generation: You may have multiple Inpaint Masks and Raster Layers, but internally, generation still needs a single input image and mask. We handle this by virtually flattening all enabled Inpaint Masks into a single mask image, and all enabled Raster Layers into a single input image. This does not affect your layers setup - it happens behind the scenes.
- Control Layer Auto-Background: When a Control Layer has some transparency, we automatically give it a black background. This means you can create a Control Layer, select a white brush and go to town with a scribble. We'll add a black background automatically, as most ControlNet models require. This allows you to stack multiple Control Layers, even if they are of difference sizes, without artifacts at their edges.
- Layer Type Hiding: When you have even just one of each layer type, the canvas gets pretty hectic. Each layer type has a Hide toggle, which only hides the layers visually. For example, you can hide your Control Layers while you edit a Raster Layer for a cleaner-looking canvas. Hidden layers are still used during generation.
- Layer Transformation: All layer types may be moved, resized and rotated.
- Layer Filtering: Raster Layers and Control Layers may be have filters applied. You can apply as many filters as you want.
- Other Layer Operations: Duplicate, lock, disable, hide all of type, arrange. Merge visible for Raster Layers and Inpaint Masks.
- Layer Quick Switch: Press
q
to switch between the last two selected layers. Bookmark a layer to instead switch between the bookmarked layer and the last selected non-bookmarked layer. - New Rendering Engine: The canvas rendering engine is a ground-up rewrite, based on
konvajs
. - Canvas Caching: Extensive use of caching greatly improves efficiency. For example, on Canvas v1, if you click Invoke twice without changing anything else, we would export and upload the canvas image data twice. On Canvas v2, that export is cached and reused.
- Color Picker Quick Switch: Hold
alt
to temporarily switch to the color picker. - Revised Graph Builders: Curious nodeologists might find the updated graphs interesting. You can take a peek by setting Send to Gallery, generate, and load up the output image's workflow.
Updates since rc1
Fixes
- Fix: Transform UI translations
- Fix: Last staged/progress image flashes when accepting staged image
- Fix: Lag when discarding staging area entirely
- Fix: Hide tool preview (e.g. the brush preview) while filtering
- Fix: Bbox not centered on first app startup (janky fix but it works for now...)
Enhancements
- Feat: Add fit bbox to canvas hotkey
- Feat: Add color swatches to mask fill color picker
- Feat: Handle FLUX bbox constraints
- Feat: On accept staging area image, if a raster layer is selected, switch to the new raster layer, else do not switch selected layer
- Feat: Improve layout of canvas toolbar view buttons
- Feat: Rework isolated preview logic - now split into isolated staging preview, isolated filtering preview, isolated transforming preview - add toggles on canvas settings popover & filter/transform popups
- Feat: Reworked models loaded listener, fixes bug where incorrect model type cold be selected for upscaling model
- Feat: Canvas send-to alerts are not dismissable
Tidy
- Tidy: Remove useless use size button on IP adapter images
- Tidy: Mark core metadata node internal
Internal
- Internal: Split up staging area toolbar components
Installation and Updating
To install or update to v5.0.0.rc2, download the installer and follow the installation instructions
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- docs: cleanup by @psychedelicious in #6913
- fix, feat: canvas followups 14 by @psychedelicious in #6914
- feat: generic progress events by @psychedelicious in #6908
- (fix) fixed bbox size reset to optimals on 'Use All' (Asterisk) button press by @FloeHetling in #6915
- fix(ui): mark optimized inpainting as beta by @maryhipp in #6917
- fix, feat: canvas followups 15 by @psychedelicious in #6919
- update links by @maryhipp in #6918
- change order of infill methods by @maryhipp in #6920
- chore: 5.0.0.rc2 version bump by @brandonrising in #6921
- Maryhipp/release notes link by @maryhipp in #6922
- fix(ui): race condition when filtering causing errors/stuck filter by @psychedelicious in #6923
- fix(ui): prefer 'lama' infill when handling infill fallback b...
v5.0.0.rc1
Invoke 5.0
Invoke 5.0 is a major change in the user experience of utilizing Invoke. It's been through multiple rounds of alpha testing, and the experience has evolved into a very significant enhancement for many creatives using the tool. We hope this video will help everyone smoothly transition to the new UI.
Canvas v2
The Generation & Canvas UIs have been merged into a unified experience as part of our Control Canvas release. This enhances the interaction between all your favorite features for a more intuitive and efficient workflow. Highlighted below are the key improvements and new additions that bring this experience to life.
Control Canvas
To orient existing users, you’ll find that the core generation experience is now optimized and geared towards maximizing control. There are two main workflows that users have primarily geared towards in the past:
- Batch Generation: Generating a large number of images/iterations into the Gallery by varying/tweaking different settings.
- Composition: Working continuously on a single composition, with multiple iterations and edits.
Both of these workflows have increasingly gravitated towards a canvas for control mechanisms like ControlNet, Initial Image, and more. Now, with the power of our Control Canvas, including a full layer system, you’ll be able to use the same Canvas controls in both of these workflows.
The destination of your generations can be set at the top of your Layers & Gallery tab, with Gallery generations saving a new copy of the image to your gallery with each generation, and Canvas generations creating a new Raster layer in the bounding box on the canvas.
This is one of the big changes with v5.0, and a major point we’re looking for feedback on during alpha testing. We ask that you try to approach it with an open mind, and highlight areas where you find sustained friction, as opposed to just managing the initial shock and adjustment of change.
Layers
Carrying forward from the Control Layers release, the full suite of controls is now available on the Canvas, with some notable enhancements.
Layer Types
Each control layer on the canvas is now manageable as a moveable and editable layer. You can create multiple layers, manipulate and transform them, and compose the full set of generational controls before generating your invocation.
The naming of these layers is likely to change. A full write-up of the layers will be as we work towards a stable release.
Control Editing
When using ControlNet models, the control image can now be manipulated as a layer. Instead of managing processors just for ControlNets, any layer can now have a processors applied as Filters. Unless your control layer is a pre-processed image, remember to apply the appropriate filter before generation.
One notable benefit of this approach is that creators are now able to draw and manipulate the control images directly. While tablet support is currently limited, we intend to expand that along with some additional pressure sensitivity/brushing options to streamline that part of leveraging the tool. In the meantime, use a white brush and eraser to draw and edit your control images.
Flux
We're excited to announce expanded Flux integration within the InvokeAI ecosystem. In this release, you can now leverage Flux models directly on the canvas to simplify many of your standard tasks. With Flux models, you will now be able to use Inpainting, Raster Layers, and Loras, with many more features on the way!
We're also beta testing our Optimized Inpainting mode for Flux. You'll see Flux operate with a different image to image functionality than base Flux normally runs inference. This will change significantly as we tune the inpainting feature for continually optimizing the flexibility in denoising control. Please test it out and give us feedback.
Other Updates
We'd be here all day if we were to call out every individual change, so we'll hit the highlights and expand on each point as we get closer to the stable release.
- Layer Types - Inpaint Mask, Regional Guidance, Raster Layer, Control Layer:
- Inpaint Mask and Raster Layer map to the Canvas v1 Inpaint Mask and Base Layer.
- Regional Guidance works the same as it does in the current Control Layers canvas.
- Control Layer (name TBD) is a Raster Layer with a ControlNet stapled on. You can convert a Raster Layer into a Control Layers and back again.
- Layer Compositing During Generation: You may have multiple Inpaint Masks and Raster Layers, but internally, generation still needs a single input image and mask. We handle this by virtually flattening all enabled Inpaint Masks into a single mask image, and all enabled Raster Layers into a single input image. This does not affect your layers setup - it happens behind the scenes.
- Control Layer Auto-Background: When a Control Layer has some transparency, we automatically give it a black background. This means you can create a Control Layer, select a white brush and go to town with a scribble. We'll add a black background automatically, as most ControlNet models require. This allows you to stack multiple Control Layers, even if they are of difference sizes, without artifacts at their edges.
- Layer Type Hiding: When you have even just one of each layer type, the canvas gets pretty hectic. Each layer type has a Hide toggle, which only hides the layers visually. For example, you can hide your Control Layers while you edit a Raster Layer for a cleaner-looking canvas. Hidden layers are still used during generation.
- Layer Transformation: All layer types may be moved, resized and rotated.
- Layer Filtering: Raster Layers and Control Layers may be have filters applied. You can apply as many filters as you want.
- Other Layer Operations: Duplicate, lock, disable, hide all of type, arrange. Merge visible for Raster Layers and Inpaint Masks.
- Layer Quick Switch: Press
q
to switch between the last two selected layers. Bookmark a layer to instead switch between the bookmarked layer and the last selected non-bookmarked layer. - New Rendering Engine: The canvas rendering engine is a ground-up rewrite, based on
konvajs
. - Canvas Caching: Extensive use of caching greatly improves efficiency. For example, on Canvas v1, if you click Invoke twice without changing anything else, we would export and upload the canvas image data twice. On Canvas v2, that export is cached and reused.
- Color Picker Quick Switch: Hold
alt
to temporarily switch to the color picker. - Revised Graph Builders: Curious nodeologists might find the updated graphs interesting. You can take a peek by setting Send to Gallery, generate, and load up the output image's workflow.
Installation and Updating
To install or update to v5.0.0.rc1, download the installer and follow the installation instructions
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- Fix typos by @omahs in #6877
- fix,feat: canvas followups 12 by @psychedelicious in #6884
- fix(ui): update studio destinations by @maryhipp in #6880
- feat(ui, worker): FLUX LoRAs in linear UI by @maryhipp in #6886
- fix(ui): revert change to grid calc algorithm by @maryhipp in #6887
- fix(ui): gallery grid calculation by @psychedelicious in #6889
- feat(ui): "What's New" in side nav with indicator badge by @maryhipp in #6888
- fix,feat: canvas followups 13 by @psychedelicious in #6893
- UI fixes followup by @blessedcoolant in #6895
- fix(ui): set crossOrigin on every image load by @psychedelicious in #6891
- feat(ui): new user experience by @maryhipp in #6892
- feat(ui): canvas error handling by @psychedelicious in #6896
- fix(ui): bbox stuff by @psychedelicious in #6897
- feat: canvas node cleanup by @psychedelicious in #6898
- Fix flaky FLUX LoRA unit test by @RyanJDick in #6899
- fix(ui): align project name with gallery header by @maryhipp in #6901
- tweak(ui): open notification by default, get rid of indicator by @maryhipp in #6903
- fix(ui): track whether studio destination hook fn has already fired by @maryhipp in #6904
- feat(ui): adds notice for FLUX dev's commercial license by @maryhipp in #6902
- Improve FLUX image-to-image (Trajectory Guidance) by @RyanJDick in #6900
- chore: update version for 5.0.0.rc1 by @brandonrising in #6905
New Contributors
Full Changelog: v5.0.0.a8...v5.0.0.rc1
v5.0.0.a8
This is an alpha release. Features in this version are still under active development and may not be stable.
Your feedback is particularly important for this release, which makes big changes.
Changes since Alpha 7
Fixes
- Fix: Ordering of layers in menu.
- Fix: Add thresholding to lineart & lineart anime filter nodes. These nodes tend to output edge maps with not-quite-black backgrounds. SD1.5 controlnets are OK with this, but SDXL controlnets are not. The thresholding ensures the edge map outputs of the nodes have a pure black background, preventing artifacts when editing Control Layers on canvas.
- Fix: FLUX progress image now shows only changing area during inpainting.
- Fix: Jank when resetting mask during drawing.
- Fix: Edge cases with staging and queue status/counts
- Fix: Hide the scaled bbox from HUD when scaling is disabled
- Fix: Tiny artifacts related to scaling in canvas (does not affect generation, but its ugly)
- Fix: Duplicate
alt+a
hotkey - Fix: Disallow creating new layers while staging
- Fix: Handle deleting control layers when deleting image
- Fix: Delete hotkey not working as expected
Enhancements
- Feat: Initial FLUX LoRA support. Thanks @RyanJDick !
- Feat: Initial FLUX support in linear UI. Thanks @maryhipp !
- Feat: Updated icons.
- Feat: Reset canvas when deleting images used on canvas.
- Feat: Copy layer to clipboard.
- Feat: Save layer to assets.
- Feat: Reworked queue controls (invoke button area), restoring the menu.
- Feat: Only show raster layers while staging (configurable in settings).
- Feat: Updated hotkey list & internal hotkey implementation.
Internal
- Internal: React error w/ canvas drop zone targets.
- Internal: Use zod schema to model canvas state, so that if we load full state from an external source we can be confident it is in the right format.
Canvas v2
The Generation & Canvas UIs have been merged into a unified experience as part of our Control Canvas release. This enhances the interaction between all your favorite features for a more intuitive and efficient workflow. Highlighted below are the key improvements and new additions that bring this experience to life.
Control Canvas
To orient existing users, you’ll find that the core generation experience is now optimized and geared towards maximizing control. There are two main workflows that users have primarily geared towards in the past:
- Batch Generation: Generating a large number of images/iterations into the Gallery by varying/tweaking different settings.
- Composition: Working continuously on a single composition, with multiple iterations and edits.
Both of these workflows have increasingly gravitated towards a canvas for control mechanisms like ControlNet, Initial Image, and more. Now, with the power of our Control Canvas, including a full layer system, you’ll be able to use the same Canvas controls in both of these workflows.
The destination of your generations can be set at the top of your Layers & Gallery tab, with Gallery generations saving a new copy of the image to your gallery with each generation, and Canvas generations creating a new Raster layer in the bounding box on the canvas.
This is one of the big changes with v5.0, and a major point we’re looking for feedback on during alpha testing. We ask that you try to approach it with an open mind, and highlight areas where you find sustained friction, as opposed to just managing the initial shock and adjustment of change.
Layers
Carrying forward from the Control Layers release, the full suite of controls is now available on the Canvas, with some notable enhancements.
Layer Types
Each control layer on the canvas is now manageable as a moveable and editable layer. You can create multiple layers, manipulate and transform them, and compose the full set of generational controls before generating your invocation.
The naming of these layers is likely to change. A full write-up of the layers will be as we work towards a stable release.
Control Editing
When using ControlNet models, the control image can now be manipulated as a layer. Instead of managing processors just for ControlNets, any layer can now have a processors applied as Filters. Unless your control layer is a pre-processed image, remember to apply the appropriate filter before generation.
One notable benefit of this approach is that creators are now able to draw and manipulate the control images directly. While tablet support is currently limited, we intend to expand that along with some additional pressure sensitivity/brushing options to streamline that part of leveraging the tool. In the meantime, use a white brush and eraser to draw and edit your control images.
Other Updates
We'd be here all day if we were to call out every individual change, so we'll hit the highlights and expand on each point as we get closer to the stable release.
- Layer Types - Inpaint Mask, Regional Guidance, Raster Layer, Control Layer:
- Inpaint Mask and Raster Layer map to the Canvas v1 Inpaint Mask and Base Layer.
- Regional Guidance works the same as it does in the current Control Layers canvas.
- Control Layer (name TBD) is a Raster Layer with a ControlNet stapled on. You can convert a Raster Layer into a Control Layers and back again.
- Layer Compositing During Generation: You may have multiple Inpaint Masks and Raster Layers, but internally, generation still needs a single input image and mask. We handle this by virtually flattening all enabled Inpaint Masks into a single mask image, and all enabled Raster Layers into a single input image. This does not affect your layers setup - it happens behind the scenes.
- Control Layer Auto-Background: When a Control Layer has some transparency, we automatically give it a black background. This means you can create a Control Layer, select a white brush and go to town with a scribble. We'll add a black background automatically, as most ControlNet models require. This allows you to stack multiple Control Layers, even if they are of difference sizes, without artifacts at their edges.
- Layer Type Hiding: When you have even just one of each layer type, the canvas gets pretty hectic. Each layer type has a Hide toggle, which only hides the layers visually. For example, you can hide your Control Layers while you edit a Raster Layer for a cleaner-looking canvas. Hidden layers are still used during generation.
- Layer Transformation: All layer types may be moved, resized and rotated.
- Layer Filtering: Raster Layers and Control Layers may be have filters applied. You can apply as many filters as you want.
- Other Layer Operations: Duplicate, lock, disable, hide all of type, arrange. Merge visible for Raster Layers and Inpaint Masks.
- Layer Quick Switch: Press
q
to switch between the last two selected layers. Bookmark a layer to instead switch between the bookmarked layer and the last selected non-bookmarked layer. - New Rendering Engine: The canvas rendering engine is a ground-up rewrite, based on
konvajs
. - Canvas Caching: Extensive use of caching greatly improves efficiency. For example, on Canvas v1, if you click Invoke twice without changing anything else, we would export and upload the canvas image data twice. On Canvas v2, that export is cached and reused.
- Color Picker Quick Switch: Hold
alt
to temporarily switch to the color picker. - Revised Graph Builders: Curious nodeologists might find the updated graphs interesting. You can take a peek by setting Send to Gallery, generate, and load up the output image's workflow.
Installation and Updating
To install or update to v5.0.0.a8, download the installer and follow the installation instructions
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- fix(ui): map order of layer types to the menu order by @maryhipp in #6863
- feat(ui): change upscaling icon by @psychedelicious in #6867
- fix(ui): restore Settings Modal functionality to render using children by @maryhipp in #6864
- fix(nodes): add thresholding to lineart & lineart anime nodes by @psychedelicious in #6869
- fix(worker): fix progress image for FLUX inpainting by @maryhipp in #6868
- feat(ui): FLUX in linear UI by @maryhipp in #6846
- fix(ui): canvas followups 10 by @psychedelicious in #6872
- feat(ui): update image usage check for canvas v2 layers and upscaling by @maryhipp in #6874
- feat(ui): copy layers to clipboard and save layers as assets by @maryhipp in #6875
- fix: staging status & queue insanity by @psychedelicious in #6871
- export hotkeys modal by @maryhipp in #6879
- FLUX LoRA Support by @RyanJDick in #6847
- fix,feat: canvas followups 11 by @psychedelicious in #6878
- chore: v5.0.0.a8 by @psychedelicious in #6882
Full Changelog: v5.0.0.a7...v5.0.0.a8
v5.0.0.a7
This is an alpha release. Features in this version are still under active development and may not be stable.
Your feedback is particularly important for this release, which makes big changes.
Changes since Alpha 6
Fixes
- Fix: Right click opens image in new tab
- Fix: "Pull Bbox Into..." translations
- Fix: Gallery sometimes not filling up with images
- Fix: Removed button from staging area that shouldn't be there
Enhancements
- Feat: Rename "IP Adapter" -> "Reference Image"
- Feat: Close Viewer button in Viewer is an Icon
- Feat: Split up various menus into Global/Regional/Layers
- Feat: Tighten up IP Adapter settings layout
- Feat: Gallery image hover button to open in viewer
- Feat: Drop overlay styles (easier to which drop area is active)
- Feat: Add ref image drop areas to canvas
Internal
- Internal: Rename
regions
state toregionalGuidance
- Internal: Tidy up a lot of utilities for canvas state mgmt
Canvas v2
The Generation & Canvas UIs have been merged into a unified experience as part of our Control Canvas release. This enhances the interaction between all your favorite features for a more intuitive and efficient workflow. Highlighted below are the key improvements and new additions that bring this experience to life.
Control Canvas
To orient existing users, you’ll find that the core generation experience is now optimized and geared towards maximizing control. There are two main workflows that users have primarily geared towards in the past:
- Batch Generation: Generating a large number of images/iterations into the Gallery by varying/tweaking different settings.
- Composition: Working continuously on a single composition, with multiple iterations and edits.
Both of these workflows have increasingly gravitated towards a canvas for control mechanisms like ControlNet, Initial Image, and more. Now, with the power of our Control Canvas, including a full layer system, you’ll be able to use the same Canvas controls in both of these workflows.
The destination of your generations can be set at the top of your Layers & Gallery tab, with Gallery generations saving a new copy of the image to your gallery with each generation, and Canvas generations creating a new Raster layer in the bounding box on the canvas.
This is one of the big changes with v5.0, and a major point we’re looking for feedback on during alpha testing. We ask that you try to approach it with an open mind, and highlight areas where you find sustained friction, as opposed to just managing the initial shock and adjustment of change.
Layers
Carrying forward from the Control Layers release, the full suite of controls is now available on the Canvas, with some notable enhancements.
Layer Types
Each control layer on the canvas is now manageable as a moveable and editable layer. You can create multiple layers, manipulate and transform them, and compose the full set of generational controls before generating your invocation.
The naming of these layers is likely to change. A full write-up of the layers will be as we work towards a stable release.
Control Editing
When using ControlNet models, the control image can now be manipulated as a layer. Instead of managing processors just for ControlNets, any layer can now have a processors applied as Filters. Unless your control layer is a pre-processed image, remember to apply the appropriate filter before generation.
One notable benefit of this approach is that creators are now able to draw and manipulate the control images directly. While tablet support is currently limited, we intend to expand that along with some additional pressure sensitivity/brushing options to streamline that part of leveraging the tool. In the meantime, use a white brush and eraser to draw and edit your control images.
Other Updates
We'd be here all day if we were to call out every individual change, so we'll hit the highlights and expand on each point as we get closer to the stable release.
- Layer Types - Inpaint Mask, Regional Guidance, Raster Layer, Control Layer:
- Inpaint Mask and Raster Layer map to the Canvas v1 Inpaint Mask and Base Layer.
- Regional Guidance works the same as it does in the current Control Layers canvas.
- Control Layer (name TBD) is a Raster Layer with a ControlNet stapled on. You can convert a Raster Layer into a Control Layers and back again.
- Layer Compositing During Generation: You may have multiple Inpaint Masks and Raster Layers, but internally, generation still needs a single input image and mask. We handle this by virtually flattening all enabled Inpaint Masks into a single mask image, and all enabled Raster Layers into a single input image. This does not affect your layers setup - it happens behind the scenes.
- Control Layer Auto-Background: When a Control Layer has some transparency, we automatically give it a black background. This means you can create a Control Layer, select a white brush and go to town with a scribble. We'll add a black background automatically, as most ControlNet models require. This allows you to stack multiple Control Layers, even if they are of difference sizes, without artifacts at their edges.
- Layer Type Hiding: When you have even just one of each layer type, the canvas gets pretty hectic. Each layer type has a Hide toggle, which only hides the layers visually. For example, you can hide your Control Layers while you edit a Raster Layer for a cleaner-looking canvas. Hidden layers are still used during generation.
- Layer Transformation: All layer types may be moved, resized and rotated.
- Layer Filtering: Raster Layers and Control Layers may be have filters applied. You can apply as many filters as you want.
- Other Layer Operations: Duplicate, lock, disable, hide all of type, arrange. Merge visible for Raster Layers and Inpaint Masks.
- Layer Quick Switch: Press
q
to switch between the last two selected layers. Bookmark a layer to instead switch between the bookmarked layer and the last selected non-bookmarked layer. - New Rendering Engine: The canvas rendering engine is a ground-up rewrite, based on
konvajs
. - Canvas Caching: Extensive use of caching greatly improves efficiency. For example, on Canvas v1, if you click Invoke twice without changing anything else, we would export and upload the canvas image data twice. On Canvas v2, that export is cached and reused.
- Color Picker Quick Switch: Hold
alt
to temporarily switch to the color picker. - Revised Graph Builders: Curious nodeologists might find the updated graphs interesting. You can take a peek by setting Send to Gallery, generate, and load up the output image's workflow.
Installation and Updating
To install or update to v5.0.0.a7, download the installer and follow the installation instructions
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- fix,feat: canvas followups 9 by @psychedelicious in #6860
- chore: v5.0.0.a7 by @psychedelicious in #6861
- fix(ui): remove accidentally added staging button by @psychedelicious in #6862
Full Changelog: v5.0.0.a6...v5.0.0.a7
v5.0.0.a6
This is an alpha release. Features in this version are still under active development and may not be stable.
Your feedback is particularly important for this release, which makes big changes.
Changes since Alpha 5
Fixes
- Fix: Doing almost anything w/ an IP adapter errors
- Fix: Disable the transformer while canvas is busy, preventing accidentally moving layers during staging or other operations
- Fix: Cursor sometimes disappears or is unresponsive during staging
- Fix: Bbox sometimes not interactable after staging
- Fix: Do not floor stage coordinates when setting thing (I don't think this actually had any functional impact)
- Fix: Wonky layouting for overlay alerts
- Fix: Output only masked regions was inverted
- Fix: Checkerboard background slightly larger than canvas (it is now rendered on the canvas instead of as a DOM element)
- Fix: Progressive image quality degradation
Enhancements
- Feat: Move canvas reset button out of the settings popover
- Feat: Bbox overlay (adds dark overlay outside the bbox)
- Feat: More detailed
repr
outputs for all classes - Feat: Preserve mask (i.e. inverted inpaint mask)
- Feat: Middle-mouse click on any image opens it in new tab
- Feat: Use Phosphor icons for all icons (except discord and GH logos)
- Feat: Rename Generation tab to Canvas
- Feat: Diff icons for canvas context menu
Internal
- Internal: Cleanup some use of nanostores
Canvas v2
The Generation & Canvas UIs have been merged into a unified experience as part of our Control Canvas release. This enhances the interaction between all your favorite features for a more intuitive and efficient workflow. Highlighted below are the key improvements and new additions that bring this experience to life.
Control Canvas
To orient existing users, you’ll find that the core generation experience is now optimized and geared towards maximizing control. There are two main workflows that users have primarily geared towards in the past:
- Batch Generation: Generating a large number of images/iterations into the Gallery by varying/tweaking different settings.
- Composition: Working continuously on a single composition, with multiple iterations and edits.
Both of these workflows have increasingly gravitated towards a canvas for control mechanisms like ControlNet, Initial Image, and more. Now, with the power of our Control Canvas, including a full layer system, you’ll be able to use the same Canvas controls in both of these workflows.
The destination of your generations can be set at the top of your Layers & Gallery tab, with Gallery generations saving a new copy of the image to your gallery with each generation, and Canvas generations creating a new Raster layer in the bounding box on the canvas.
This is one of the big changes with v5.0, and a major point we’re looking for feedback on during alpha testing. We ask that you try to approach it with an open mind, and highlight areas where you find sustained friction, as opposed to just managing the initial shock and adjustment of change.
Layers
Carrying forward from the Control Layers release, the full suite of controls is now available on the Canvas, with some notable enhancements.
Layer Types
Each control layer on the canvas is now manageable as a moveable and editable layer. You can create multiple layers, manipulate and transform them, and compose the full set of generational controls before generating your invocation.
The naming of these layers is likely to change. A full write-up of the layers will be as we work towards a stable release.
Control Editing
When using ControlNet models, the control image can now be manipulated as a layer. Instead of managing processors just for ControlNets, any layer can now have a processors applied as Filters. Unless your control layer is a pre-processed image, remember to apply the appropriate filter before generation.
One notable benefit of this approach is that creators are now able to draw and manipulate the control images directly. While tablet support is currently limited, we intend to expand that along with some additional pressure sensitivity/brushing options to streamline that part of leveraging the tool. In the meantime, use a white brush and eraser to draw and edit your control images.
Other Updates
We'd be here all day if we were to call out every individual change, so we'll hit the highlights and expand on each point as we get closer to the stable release.
- Layer Types - Inpaint Mask, Regional Guidance, Raster Layer, Control Layer:
- Inpaint Mask and Raster Layer map to the Canvas v1 Inpaint Mask and Base Layer.
- Regional Guidance works the same as it does in the current Control Layers canvas.
- Control Layer (name TBD) is a Raster Layer with a ControlNet stapled on. You can convert a Raster Layer into a Control Layers and back again.
- Layer Compositing During Generation: You may have multiple Inpaint Masks and Raster Layers, but internally, generation still needs a single input image and mask. We handle this by virtually flattening all enabled Inpaint Masks into a single mask image, and all enabled Raster Layers into a single input image. This does not affect your layers setup - it happens behind the scenes.
- Control Layer Auto-Background: When a Control Layer has some transparency, we automatically give it a black background. This means you can create a Control Layer, select a white brush and go to town with a scribble. We'll add a black background automatically, as most ControlNet models require. This allows you to stack multiple Control Layers, even if they are of difference sizes, without artifacts at their edges.
- Layer Type Hiding: When you have even just one of each layer type, the canvas gets pretty hectic. Each layer type has a Hide toggle, which only hides the layers visually. For example, you can hide your Control Layers while you edit a Raster Layer for a cleaner-looking canvas. Hidden layers are still used during generation.
- Layer Transformation: All layer types may be moved, resized and rotated.
- Layer Filtering: Raster Layers and Control Layers may be have filters applied. You can apply as many filters as you want.
- Other Layer Operations: Duplicate, lock, disable, hide all of type, arrange. Merge visible for Raster Layers and Inpaint Masks.
- Layer Quick Switch: Press
q
to switch between the last two selected layers. Bookmark a layer to instead switch between the bookmarked layer and the last selected non-bookmarked layer. - New Rendering Engine: The canvas rendering engine is a ground-up rewrite, based on
konvajs
. - Canvas Caching: Extensive use of caching greatly improves efficiency. For example, on Canvas v1, if you click Invoke twice without changing anything else, we would export and upload the canvas image data twice. On Canvas v2, that export is cached and reused.
- Color Picker Quick Switch: Hold
alt
to temporarily switch to the color picker. - Revised Graph Builders: Curious nodeologists might find the updated graphs interesting. You can take a peek by setting Send to Gallery, generate, and load up the output image's workflow.
Installation and Updating
To install or update to v5.0.0.a6, download the installer and follow the installation instructions
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- Invert the expected
denoise_mask
parameter to the FLUX Denoise node by @RyanJDick in #6853 - fix,feat: canvas followups 8 by @psychedelicious in #6858
- chore: v5.0.0.a6 by @psychedelicious in #6859
Full Changelog: v5.0.0.a5...v5.0.0.a6
v5.0.0.a5
This is an alpha release. Features in this version are still under active development and may not be stable.
Your feedback is particularly important for this release, which makes big changes.
Changes since Alpha 4:
- Fix: Wrong translation used for transform's fit to bbox
- Fix: Off-by-one error with layer z-index (unsure if it actually caused any problems)
- Fix: Adjusting opacity during filtering causing empty image to be filtered
- Fix: Ensure filtering is done with layer at opacity 1
- Fix: infinite recursion (i.e. a crash) when selecting spandrel filter w/ no spandrel models installed
- Fix: translations for spandrel filter
- Feat: Close viewer when sending gallery image to canvas
- Feat: Disable progress images on canvas
- Feat: Brighter border around fill color buttons
- Feat: Upload button on control layer
- Feat: Canvas interaction restrictions (e.g. no tools while staging, no undo/redo while transforming, etc etc)
- Feat: Rename "Composite Masked Regions" -> "Output Only Masked Regions"
- Feat: Show alert when selected layer is empty
- Feat: Handle error conditions when sending to gallery
- Feat: Add filter/transform/delete to canvas context menu
- Feat: On-theme checkerboard pattern
- Feat: Filter process button does immediate processing (before it had a delay)
- Feat: Bbox has black and white outline (before was white only)
- Feat: Regions start w/ no prompt or IP adapter
- Internal: Revised
Result
type, docstrings, tidy - Internal: Prep for FLUX LoRA support
Canvas v2
The Generation & Canvas UIs have been merged into a unified experience as part of our Control Canvas release. This enhances the interaction between all your favorite features for a more intuitive and efficient workflow. Highlighted below are the key improvements and new additions that bring this experience to life.
Control Canvas
To orient existing users, you’ll find that the core generation experience is now optimized and geared towards maximizing control. There are two main workflows that users have primarily geared towards in the past:
- Batch Generation: Generating a large number of images/iterations into the Gallery by varying/tweaking different settings.
- Composition: Working continuously on a single composition, with multiple iterations and edits.
Both of these workflows have increasingly gravitated towards a canvas for control mechanisms like ControlNet, Initial Image, and more. Now, with the power of our Control Canvas, including a full layer system, you’ll be able to use the same Canvas controls in both of these workflows.
The destination of your generations can be set at the top of your Layers & Gallery tab, with Gallery generations saving a new copy of the image to your gallery with each generation, and Canvas generations creating a new Raster layer in the bounding box on the canvas.
This is one of the big changes with v5.0, and a major point we’re looking for feedback on during alpha testing. We ask that you try to approach it with an open mind, and highlight areas where you find sustained friction, as opposed to just managing the initial shock and adjustment of change.
Layers
Carrying forward from the Control Layers release, the full suite of controls is now available on the Canvas, with some notable enhancements.
Layer Types
Each control layer on the canvas is now manageable as a moveable and editable layer. You can create multiple layers, manipulate and transform them, and compose the full set of generational controls before generating your invocation.
The naming of these layers is likely to change. A full write-up of the layers will be as we work towards a stable release.
Control Editing
When using ControlNet models, the control image can now be manipulated as a layer. Instead of managing processors just for ControlNets, any layer can now have a processors applied as Filters. Unless your control layer is a pre-processed image, remember to apply the appropriate filter before generation.
One notable benefit of this approach is that creators are now able to draw and manipulate the control images directly. While tablet support is currently limited, we intend to expand that along with some additional pressure sensitivity/brushing options to streamline that part of leveraging the tool. In the meantime, use a white brush and eraser to draw and edit your control images.
Other Updates
We'd be here all day if we were to call out every individual change, so we'll hit the highlights and expand on each point as we get closer to the stable release.
- Layer Types - Inpaint Mask, Regional Guidance, Raster Layer, Control Layer:
- Inpaint Mask and Raster Layer map to the Canvas v1 Inpaint Mask and Base Layer.
- Regional Guidance works the same as it does in the current Control Layers canvas.
- Control Layer (name TBD) is a Raster Layer with a ControlNet stapled on. You can convert a Raster Layer into a Control Layers and back again.
- Layer Compositing During Generation: You may have multiple Inpaint Masks and Raster Layers, but internally, generation still needs a single input image and mask. We handle this by virtually flattening all enabled Inpaint Masks into a single mask image, and all enabled Raster Layers into a single input image. This does not affect your layers setup - it happens behind the scenes.
- Control Layer Auto-Background: When a Control Layer has some transparency, we automatically give it a black background. This means you can create a Control Layer, select a white brush and go to town with a scribble. We'll add a black background automatically, as most ControlNet models require. This allows you to stack multiple Control Layers, even if they are of difference sizes, without artifacts at their edges.
- Layer Type Hiding: When you have even just one of each layer type, the canvas gets pretty hectic. Each layer type has a Hide toggle, which only hides the layers visually. For example, you can hide your Control Layers while you edit a Raster Layer for a cleaner-looking canvas. Hidden layers are still used during generation.
- Layer Transformation: All layer types may be moved, resized and rotated.
- Layer Filtering: Raster Layers and Control Layers may be have filters applied. You can apply as many filters as you want.
- Other Layer Operations: Duplicate, lock, disable, hide all of type, arrange. Merge visible for Raster Layers and Inpaint Masks.
- Layer Quick Switch: Press
q
to switch between the last two selected layers. Bookmark a layer to instead switch between the bookmarked layer and the last selected non-bookmarked layer. - New Rendering Engine: The canvas rendering engine is a ground-up rewrite, based on
konvajs
. - Canvas Caching: Extensive use of caching greatly improves efficiency. For example, on Canvas v1, if you click Invoke twice without changing anything else, we would export and upload the canvas image data twice. On Canvas v2, that export is cached and reused.
- Color Picker Quick Switch: Hold
alt
to temporarily switch to the color picker. - Revised Graph Builders: Curious nodeologists might find the updated graphs interesting. You can take a peek by setting Send to Gallery, generate, and load up the output image's workflow.
Installation and Updating
To install or update to v5.0.0.a5, download the installer and follow the installation instructions
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- Split LoRA layer implementations into separate files. by @RyanJDick in #6845
- fix(ui): spandrel filter by @psychedelicious in #6844
- chore: release v5.0.0.a5 by @psychedelicious in #6850
- fix,feat: canvas followups 7 by @psychedelicious in #6849
Full Changelog: v5.0.0.a4...v5.0.0.a5
v5.0.0.a4
This is an alpha release. Features in this version are still under active development and may not be stable.
Your feedback is particularly important for this release, which makes big changes.
Changes since Alpha 3:
- Feat: Reworked UX for
Send to Gallery
&Send to Canvas
- Feat: Alerts when your generations are going to a different view (configurable in settings)
- Feat: Big viewer is back, mini viewer got the axe
- Fix: Escape doesn't totally clear gallery selection - just resets to the a single image selected
- Fix: Canvas progress images do not show in viewer
Canvas v2
The Generation & Canvas UIs have been merged into a unified experience as part of our Control Canvas release. This enhances the interaction between all your favorite features for a more intuitive and efficient workflow. Highlighted below are the key improvements and new additions that bring this experience to life.
Control Canvas
To orient existing users, you’ll find that the core generation experience is now optimized and geared towards maximizing control. There are two main workflows that users have primarily geared towards in the past:
- Batch Generation: Generating a large number of images/iterations into the Gallery by varying/tweaking different settings.
- Composition: Working continuously on a single composition, with multiple iterations and edits.
Both of these workflows have increasingly gravitated towards a canvas for control mechanisms like ControlNet, Initial Image, and more. Now, with the power of our Control Canvas, including a full layer system, you’ll be able to use the same Canvas controls in both of these workflows.
The destination of your generations can be set at the top of your Layers & Gallery tab, with Gallery generations saving a new copy of the image to your gallery with each generation, and Canvas generations creating a new Raster layer in the bounding box on the canvas.
This is one of the big changes with v5.0, and a major point we’re looking for feedback on during alpha testing. We ask that you try to approach it with an open mind, and highlight areas where you find sustained friction, as opposed to just managing the initial shock and adjustment of change.
Layers
Carrying forward from the Control Layers release, the full suite of controls is now available on the Canvas, with some notable enhancements.
Layer Types
Each control layer on the canvas is now manageable as a moveable and editable layer. You can create multiple layers, manipulate and transform them, and compose the full set of generational controls before generating your invocation.
The naming of these layers is likely to change. A full write-up of the layers will be as we work towards a stable release.
Control Editing
When using ControlNet models, the control image can now be manipulated as a layer. Instead of managing processors just for ControlNets, any layer can now have a processors applied as Filters. Unless your control layer is a pre-processed image, remember to apply the appropriate filter before generation.
One notable benefit of this approach is that creators are now able to draw and manipulate the control images directly. While tablet support is currently limited, we intend to expand that along with some additional pressure sensitivity/brushing options to streamline that part of leveraging the tool. In the meantime, use a white brush and eraser to draw and edit your control images.
Other Updates
We'd be here all day if we were to call out every individual change, so we'll hit the highlights and expand on each point as we get closer to the stable release.
- Layer Types - Inpaint Mask, Regional Guidance, Raster Layer, Control Layer:
- Inpaint Mask and Raster Layer map to the Canvas v1 Inpaint Mask and Base Layer.
- Regional Guidance works the same as it does in the current Control Layers canvas.
- Control Layer (name TBD) is a Raster Layer with a ControlNet stapled on. You can convert a Raster Layer into a Control Layers and back again.
- Layer Compositing During Generation: You may have multiple Inpaint Masks and Raster Layers, but internally, generation still needs a single input image and mask. We handle this by virtually flattening all enabled Inpaint Masks into a single mask image, and all enabled Raster Layers into a single input image. This does not affect your layers setup - it happens behind the scenes.
- Control Layer Auto-Background: When a Control Layer has some transparency, we automatically give it a black background. This means you can create a Control Layer, select a white brush and go to town with a scribble. We'll add a black background automatically, as most ControlNet models require. This allows you to stack multiple Control Layers, even if they are of difference sizes, without artifacts at their edges.
- Layer Type Hiding: When you have even just one of each layer type, the canvas gets pretty hectic. Each layer type has a Hide toggle, which only hides the layers visually. For example, you can hide your Control Layers while you edit a Raster Layer for a cleaner-looking canvas. Hidden layers are still used during generation.
- Layer Transformation: All layer types may be moved, resized and rotated.
- Layer Filtering: Raster Layers and Control Layers may be have filters applied. You can apply as many filters as you want.
- Other Layer Operations: Duplicate, lock, disable, hide all of type, arrange. Merge visible for Raster Layers and Inpaint Masks.
- Layer Quick Switch: Press
q
to switch between the last two selected layers. Bookmark a layer to instead switch between the bookmarked layer and the last selected non-bookmarked layer. - New Rendering Engine: The canvas rendering engine is a ground-up rewrite, based on
konvajs
. - Canvas Caching: Extensive use of caching greatly improves efficiency. For example, on Canvas v1, if you click Invoke twice without changing anything else, we would export and upload the canvas image data twice. On Canvas v2, that export is cached and reused.
- Color Picker Quick Switch: Hold
alt
to temporarily switch to the color picker. - Revised Graph Builders: Curious nodeologists might find the updated graphs interesting. You can take a peek by setting Send to Gallery, generate, and load up the output image's workflow.
Installation and Updating
To install or update to v5.0.0.a4, download the installer and follow the installation instructions
To update, select the same installation location. Your user data (images, models, etc) will be retained.
What's Changed
- feat(ui): viewer UX by @psychedelicious in #6842
- chore: release v5.0.0.a4 by @psychedelicious in #6843
Full Changelog: v5.0.0.a3...v5.0.0.a4
v5.0.0.a3
This is an alpha release. Features in this version are still under active development and may not be stable.
Your feedback is particularly important for this release, which makes big changes.
Changes since Alpha 2:
- Fix: Resetting canvas fully reset initial inpaint mask
- Fix:
Layers
tab counter indicator only includes active (enabled & not empty) entities - Feat: Ctrl/Cmd+Y to redo
- Feat: Do not group brush/eraser/rect actions in undo/redo history
- Fix: Disable the filter
Process
button when auto-processing is enabled - Fix: Invoke button tooltip says if in send-to-canvas mode
- Internal: Make the delete board modal a singleton
- Fix: Resizable panels now remember their sizes/state
- Fix: When converting a raster to control layer, populate the model field
- Fix: Change how canvas listens to page resize events, fixing rare issues where it misses an event and the stage doesn't resize correctly
- Fix: Do not reset the boards search term when collapsing the boards list section
- Feat: New more generalized nodes for all "controlnet processors" which replace the existing filters:
- These nodes now the model manager for loading and caching the models
- Fixed issues where filters change the size of images unexpectedly
- Add
Classification.Deprecated
for nodes & use this to hide the old funky processor nodes
- Fix: race condition causing the progress bar & queue counter to be stale
- Feat: If filtering a control layer, the default filter selection is linked to selected control model
- Feat: Add filter button next to control model select menu
- Feat: Drag an image onto a control or raster layer to replace that layer's content with the image
- Feat:
Pull Bbox Into
button for Control Layers, Global IP Adapters and Regional IP Adapters
Canvas v2
The Generation & Canvas UIs have been merged into a unified experience as part of our Control Canvas release. This enhances the interaction between all your favorite features for a more intuitive and efficient workflow. Highlighted below are the key improvements and new additions that bring this experience to life.
Control Canvas
To orient existing users, you’ll find that the core generation experience is now optimized and geared towards maximizing control. There are two main workflows that users have primarily geared towards in the past:
- Batch Generation: Generating a large number of images/iterations into the Gallery by varying/tweaking different settings.
- Composition: Working continuously on a single composition, with multiple iterations and edits.
Both of these workflows have increasingly gravitated towards a canvas for control mechanisms like ControlNet, Initial Image, and more. Now, with the power of our Control Canvas, including a full layer system, you’ll be able to use the same Canvas controls in both of these workflows.
The destination of your generations can be set at the top of your Layers & Gallery tab, with Gallery generations saving a new copy of the image to your gallery with each generation, and Canvas generations creating a new Raster layer in the bounding box on the canvas.
This is one of the big changes with v5.0, and a major point we’re looking for feedback on during alpha testing. We ask that you try to approach it with an open mind, and highlight areas where you find sustained friction, as opposed to just managing the initial shock and adjustment of change.
Layers
Carrying forward from the Control Layers release, the full suite of controls is now available on the Canvas, with some notable enhancements.
Layer Types
Each control layer on the canvas is now manageable as a moveable and editable layer. You can create multiple layers, manipulate and transform them, and compose the full set of generational controls before generating your invocation.
The naming of these layers is likely to change. A full write-up of the layers will be as we work towards a stable release.
Control Editing
When using ControlNet models, the control image can now be manipulated as a layer. Instead of managing processors just for ControlNets, any layer can now have a processors applied as Filters. Unless your control layer is a pre-processed image, remember to apply the appropriate filter before generation.
One notable benefit of this approach is that creators are now able to draw and manipulate the control images directly. While tablet support is currently limited, we intend to expand that along with some additional pressure sensitivity/brushing options to streamline that part of leveraging the tool. In the meantime, use a white brush and eraser to draw and edit your control images.
Other Updates
We'd be here all day if we were to call out every individual change, so we'll hit the highlights and expand on each point as we get closer to the stable release.
- Layer Types - Inpaint Mask, Regional Guidance, Raster Layer, Control Layer:
- Inpaint Mask and Raster Layer map to the Canvas v1 Inpaint Mask and Base Layer.
- Regional Guidance works the same as it does in the current Control Layers canvas.
- Control Layer (name TBD) is a Raster Layer with a ControlNet stapled on. You can convert a Raster Layer into a Control Layers and back again.
- Layer Compositing During Generation: You may have multiple Inpaint Masks and Raster Layers, but internally, generation still needs a single input image and mask. We handle this by virtually flattening all enabled Inpaint Masks into a single mask image, and all enabled Raster Layers into a single input image. This does not affect your layers setup - it happens behind the scenes.
- Control Layer Auto-Background: When a Control Layer has some transparency, we automatically give it a black background. This means you can create a Control Layer, select a white brush and go to town with a scribble. We'll add a black background automatically, as most ControlNet models require. This allows you to stack multiple Control Layers, even if they are of difference sizes, without artifacts at their edges.
- Layer Type Hiding: When you have even just one of each layer type, the canvas gets pretty hectic. Each layer type has a Hide toggle, which only hides the layers visually. For example, you can hide your Control Layers while you edit a Raster Layer for a cleaner-looking canvas. Hidden layers are still used during generation.
- Layer Transformation: All layer types may be moved, resized and rotated.
- Layer Filtering: Raster Layers and Control Layers may be have filters applied. You can apply as many filters as you want.
- Other Layer Operations: Duplicate, lock, disable, hide all of type, arrange. Merge visible for Raster Layers and Inpaint Masks.
- Layer Quick Switch: Press
q
to switch between the last two selected layers. Bookmark a layer to instead switch between the bookmarked layer and the last selected non-bookmarked layer. - New Rendering Engine: The canvas rendering engine is a ground-up rewrite, based on
konvajs
. - Canvas Caching: Extensive use of caching greatly improves efficiency. For example, on Canvas v1, if you click Invoke twice without changing anything else, we would export and upload the canvas image data twice. On Canvas v2, that export is cached and reused.
- Color Picker Quick Switch: Hold
alt
to temporarily switch to the color picker. - Revised Graph Builders: Curious nodeologists might find the updated graphs interesting. You can take a peek by setting Send to Gallery, generate, and load up the output image's workflow.
Installation and Updating
To install or update to v5.0.0.a3, download the installer and follow the installation instructions
To update, select the same installation location. Your user data (images, models, etc) will be retained.
Full Changelog: v5.0.0.a2...v5.0.0.a3
What's Changed
- fix,feat: canvas followups 6 by @psychedelicious in #6834
- feat(nodes): migrate cnet nodes away from
controlnet_aux
by @psychedelicious in #6831 - chore: release v5.0.0.a3 by @psychedelicious in #6838
Full Changelog: v5.0.0.a2...v5.0.0.a3