This release brings many fixes and enhancements, including two long-awaited features: undo/redo in workflows and load workflow from any image.
If you missed v4.2.0, please review its release notes to get up to speed on Control Layers.
📈 Patch Nodes for v4.2.2post1
v4.2.2 had a critical bug related to notes nodes & missing templates in workflows. That is fixed in v4.2.2post1.
✨ Undo/redo in Workflows
Undo/redo redo now available in the workflow editor. There's some amount of tuning to be done with how actions are grouped.
For example, when you move a node around, do we allow you to undo each pixel of movement, or do we group the position changes as one action? When you are typing a prompt, do we undo each letter, word, or the whole change at once?
Currently, we group like changes together. It's possible some things are grouped when they shouldn't be, or should be grouped but are not. Your feedback will be very useful in tuning the behaviour so it un-does the right changes.
✨ Load Workflow from Any Image
Starting with v4.2.2, graphs are embedded in all images generated by Invoke. Images generated in the workflow editor also have the enriched workflow embedded separately. The Load Workflow
button will load the enriched workflow if it exists, else it will load the graph.
You'll see a new Graph
tab in the metadata viewer showing the embedded graph.
Graph vs Workflow
Graphs are used by the backend and contain minimal data. Workflows are an enrich data format that includes a representation of the graph plus extra information, including things like:
- Title, description, author, etc
- Node positions
- Custom node and field labels
This new feature embeds the graph in every image - including images generated on the Generation or Canvas tabs.
Canvas Caveat
This functionality is available only for individual canvas generations - not the full composition. Why is that?
Consider what goes into a full canvas composition. It's the product of any number of graphs, with any amount of drawing and erasing between each graph execution. It's not possible to consolidate this into a single graph.
When you generate on canvas, your images for the given bounding box are added to a staging area, which allows you to cycle through images and commit or discard the image. The staging area also allows you to save a candidate generation. It is these images that can be loaded as a workflow, because they are the product of a single graph execution.
👷 Other Fixes and Enhancements
- Min/max LoRA weight values extended (-10 to +10) @H0onnn
- Denoising strength and layer opacity are retained when sending image to initial image @steffy-lo
- SDXL T2I Adapter only blocks invoking when dimensions aren't multiple of 32 (was erroneously 64)
- Improved UX when manipulating edges in workflows
- Connected inputs on nodes collapse, hiding the nonfunctional UI component
- Use
ctrl/cmd-shift-v
to paste copied nodes with input edges - Docs updates @hsm207
- Fix: visible seams when outpainting
- Fix: edge case that could prevent workflows from loading if user hadn't opened the workflows tab yet
- Fix: minor jank/inefficiency with control adapter auto-process (control layers only)
- Internal: utility to create graph objects without going crazy
- Internal: rewritten connection validation logic for workflows with full test coverage
- Internal: rewritten edge connection interactions
- Internal: revised field type format
💾 Installation and Updating
To install or update to v4.2.2post1, download the installer and follow the installation instructions.
To update, select the same installation location. Your user data (images, models, etc) will be retained.
Missing models after updating from v3 to v4
See this FAQ.
What's Changed
- fix: Fix Outpaint not applying the expanded mask correctly by @blessedcoolant in #6370
- feat(ui): graph builder by @psychedelicious in #6361
- docs: fix install reqs link by @psychedelicious in #6374
- feat(ui): SDXL clip skip by @psychedelicious in #6378
- [Refactor] Update min and max values for LoRACard weight input by @H0onnn in #6383
- feat(ui): workflows undo/redo by @psychedelicious in #6379
- feat(ui): prevent connections to direct-only inputs by @psychedelicious in #6387
- feat(ui): copy/paste input edges when copying node by @psychedelicious in #6385
- fix(ui): allow image dims multiple of 32 with SDXL and T2I adapter by @psychedelicious in #6366
- revert(ui): SDXL clip skip by @psychedelicious in #6389
- fix(ui): field ordering & display by @psychedelicious in #6390
- feat(ui): store workflow in generation tab images by @psychedelicious in #6384
- feat(worker): add nullable user_id and project_id to invocation error events by @maryhipp in #6388
- docs: fix link to. install reqs by @hsm207 in #6392
- fix(ui): control adapter auto-process jank by @psychedelicious in #6393
- feat(ui): connection validation rework by @psychedelicious in #6386
- fix(ui): edge case resulting in no node templates when loading workfl… by @psychedelicious in #6397
- feat: write-only canvas metadata by @psychedelicious in #6404
- fix(ui): fix t2i adapter dimensions error message by @psychedelicious in #6391
- feat(ui): better field types by @psychedelicious in #6396
- fix(ui): workflow edges not saved by @psychedelicious in #6403
- [#6351] ui: retain denoise strength and opacity when changing image by @steffy-lo in #6407
- chore: v4.2.2 by @psychedelicious in #6410
- fix(ui): crash when using notes nodes or missing node/field templates by @psychedelicious in #6412
New Contributors
- @H0onnn made their first contribution in #6383
- @hsm207 made their first contribution in #6392
- @steffy-lo made their first contribution in #6407
Full Changelog: v4.2.1...v4.2.2post1