psychedelicious
73ea5cb42a
feat(ui): global canvas hotkey interaction restrictions
2024-09-13 22:33:34 +10:00
psychedelicious
3aaaae4d1c
feat(ui): more interaction restrictions
2024-09-13 22:33:34 +10:00
psychedelicious
fbe02e3d1d
fix(ui): do not show/hide objects when filtering
...
This is a holdover from before the buffer renderer was split out.
2024-09-13 22:33:34 +10:00
psychedelicious
790195854e
fix(ui): set opacity to 1 when rasterizing for filter
2024-09-13 22:33:34 +10:00
psychedelicious
a1179eb227
fix(ui): off-by-one layer zIndex
2024-09-13 22:33:34 +10:00
psychedelicious
e5792278b9
feat(ui): revised canvas "busyness" state tracking
...
Track various canvas states:
- Filtering an entity
- Transforming an entity
- Rasterizing an entity
- Compositing
- Busy (derived from all of the above)
Also track individual entity states:
- Locked
- Disabled
- All of type are hidden
- Has objects
- Interactable (derived from all of the above)
These states then gate various actions. For example:
- Cannot invoke while the canvas is busy.
- Cannot transform, filter, duplicate, or delete when the canvas is busy.
Tool interaction restrictions are not yet implemented.
2024-09-13 22:33:34 +10:00
psychedelicious
452e612235
fix(ui): wrong translation used for transform fit to bbox
2024-09-13 22:33:34 +10:00
psychedelicious
241fc18d69
feat(ui): add upload button to control layer
2024-09-13 22:33:34 +10:00
psychedelicious
8506d98f34
feat(ui): brighter border around fill color buttons
2024-09-13 22:33:34 +10:00
psychedelicious
cb53772722
feat(ui): add setting to disable progress images on canvas
2024-09-13 22:33:34 +10:00
psychedelicious
a802b92684
fix(ui): allow canceling filter when config is invalid
2024-09-13 07:24:58 +10:00
psychedelicious
fd19b0691a
fix(ui): spandrel filter translations
2024-09-13 07:24:58 +10:00
psychedelicious
91a08086c0
fix(ui): spandrel filter infinite loop when no models installed
...
Closes #6835
2024-09-13 07:24:58 +10:00
psychedelicious
637960d67e
fix(ui): remove unused setting, fix missing translation for alerts
2024-09-12 23:42:21 +10:00
psychedelicious
82df16d8ce
feat(ui): animations for send to alerts
2024-09-12 23:42:21 +10:00
psychedelicious
dd3013d333
feat(ui): alerts display depending on current generation destination
2024-09-12 23:42:21 +10:00
psychedelicious
30ea852761
feat(ui): restore viewer
...
- Remove gallery tab
- Restore viewer
- Add configurable alerts & toasts when user may be lost
2024-09-12 23:42:21 +10:00
psychedelicious
c03f80b19c
feat(ui): use <Alert/> for selected entity alerts
2024-09-12 23:42:21 +10:00
psychedelicious
88dcb388dc
feat(ui): pull bbox into functionality for control/ip adapters
2024-09-11 08:12:48 -04:00
psychedelicious
5a89bf841f
feat(ui): drop image on layer to replace it
2024-09-11 08:12:48 -04:00
psychedelicious
5b8707a74f
feat(ui): entityRasterized action only needs position, not rect
...
This makes it a bit easier to call the action
2024-09-11 08:12:48 -04:00
psychedelicious
cfb538bdc2
feat(ui): add filter button next to control adapter model
2024-09-11 08:12:48 -04:00
psychedelicious
9f06a9b03c
feat(ui): use revised filters
...
- Add backcompat for cnet model default settings
- Default filter selection based on model type
- Updated UI components to use new filter nodes
- Added handling for failed filter executions, preventing filter from getting stuck in case it failed for some reason
- New translations for all filters & fields
2024-09-11 08:12:48 -04:00
psychedelicious
bb2db3d6c3
feat(ui): improve typing on CanvasEntityAdapterBase
...
Use a generic to narrow the `type` field from `string` to a literal. Now you can do e.g. `adapter.type === 'control_layer_adapter'` and TS narrows the type.
2024-09-11 08:12:48 -04:00
psychedelicious
a2e2a31b95
fix(ui): create new resizeObserver when setting stage container
...
Hopefully this resolves the issue where sometimes the stage misses a resize event and ends up too small until you resize the window again.
2024-09-11 14:15:16 +10:00
psychedelicious
88c276cd09
fix(ui): use default control adapter when converting raster to control layer
2024-09-11 14:15:16 +10:00
psychedelicious
457871af93
chore(ui): lint
2024-09-11 14:15:16 +10:00
psychedelicious
80877a1f15
fix(ui): disable filter process button when auto-processing
2024-09-11 14:15:16 +10:00
psychedelicious
7fc25e7e01
feat(ui): do not group brush/eraser/rect actions
2024-09-11 14:15:16 +10:00
psychedelicious
9a355c5585
feat(ui): add ctrl+y redo hotkey
2024-09-11 14:15:16 +10:00
psychedelicious
2975ec5467
fix(ui): Layers tab counter only includes active entities
...
Empty and disabled layers are skipped.
2024-09-11 14:15:16 +10:00
psychedelicious
8ab3b938c1
fix(ui): reset canvas doesn't reset initial inpaint mask fully
2024-09-11 14:15:16 +10:00
psychedelicious
f82640b5df
fix(ui): brush size and layer cycle hotkeys conflict
...
Closes #6829
2024-09-10 09:20:19 -04:00
psychedelicious
e3e50abc5a
fix(ui): do not show count on layers tab when no layers
2024-09-10 09:20:19 -04:00
psychedelicious
e5a53be42b
feat(ui): add canvas context menu
...
So far, this includes:
- Save Canvas to Gallery
- Save Bbox to Gallery
- Send Bbox to Regional IP Adapter
- Send Bbox to Global IP Adapter
- Send Bbox to Control Layer
- Send Bbox to Raster Layer
2024-09-10 09:20:19 -04:00
psychedelicious
8d56becf04
fix(ui): retain global canvas manager instance
...
To prevent losing all ephemeral canvas stage when switching tabs, we will refrain from destroying the canvas manager instance when its tab unmounts, and use the existing canvas manager instance on mount, if there is one.
One small change required in `CanvasStageModule` - a `setContainer` method to update the konva stage DOM element.
2024-09-10 09:20:19 -04:00
psychedelicious
dc51ccd9a6
feat(ui): simplify canvas component & hook API
2024-09-10 09:20:19 -04:00
psychedelicious
f5eefedc49
feat(ui): add count to layers tab button
2024-09-10 09:20:19 -04:00
psychedelicious
c5543e42c7
fix(ui): drag image over tab switches to wrong tab
2024-09-10 09:20:19 -04:00
psychedelicious
b6cef9d440
fix(ui): do not clear buffer on escape if filtering/transforming
2024-09-09 23:40:38 +10:00
psychedelicious
ebb92bee26
fix(ui): use reactive entity adapter hooks, fix one-behind issue
2024-09-09 23:40:38 +10:00
psychedelicious
d6c553ca5e
chore(ui): lint
2024-09-09 23:17:41 +10:00
psychedelicious
8b6512cc90
fix(ui): stale rect used in getVisibleRect (partial fix)
...
Need to figure out why the rect isn't reset when the entity is reset. Probably just needs some special handling.
2024-09-09 23:17:41 +10:00
psychedelicious
a6b998c125
feat(ui): move fit bbox to layers button to toolbar
2024-09-09 23:17:41 +10:00
psychedelicious
5275782533
feat(ui): move add layer menu to selected entity action bar
2024-09-09 23:17:41 +10:00
psychedelicious
ede3bd8e64
feat(ui): default canvas state includes bookmarked inpaint mask
2024-09-09 23:17:41 +10:00
psychedelicious
da2583b894
feat(ui): shift+c clears regional guidance
2024-09-09 23:17:41 +10:00
psychedelicious
9210970130
fix(ui): preview not updating after reset
2024-09-09 23:17:41 +10:00
psychedelicious
2a022a811c
feat(ui): selected entity alert
2024-09-09 23:17:41 +10:00
psychedelicious
1a53e8dc5c
feat(ui): swap gallery and layer tabs
2024-09-09 23:17:41 +10:00