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