psychedelicious
2ea55685bb
feat(ui): add save to assets for inpaint & rg
2024-10-30 11:05:46 +11:00
psychedelicious
bd6ff3deaa
feat(ui): add merge down for all entity types
2024-10-30 11:05:46 +11:00
psychedelicious
82dd53ec88
tidy(ui): clean up merge visible logic
2024-10-30 11:05:46 +11:00
psychedelicious
71d749541d
feat(ui): control layers supports merge visible
...
The "lighter" GlobalCompositeOperation is used. This seems to be the best one when merging control layers, as it retains edge maps.
2024-10-30 11:05:46 +11:00
psychedelicious
48a57fc4b9
feat(ui): support globalCompositeOperation when compositing canvas
2024-10-30 11:05:46 +11:00
psychedelicious
530e0910fc
feat(ui): regional guidance supports merge visible
2024-10-30 11:05:46 +11:00
psychedelicious
2fdf8fc0a2
feat(ui): merge visible creates new layer
...
Previously, merge visible deleted all other visible layers. This is not how affinity works, I should have confirmed before making it work like this in the first place.Ï
2024-10-30 11:05:46 +11:00
psychedelicious
91db9c9300
refactor(ui): generalize compositor methods
...
`CanvasCompositorModule` had a fairly inflexible API, only supporting compositing all raster layers or inpaint masks.
The API has been generalized work with a list of canvas entities. This enables `Merge Down` and `Merge Selected` functionality (though `Merge Selected` is not part of this set of changes).
2024-10-30 11:05:46 +11:00
psychedelicious
bc42205593
fix(ui): remember to disable isFiltering when finishing filtering
2024-10-30 09:19:30 +11:00
psychedelicious
2e3cba6416
fix(ui): flash of original layer when applying filter/segment
...
Let the parent module adopt the filtered/segemented image instead of destroying it and making the parent re-create it, which results in a brief flash of the parent layer's original objects before the new image is rendered.
2024-10-30 09:19:30 +11:00
psychedelicious
7852aacd11
fix(uI): track whether graph succeeded in runGraphAndReturnImageOutput
...
This prevents extraneous graph cancel requests when cleaning up the abort signal after a successful run of a graph.
2024-10-30 09:19:30 +11:00
psychedelicious
6cccd67ecd
feat(ui): update SAM module to w/ minor improvements from filter module
2024-10-30 09:19:30 +11:00
psychedelicious
a7a89c9de1
feat(ui): use more resilient logic in canvas filter module, same as in SAM module
2024-10-30 09:19:30 +11:00
psychedelicious
5ca8eed89e
tidy(ui): remove all buffer renderer interactions in SAM module
...
We don't use the buffer rendere in this module; there's no reason to clear it.
2024-10-30 09:19:30 +11:00
psychedelicious
c885c3c9a6
fix(ui): filter layer data pushed to parent rendered when saving as
2024-10-30 09:19:30 +11:00
Mary Hipp
d81c38c350
update announcements
2024-10-29 09:53:13 -04:00
Riku
92d5b73215
fix(ui): seamless zod parameter cleanup
2024-10-29 20:43:44 +11:00
Riku
097e92db6a
fix(ui): always write seamless metadata
...
Ensure images without seamless enabled correctly reset the setting
when all parameters are recalled
2024-10-29 20:43:44 +11:00
Riku
84c6209a45
feat(ui): display seamless values in metadata viewer
2024-10-29 20:43:44 +11:00
Riku
107e48808a
fix(ui): recall seamless settings
2024-10-29 20:43:44 +11:00
psychedelicious
7cdda00a54
feat(ui): rearrange canvas paste back nodes to save an image step
...
We were scaling the unscaled image and mask down before doing the paste-back, but this adds an extraneous step & image output.
We can do the paste-back first, then scale to output size after. So instead of 2 resizes before the paste-back, we have 1 resize after.
The end result is the same.
2024-10-29 11:13:31 +11:00
psychedelicious
a74282bce6
feat(ui): graph builders use objects for arg instead of many args
2024-10-29 11:13:31 +11:00
psychedelicious
107f048c7a
feat(ui): extract canvas output node prefix to constant
2024-10-29 11:13:31 +11:00
psychedelicious
a84aa5c049
fix(ui): canvas alerts blocking metadata panel
2024-10-27 09:46:01 +11:00
psychedelicious
db1c5a94f7
feat(ui): image ctx -> New from Image -> Canvas as Raster/Control Layer
2024-10-25 22:27:00 -04:00
psychedelicious
56222a8493
feat(ui): organize layer context menu items
2024-10-25 22:27:00 -04:00
psychedelicious
b7510ce709
feat(ui): filter, select object and transform UI buttons
...
- Restore dedicated `Apply` buttons
- Remove icons from the buttons, too much noise when the words are short and clear
- Update loading state to show a spinner next to the `Process` button instead of on _every_ button
2024-10-25 22:27:00 -04:00
psychedelicious
5739799e2e
fix(ui): close viewer when transforming
2024-10-25 22:27:00 -04:00
psychedelicious
813cf87920
feat(ui): move canvas alerts to top-left corner
2024-10-25 22:27:00 -04:00
psychedelicious
c95b151daf
feat(ui): add layer title heading for canvas ctx menu
2024-10-25 22:27:00 -04:00
psychedelicious
a0f823a3cf
feat(ui): reset shouldShowStagedImage flag when starting staging
2024-10-25 22:27:00 -04:00
psychedelicious
008be9b846
feat(ui): add all save as options to filter
2024-10-25 08:12:14 -04:00
psychedelicious
8e7cabdc04
feat(ui): add Replace Current open to Select Object -> Save As
2024-10-25 08:12:14 -04:00
psychedelicious
a4c4237f99
feat(ui): use PiPlayFill for process buttons for filter & select object
2024-10-25 08:12:14 -04:00
psychedelicious
bda3740dcd
feat(ui): use fill style icons for Filter
2024-10-25 08:12:14 -04:00
psychedelicious
5b4633baa9
feat(ui): use PiShapesFill icon for Select Object
2024-10-25 08:12:14 -04:00
psychedelicious
96351181cb
feat(ui): make canvas layer toolbar icons a bit larger
2024-10-25 08:12:14 -04:00
psychedelicious
957d591d99
feat(ui): "Auto-Mask" -> "Select Object"
2024-10-25 08:12:14 -04:00
psychedelicious
75f605ba1a
feat(ui): support inverted selection in auto-mask
2024-10-25 08:12:14 -04:00
psychedelicious
ab898a7180
chore(ui): typegen
2024-10-25 08:12:14 -04:00
psychedelicious
fe97c0d5eb
tweak(ui): default settings verbiage
2024-10-25 16:09:59 +11:00
psychedelicious
6056764840
feat(ui): disable default settings button when synced
...
A blue button is begging to be clicked, but clicking it will do nothing. Instead, we should communicate that no action is needed by disabling the button when the default settings are already in use.
2024-10-25 16:09:59 +11:00
psychedelicious
8747c0dbb0
fix(ui): handle no model selection in default settings tooltip
2024-10-25 16:09:59 +11:00
psychedelicious
c5cdd5f9c6
fix(ui): use const EMPTY_OBJECT to prevent rerenders
2024-10-25 16:09:59 +11:00
psychedelicious
abc5d53159
fix(ui): use explicit null check when comparing default settings
...
Using `&&` will result in false negatives for settings where a falsy value might be valid. For example, any setting for which 0 is a valid number. To be on the safe side, just use an explicit null check on all values.
2024-10-25 16:09:59 +11:00
psychedelicious
2f76019a89
tweak(ui): defaults sync tooltip styling
2024-10-25 16:09:59 +11:00
Mary Hipp
3f45beb1ed
feat(ui): add out of sync details to model default settings button
2024-10-25 16:09:59 +11:00
Mary Hipp
bc1126a85b
(ui): add setting for showing model descriptions in dropdown defaulted to true
2024-10-25 14:52:33 +11:00
psychedelicious
ab7cdbb7e0
fix(ui): do not delete point on right-mouse click
2024-10-25 10:22:22 +11:00
psychedelicious
e5b78d0221
fix(ui): canvas drop area grid layout
2024-10-25 10:22:22 +11:00