psychedelicious
99b683fc1f
tidy(ui): organise canvas object classes
2024-09-08 21:55:26 +10:00
psychedelicious
d5cd50c3ea
feat(ui): split buffer renderer from object renderer
2024-09-08 21:55:26 +10:00
psychedelicious
d7cde0fc23
feat(ui): add spandrel filter
2024-09-08 21:55:26 +10:00
psychedelicious
541605edb4
fix(ui): ignore opacity when transforming
2024-09-08 21:55:26 +10:00
psychedelicious
0194344de2
feat(ui): reset $shouldShowStagedImage when start staging
...
Realized we can use listener middleware to respond to _actions_, as opposed to using the redux store subscription to respond to _state changes_... This might simplify some things.
Using this pattern here.
Only hiccup - there's a TS issue preventing this from being added to the state api module. The `addListener` method has an overloaded type signature and TS cannot extract the overloaded arg type using `Parameters<T>`. As a result, if we try to wrap this, we end up with a broken TS signature for the wrapper method.
2024-09-08 21:55:26 +10:00
psychedelicious
34f3cb3116
fix(ui): progress images shown during staging when show staged images is disabled
2024-09-08 21:55:26 +10:00
psychedelicious
5ab4818eb6
tidy(ui): rename canvas session slice to staging area slice
2024-09-08 21:55:26 +10:00
psychedelicious
60d2541934
chore(ui): lint
2024-09-08 06:16:53 +10:00
psychedelicious
4cb5854990
fix(ui): compositor does not respect layer order
2024-09-08 06:16:53 +10:00
psychedelicious
6f4d3d0395
fix(ui): do not merge disabled layers when merging visible
2024-09-08 06:16:53 +10:00
psychedelicious
2a1bc3e044
fix(ui): do not allow transform when entity is "empty"
2024-09-08 06:16:53 +10:00
psychedelicious
464603e0ea
feat(ui): rework control adapter/ip adapter creation handling
...
- Add selectors to get the default control adapter and ip adapter with model, preferring controlnet over t2i adapter for model
- Add hooks to add each entity type, using the defaults
- Add hooks to add prompts/ip adapters to a regional guidance layer
- Use the defaults in other places where we add control layers or ip adapters (e.g. dnd-triggered entity creation)
2024-09-08 06:16:53 +10:00
psychedelicious
864e471e5a
fix(ui): prevent default browser behaviour on shortcut keys
...
Hopefully this resolves the issue w/ alt as a quick switch for color picker on windows.
2024-09-08 06:16:53 +10:00
psychedelicious
670e054fe0
feat(ui): refactor filter module
...
- Each entity gets its own `CanvasEntityFilterer`
- Add auto-preview feature to filter, debounced by 1000ms leading + trailing
- Fix flash when preview updates
2024-09-08 06:16:53 +10:00
psychedelicious
0abd81ac80
fix(ui): tool/cursor state when filtering or transforming
2024-09-08 06:16:53 +10:00
psychedelicious
d6d27a82a6
fix(ui): aspect ratio preview not updating when changing bbox on canvas
2024-09-08 06:16:53 +10:00
psychedelicious
6b20d1564d
chore(ui): lint
2024-09-06 22:56:24 +10:00
psychedelicious
bf484bc90e
feat(ui): tweak padding on entity group header
2024-09-06 22:56:24 +10:00
psychedelicious
fc58d34d25
feat(ui): use plurals for entity group header hidden tooltip
2024-09-06 22:56:24 +10:00
psychedelicious
c15793b794
feat(ui): move delete entity button down to entity list item
2024-09-06 22:56:24 +10:00
psychedelicious
1e32be827e
feat(ui): add fit bbox to layers
2024-09-06 22:56:24 +10:00
psychedelicious
8422908b70
fix(ui): tidy incorrect component name
2024-09-06 22:56:24 +10:00
psychedelicious
d10ff59f9c
feat(ui): do not allow invoke while transforming or filtering
2024-09-06 22:56:24 +10:00
psychedelicious
eab1f50a6f
feat(ui): do not allow transform, filter or merge while staging
2024-09-06 22:56:24 +10:00
psychedelicious
6e346884e3
fix(ui): prevent stage scale/size from being invalid
2024-09-06 22:56:24 +10:00
psychedelicious
1c9fd1f19a
fix(ui): do not save filtered previews to gallery
2024-09-06 22:56:24 +10:00
psychedelicious
28385d06d1
feat(ui): filter UI layout
2024-09-06 22:56:24 +10:00
psychedelicious
12e6f1be89
feat(ui): revised entity list action bars
...
- Global action bar on top
- Selected Entity action bar below
2024-09-06 22:56:24 +10:00
psychedelicious
e1a66e22e9
feat(ui): fit bbox to stage on canvas reset
2024-09-06 22:56:24 +10:00
psychedelicious
b3569e5c0d
chore(ui): lint
2024-09-06 22:56:24 +10:00
psychedelicious
ce9f17726f
feat(ui): restore aspect ratio preview component
2024-09-06 22:56:24 +10:00
psychedelicious
5f62dc6699
fix(ui): transformer rendered behind layer objects
2024-09-06 22:56:24 +10:00
psychedelicious
07cb12eef7
feat(ui): inverted shift behavior for transformer
2024-09-06 22:56:24 +10:00
psychedelicious
9e9f465552
fix(ui): ignore filters when calculating bbox
2024-09-06 22:56:24 +10:00
psychedelicious
e148cc810b
feat(ui): cancel by destination, not origin
2024-09-06 22:56:24 +10:00
psychedelicious
97aad2ab2f
fix(ui): scaled size not correctly reset when canvas reset
2024-09-06 22:56:24 +10:00
psychedelicious
2b93dbd96a
feat(ui): use black bg when rasterizing control images
2024-09-06 22:56:24 +10:00
psychedelicious
ce4c79a8d9
fix(ui): ignore Konva filters when previewing filter
2024-09-06 22:56:24 +10:00
psychedelicious
151b4efd3f
fix(ui): filter preview accidentally committed to layer
2024-09-06 22:56:24 +10:00
psychedelicious
16806e5d8d
feat(ui): improved transparency effect
...
Use the min of each pixel's alpha value and lightness for the output alpha. This prevents artifacts when using the transparency effect, especially with non-black pixels with low alpha.
2024-09-06 22:56:24 +10:00
psychedelicious
029158ef3a
fix(ui): save to gallery uses auto-add board
2024-09-06 22:56:24 +10:00
psychedelicious
96b74f4a79
fix(ui): cancel transform/filter when deleting entity
2024-09-06 22:56:24 +10:00
psychedelicious
b1e85f8b60
chore(ui): lint
2024-09-06 22:56:24 +10:00
psychedelicious
aa418f0aba
feat(ui): iterate on state flow and rendering 2
...
- Rely on redux + reselect more
- Remove all nanostores that simply "mirrored" redux state in favor of direct subscriptions to redux store
- Add abstractions for creating redux subs and running selectors
- Add `initialize` method to CanvasModuleBase, for post-instantiation tasks
- Reduce local caching of state in modules to a minimum
2024-09-06 22:56:24 +10:00
psychedelicious
8b747b022b
feat(ui): iterate on state flow and rendering
2024-09-06 22:56:24 +10:00
psychedelicious
ed4b5dfac3
feat(ui): slight layout change for staging area toolbar
2024-09-06 22:56:24 +10:00
psychedelicious
b189937bc9
feat(ui): clean up adapter API
2024-09-06 22:56:24 +10:00
psychedelicious
e176e48fa3
feat(ui): streamlined state flow
2024-09-06 22:56:24 +10:00
psychedelicious
4931bdace5
fix(ui): handle optimal dimension when resetting canvas
2024-09-06 22:56:24 +10:00
psychedelicious
c3b52a1853
feat(ui): background and staging area modules have own store subscription and render themselves
2024-09-06 22:56:24 +10:00