psychedelicious
27e829b955
feat(ui): move all caching out of redux
...
While we lose the benefit of the caches persisting across reloads, this is a much simpler way to handle things. If we need a persistent cache, we can explore it in the future.
2024-08-23 19:47:01 +10:00
psychedelicious
e03e870d5b
feat(ui): revised rasterization caching
...
- use `stable-hash` to generate stable, non-crypto hashes for cache entries, instead of using deep object comparisons
- use an object to store image name caches
2024-08-23 19:47:01 +10:00
psychedelicious
9465ff450b
feat(ui): revise filter implementation
2024-08-23 19:47:01 +10:00
psychedelicious
92906a9575
fix(ui): add button to delete inpaint mask
2024-08-23 19:47:01 +10:00
psychedelicious
77f206abe4
feat(ui): add contexts/hooks to access entity adapters directly
2024-08-23 19:47:01 +10:00
psychedelicious
44a3f61580
feat(ui): add CanvasManagerProviderGate
...
This context waits to render its children its until the canvas manager is available. Then its children have access to the manager directly via hook.
2024-08-23 19:47:01 +10:00
psychedelicious
0a2afed08b
feat(ui) do not set $canvasManager until ready
2024-08-23 19:47:01 +10:00
psychedelicious
9b3b961105
fix(ui): inpaint mask naming
2024-08-23 19:47:01 +10:00
psychedelicious
9b1828e1aa
feat(ui): efficient canvas compositing
...
Also solves issue of exporting layers at different opacities than what is visible
2024-08-23 19:47:01 +10:00
psychedelicious
5101873f49
feat(ui): allow multiple inpaint masks
...
This is easier than making it a nullable singleton
2024-08-23 19:47:01 +10:00
psychedelicious
c612f18114
fix(ui): missing rasterization cache invalidations
2024-08-23 19:47:01 +10:00
psychedelicious
7e400d876f
feat(ui): iterate on filter UI, flow
2024-08-23 19:47:01 +10:00
psychedelicious
677dddcfc9
fix(ui): rehydration data loss
2024-08-23 19:47:01 +10:00
psychedelicious
0792b9175e
feat(ui): sort log namespaces
2024-08-23 19:47:01 +10:00
psychedelicious
e4829f80af
fix(ui): do not merge arrays by index during rehydration
2024-08-23 19:47:01 +10:00
psychedelicious
bb760f3eb4
fix(ui): clone parsed data during state rehydration
...
Without this, the objects and arrays in `parsed` could be mutated, and the log statment would show the mutated data.
2024-08-23 19:47:01 +10:00
psychedelicious
388c65287b
fix(ui): fix logger filter
...
was accidetnally replacing the filter instead of appending to it.
2024-08-23 19:47:01 +10:00
psychedelicious
12cd41e05c
fix(ui): race condition queue status
...
Sequence of events causing the race condition:
- Enqueue batch
- Invalidate `SessionQueueStatus` tag
- Request updated queue status via HTTP - batch still processing at this point
- Batch completes
- Event emitted saying so
- Optimistically update the queue status cache, it is correct
- HTTP request makes it back and overwrites the optimistic update, indicating the batch is still in progress
FIxed by not invalidating the cache.
2024-08-23 19:47:01 +10:00
psychedelicious
7765c03949
fix(ui): handle opacity for masks
2024-08-23 19:47:01 +10:00
psychedelicious
3daa80c57f
feat(ui): default background to checkerboard
2024-08-23 19:47:01 +10:00
psychedelicious
5dbbef4ebd
feat(ui): clean up logging namespaces, allow skipping namespaces
2024-08-23 19:47:01 +10:00
psychedelicious
db33b3f7b5
chore(ui): bump ui library
2024-08-23 19:47:01 +10:00
psychedelicious
8ffcf2a6be
fix(ui): do not allow drawing if layer disabled
2024-08-23 19:47:01 +10:00
psychedelicious
2e7ae6a07e
fix(ui): stale state causing race conditions & extraneous renders
2024-08-23 19:47:01 +10:00
psychedelicious
fea1711f0c
fix(ui): do not clear buffer when rendering "real" objects
2024-08-23 19:47:01 +10:00
psychedelicious
2a3546db97
tidy(ui): remove "filter" from CanvasImageState
2024-08-23 19:47:01 +10:00
psychedelicious
285c266612
feat(ui): better editable title
2024-08-23 19:47:01 +10:00
psychedelicious
426ad54c53
fix(ui): stroke eraserline
2024-08-23 19:47:01 +10:00
psychedelicious
fc75f7919f
feat(ui): restore transparency effect for control layers
2024-08-23 19:47:01 +10:00
psychedelicious
6c6b1aaff6
feat(ui): use text cursor for entity title
2024-08-23 19:47:01 +10:00
psychedelicious
c319d653ac
tidy(ui): remove extraneous logging in CanvasStateApi
2024-08-23 19:47:01 +10:00
psychedelicious
d887e474e7
feat(ui): better buffer commit logic
2024-08-23 19:47:01 +10:00
psychedelicious
da7b52d6ba
feat(ui): render buffer separately from "real" objects
2024-08-23 19:47:01 +10:00
psychedelicious
b5aa308593
fix(ui): pixelRect should always be integer
2024-08-23 19:47:01 +10:00
psychedelicious
0b7ceb3bb6
fix(ui): only update stage attrs when stage itself is dragged
2024-08-23 19:47:01 +10:00
psychedelicious
3a70cefda2
feat(ui): add line simplification
...
This fixes some awkward issues where line segments stack up.
2024-08-23 19:47:01 +10:00
psychedelicious
4b609251e1
fix(ui): various things listening when they need not listen
2024-08-23 19:47:01 +10:00
psychedelicious
0839eac0f7
feat(ui): layer opacity via caching
2024-08-23 19:47:01 +10:00
psychedelicious
5f2a7feeee
feat(ui): reset view fits all visible objects
2024-08-23 19:47:01 +10:00
psychedelicious
982535eb92
fix(ui): rerenders when changing canvas scale
2024-08-23 19:47:01 +10:00
psychedelicious
0c2b8edc8d
fix(ui): do not render rasterized layer unless renderObjects=true
2024-08-23 19:47:01 +10:00
psychedelicious
f78f4ca25f
feat(ui): revise app layout strategy, add interaction scopes for hotkeys
2024-08-23 19:47:01 +10:00
psychedelicious
d6b3e6c07d
feat(ui): tweak mask patterns
2024-08-23 19:47:01 +10:00
psychedelicious
071ff8e74a
fix(ui): dynamic prompts recalcs when presets are loaded
2024-08-23 19:47:01 +10:00
psychedelicious
1ea8aafca1
fix(ui): use style preset prompts correctly
2024-08-23 19:46:05 +10:00
psychedelicious
533dd221f8
fix(ui): discard selected staging image not all other images
2024-08-23 19:46:05 +10:00
psychedelicious
2b325c6683
fix(ui): respect image size in staging preview
2024-08-23 19:46:05 +10:00
psychedelicious
3845b1b3e6
tidy(ui): cleanup after events change
2024-08-23 19:46:05 +10:00
psychedelicious
cea7890a67
feat(ui): move socket event handling out of redux
...
Download events and invocation status events (including progress images) are very frequent. There's no real need for these to pass through redux. Handling them outside redux is a significant performance win - far fewer store subscription calls, far fewer trips through middleware.
All event handling is moved outside middleware. Cleanup of unused actions and listeners to follow.
2024-08-23 19:46:05 +10:00
psychedelicious
c38fe8025d
fix(ui): rebase conflicts
2024-08-23 19:46:05 +10:00
psychedelicious
f1de95349c
fix(ui): update compositing rect when fill changes
2024-08-23 19:46:05 +10:00
psychedelicious
2950775fa7
feat(ui): add canvas background style
2024-08-23 19:46:05 +10:00
psychedelicious
cb293fd7ac
feat(ui): mask layers choose own opacity
2024-08-23 19:46:05 +10:00
psychedelicious
43b3fab6be
feat(ui): mask fill patterns
2024-08-23 19:46:05 +10:00
psychedelicious
d4b0dbce49
build(ui): add vite types to tsconfig
2024-08-23 19:46:05 +10:00
psychedelicious
137b810669
fix(ui): do not smooth pixel data when using eyeDropper
2024-08-23 19:46:05 +10:00
psychedelicious
c172657324
tidy(ui): tool components & translations
2024-08-23 19:46:05 +10:00
psychedelicious
97c966b04f
feat(ui): rough out eyedropper tool
...
It's a bit slow bc we are converting the stage to canvas on every mouse move. Also need to improve the visual but it works.
2024-08-23 19:46:05 +10:00
psychedelicious
7178fc6253
fix(ui): ip adapters work
2024-08-23 19:46:05 +10:00
psychedelicious
4adb2eabf5
feat(ui): rename layers
2024-08-23 19:46:05 +10:00
psychedelicious
9f2c815e13
feat(ui): revise entity menus
2024-08-23 19:46:05 +10:00
psychedelicious
1435557d1d
feat(ui): split control layers from raster layers for UI and internal state, same rendering as raster layers
2024-08-23 19:46:05 +10:00
psychedelicious
96abf687f6
feat(ui): implement cache for image rasterization, rip out some old controladapters code
2024-08-23 19:46:05 +10:00
psychedelicious
636d9a7209
feat(ui, app): use layer as control (wip)
2024-08-23 19:46:05 +10:00
psychedelicious
3b36eb0223
feat(ui): add contextmenu for canvas entities
2024-08-23 19:46:05 +10:00
psychedelicious
388c97bff0
feat(ui): more better logging & naming
2024-08-23 19:46:05 +10:00
psychedelicious
b1cb018695
feat(ui): better logging w/ path
2024-08-23 19:46:05 +10:00
psychedelicious
df78dd7953
feat(ui): always show marks on canvas scale slider
2024-08-23 19:46:05 +10:00
psychedelicious
0dc344a22e
fix(ui): do not import button from chakra
2024-08-23 19:46:05 +10:00
psychedelicious
350d7f6f14
fix(ui): scaled bbox preview
2024-08-23 19:46:05 +10:00
psychedelicious
11059ee2d4
feat(ui): tidy up atoms
2024-08-23 19:46:05 +10:00
psychedelicious
c90d3f3bb9
feat(ui): convert all my pubsubs to atoms
...
its the same but better
2024-08-23 19:46:05 +10:00
psychedelicious
7f6d439fd1
feat(ui): add trnalsation
2024-08-23 19:46:05 +10:00
psychedelicious
783a78f069
fix(ui): give up on thumbnail loading, causes flash during transformer
2024-08-23 19:46:05 +10:00
psychedelicious
0ff031950d
fix(ui): depth anything v2
2024-08-23 19:46:05 +10:00
psychedelicious
d7e8f3d756
tidy(ui): remove unused code, comments
2024-08-23 19:46:05 +10:00
psychedelicious
4668ea449b
fix(ui): staging area works
2024-08-23 19:46:05 +10:00
psychedelicious
30d318d021
feat(nodes): temp disable canvas output crop
2024-08-23 19:46:05 +10:00
psychedelicious
de96f97e5f
fix(ui): max scale 1 when reset view
2024-08-23 19:46:05 +10:00
psychedelicious
57c0a2dfb1
feat(ui): better scale changer component, reset view functionality
2024-08-23 19:46:05 +10:00
psychedelicious
cd4e464bde
fix(ui): img2img
2024-08-23 19:46:05 +10:00
psychedelicious
49e48c3eb7
feat(ui): add manual scale controls
2024-08-23 19:46:05 +10:00
psychedelicious
edd3b3bce9
fix(ui): do not await clearBuffer
2024-08-23 19:46:04 +10:00
psychedelicious
f8bfb66108
feat(ui): dnd image into layer
2024-08-23 19:46:04 +10:00
psychedelicious
3b6a76cbf3
fix(ui): do not await commitBuffer
2024-08-23 19:46:04 +10:00
psychedelicious
e0b60e4320
fix(ui): properly destroy entities in manager cleanup
2024-08-23 19:46:04 +10:00
psychedelicious
2159319035
tidy(ui): clearer component names for regional guidance
2024-08-23 19:46:04 +10:00
psychedelicious
b170fc232e
tidy(ui): clearer component names for ip adapter
2024-08-23 19:46:04 +10:00
psychedelicious
594da60f2f
tidy(ui): clearer component names for inpaint mask
2024-08-23 19:46:04 +10:00
psychedelicious
6a432f6518
tidy(ui): clearer component names for control adapters
2024-08-23 19:46:04 +10:00
psychedelicious
eb8eacfec6
feat(ui): simplify canvas list item headers
2024-08-23 19:46:04 +10:00
psychedelicious
c8d04d42e2
fix(ui): ip adapter list item
2024-08-23 19:46:04 +10:00
psychedelicious
d39c9de81e
tidy(ui): clean up unused logic
2024-08-23 19:46:04 +10:00
psychedelicious
a27d39b9ff
feat(ui): clean up state, add mutex for image loading, add thumbnail loading
2024-08-23 19:46:04 +10:00
psychedelicious
6b385614f0
chore(ui): add async-mutex
dep
2024-08-23 19:46:04 +10:00
psychedelicious
3ae7250ef7
feat(ui): txt2img, img2img, inpaint & outpaint working
2024-08-23 19:46:04 +10:00
psychedelicious
a42d0ce1d2
feat(ui): no padding on transformer outlines
2024-08-23 19:46:04 +10:00
psychedelicious
d9131f7563
feat(ui): restore object count to layer titles
2024-08-23 19:46:04 +10:00
psychedelicious
bdce958f29
tidy(ui): "useIsEntitySelected" -> "useEntityIsSelected"
2024-08-23 19:46:04 +10:00
psychedelicious
3c86f1e979
tidy(ui): move transformer statics into class
2024-08-23 19:46:04 +10:00