psychedelicious
0ea88dc170
chore: release v4.2.9.dev9
2024-08-30 22:24:08 +10:00
psychedelicious
8369826d22
fix(ui): entity opacity number input focus prevents slider from opening
2024-08-30 22:20:49 +10:00
psychedelicious
0e354f5164
feat(ui): add merge visible for raster and inpaint mask layers
...
I don't think it makes sense to merge control layers or regional guidance layers because they have additional state.
2024-08-30 22:20:49 +10:00
psychedelicious
41f2ee2633
fix(ui): save to gallery rect too large
...
Was including all layer types in the rect - only want the raster layers.
2024-08-30 22:20:49 +10:00
psychedelicious
4e74006c5f
fix(ui): canvasToBlob not raising error correctly
2024-08-30 22:20:49 +10:00
psychedelicious
48edb6e023
feat(ui): add save to gallery button
2024-08-30 22:20:49 +10:00
psychedelicious
aeae6af0a1
fix(ui): fix getRectUnion util, add some tests
2024-08-30 22:20:49 +10:00
psychedelicious
ab11d9af8e
fix(ui): modals not staying open
...
TBH not sure exactly why this broke. Fixed by rollback back the use of a render prop in favor of global state. Also revised the API of `useBoolean` and `buildUseBoolean`.
2024-08-30 22:20:49 +10:00
psychedelicious
2e84327ca4
fix(ui): correct labels for generation tab origin
2024-08-30 22:20:49 +10:00
psychedelicious
fa6842121c
fix(ui): context menu doesn't work for new entities
...
I do not understand why this fixes the issue, doesn't seem like it should. But it does.
2024-08-30 22:20:49 +10:00
psychedelicious
c402aa397d
tidy(ui): organise tool module
2024-08-30 22:20:49 +10:00
psychedelicious
a58c8adc38
fix(ui): staging hotkeys enabled at wrong times
2024-08-30 22:20:49 +10:00
psychedelicious
d43e2d690e
fix(ui): incorrect batch origin preventing progress/staging
2024-08-30 22:20:49 +10:00
psychedelicious
284f768810
feat(ui): restore minimal HUD
2024-08-30 22:20:49 +10:00
psychedelicious
e933d1ae2b
feat(ui): remove unused asPreview for StageComponent
2024-08-30 22:20:49 +10:00
psychedelicious
1e134de771
chore(ui): lint
2024-08-30 22:20:49 +10:00
psychedelicious
29c47c8be5
chore: release v4.2.9.dev8
2024-08-30 22:20:49 +10:00
psychedelicious
e1122c541d
feat(ui): revise generation mode logic
...
- Canvas generation mode is replace with a boolean `sendToCanvas` flag. When off, images generated on the canvas go to the gallery. When on, they get added to the staging area.
- When an image result is received, if its destination is the canvas, staging is automatically started.
- Updated queue list to show the destination column.
- Added `IconSwitch` component to represent binary choices, used for the new `sendToCanvas` flag and image viewer toggle.
- Remove the queue actions menu in `QueueControls`. Move the queue count badge to the cancel button.
- Redo layout of `QueueControls` to prevent duplicate queue count badges.
- Fix issue where gallery and options panels could show thru transparent regions of queue tab.
- Disable panel hotkeys when on mm/queue tabs.
2024-08-30 22:20:49 +10:00
psychedelicious
2f81d1ac83
chore(ui): typegen
2024-08-30 22:20:49 +10:00
psychedelicious
56fbe751db
feat(app): add destination column to session_queue
...
The frontend needs to know where queue items came from (i.e. which tab), and where results are going to (i.e. send images to gallery or canvas). The `origin` column is not quite enough to represent this cleanly.
A `destination` column provides the frontend what it needs to handle incoming generations.
2024-08-30 22:20:49 +10:00
psychedelicious
93f1d67fbf
tidy(ui): ViewerToggleMenu -> ViewerToggle
2024-08-30 22:20:49 +10:00
psychedelicious
9467b937ff
feat(ui): alt quick switches to color picker
2024-08-30 22:20:49 +10:00
psychedelicious
4242e6e6c2
feat(ui): tweak add entity button layout
2024-08-30 22:20:49 +10:00
psychedelicious
9b39452b3e
feat(ui): restore context menu for entity list
2024-08-30 22:20:49 +10:00
psychedelicious
85b23784cf
feat(ui): add delete button to each layer
2024-08-30 22:20:49 +10:00
psychedelicious
085cc82926
feat(ui): add + buttons to entity categories
2024-08-30 22:20:49 +10:00
psychedelicious
0098c33f81
feat(ui): tweak brush fill UI
2024-08-30 22:20:49 +10:00
psychedelicious
292e00ab68
feat(ui): do not select layer on staging accept
2024-08-30 22:20:49 +10:00
psychedelicious
6c1fb2d06e
fix(ui): more fiddly queue count layout stuff
2024-08-30 22:20:49 +10:00
psychedelicious
d60605fcd8
fix(ui): floating params panel invoke button loading state
2024-08-30 22:20:49 +10:00
psychedelicious
38ed720ff2
feat(ui): move canvas undo/redo to hook
2024-08-30 22:20:49 +10:00
psychedelicious
22203b8eb0
fix(ui): queue count badge positioning
2024-08-30 22:20:49 +10:00
psychedelicious
cf5fa792a1
fix(ui): add node cmdk only enabled on workflows tab
2024-08-30 22:20:49 +10:00
psychedelicious
c636633a8e
chore: release v4.2.9.dev7
2024-08-30 22:20:49 +10:00
psychedelicious
55fe1ebc53
fix(ui): pending node connection stuck
2024-08-30 22:20:49 +10:00
psychedelicious
3c2fa6b475
chore(ui): lint
2024-08-30 22:20:49 +10:00
psychedelicious
9b927de2e0
chore: release v4.2.9.dev6
2024-08-30 22:20:49 +10:00
psychedelicious
6a62854e7d
feat(ui): migrate add node popover to cmdk
...
Put this together as a way to figure out the library before moving on to the full app cmdk. Works great.
2024-08-30 22:20:49 +10:00
psychedelicious
312093cbb0
fix(ui): schema parsing now that node_pack is guaranteed to be present
2024-08-30 22:20:49 +10:00
psychedelicious
06fe14e1fc
chore(ui): typegen
2024-08-30 22:20:49 +10:00
psychedelicious
1b54e58726
fix(app): node_pack not added to openapi schema correctly
2024-08-30 22:20:49 +10:00
psychedelicious
219d7c9611
fix(ui): unnecessary z-index on invoke button
2024-08-30 22:20:49 +10:00
psychedelicious
9f742a669e
feat(ui): split settings modal
2024-08-30 22:20:49 +10:00
psychedelicious
41e324fd51
perf(ui): disable useInert on modals
...
This hook forcibly updates _all_ portals with `data-hidden=true` when the modal opens - then reverts it when the modal closes. It's intended to help screen readers. Unfortunately, this absolutely tanks performance because we have many portals. React needs to do alot of layout calculations (not re-renders).
IMO this behaviour is a bug in chakra. The modals which generated the portals are hidden by default, so this data attr should really be set by default. Dunno why it isn't.
2024-08-30 22:20:36 +10:00
psychedelicious
ce55a96125
feat(ui): fix queue item count badge positioning
...
Previously this badge, floating over the queue menu button next to the invoke button, was rendered within the existing layout. When I initially positioned it, the app layout interfered - it would extend into an area reserved for a flex gap, which cut off the badge.
As a (bad) workaround, I had shifted the whole app down a few pixels to make room for it. What I should have done is what I've done in this commit - render the badge in a portal to take it out of the layout so we don't need that extra vertical padding.
Sleekified some styling a bit too.
2024-08-30 22:20:36 +10:00
psychedelicious
64e60a7fde
fix(ui): transparency effect not updating
2024-08-30 22:20:36 +10:00
psychedelicious
972f03960a
feat(ui): tidy canvas toolbar buttons
2024-08-30 22:20:36 +10:00
psychedelicious
5a403f087d
feat(ui): revised viewer toggle @joshistoast
2024-08-30 22:20:36 +10:00
psychedelicious
fe59d7f3b0
fix(ui): opacity reset value incorrect
2024-08-30 22:20:36 +10:00
psychedelicious
b2b2b73aed
revert(ui): roll back flip, doesn't work with rotate yet
2024-08-30 22:20:36 +10:00
psychedelicious
20b563c4cb
fix(ui): disable opacity slider fully when no valid entity selected
2024-08-30 22:20:36 +10:00
psychedelicious
263a0ef5b4
fix(ui): layer preview image sometimes not rendering
...
The canvas size was dynamic based on the container div's size. When the div was hidden (e.g. when selecting another tab), the container's effective size is 0. This resulted in the preview image canvas being drawn at a scale of 0.
Fixed by using an absolute size for the canvas container.
2024-08-30 22:20:36 +10:00
psychedelicious
e8723b7cd3
feat(ui): tweak regional prompt box styles
2024-08-30 22:20:36 +10:00
psychedelicious
03e05b2068
feat(ui): tweak enabled/locked toggle styles
2024-08-30 22:20:36 +10:00
psychedelicious
6c0482a71d
feat(ui): tweak filter styling
2024-08-30 22:20:36 +10:00
psychedelicious
e6153e6fa4
feat(ui): add flip & reset to transform
2024-08-30 22:20:36 +10:00
psychedelicious
6d209c6cc3
tidy(ui): use helper to sync scaled bbox size on model change
2024-08-30 22:20:36 +10:00
psychedelicious
beb4e823dc
fix(ui): randomize seed toggle linked to prompt concat
2024-08-30 22:20:36 +10:00
psychedelicious
61ba4c606b
chore: release v4.2.9.dev5
2024-08-30 22:20:36 +10:00
psychedelicious
af840cedf3
chore(ui): lint
2024-08-30 22:20:36 +10:00
psychedelicious
0bf0bca03f
feat(ui): generalize mask fill, add to action bar
2024-08-30 22:20:36 +10:00
psychedelicious
e470eaf8f3
feat(ui): implement interaction locking on layers
2024-08-30 22:20:36 +10:00
psychedelicious
377db3f726
feat(ui): iterate on layer actions
...
- Add lock toggle
- Tweak lock and enabled styles
- Update entity list action bar w/ delete & delete all
- Move add layer menu to action bar
- Adjust opacity slider style
2024-08-30 22:20:36 +10:00
psychedelicious
77f020a997
feat(ui): collapsible entity groups
2024-08-30 22:20:36 +10:00
psychedelicious
34e2eda625
tidy(ui): rename some classes to be consistent
2024-08-30 22:20:36 +10:00
psychedelicious
e1d559db69
feat(ui): tuned canvas undo/redo
...
- Throttle pushing to history for actions of the same type, starting with 1000ms throttle.
- History has a limit of 64 items, same as workflow editor
- Add clear history button
- Fix an issue where entity transformers would reset the entity state when the entity is fully transparent, resetting the redo stack. This could happen when you undo to the starting state of a layer
2024-08-30 22:20:36 +10:00
psychedelicious
23a98e2ed6
tidy(ui): move all undoable reducers back to canvas slice
2024-08-30 22:20:36 +10:00
psychedelicious
fe3b2ed357
fix(ui): dnd image count
2024-08-30 22:20:36 +10:00
psychedelicious
eedf81dcc5
fix(ui): canvas entity opacity scale
2024-08-30 22:20:36 +10:00
psychedelicious
dbef1a9e06
perf(ui): optimize all selectors 2
...
Mostly selector optimization. Still a few places to tidy up but I'll get to that later.
2024-08-30 22:20:36 +10:00
psychedelicious
a41406ca9a
perf(ui): optimize all selectors 1
...
I learned that the inline selector syntax recreates the selector function on every render:
```ts
const val = useAppSelector((s) => s.slice.val)
```
Not good! Better is to create a selector outside the function and use it. Doing that for all selectors now, most of the way through now. Feels snappier.
2024-08-30 22:20:12 +10:00
psychedelicious
f126a61f66
feat(ui): rough out undo/redo on canvas
2024-08-30 22:20:12 +10:00
psychedelicious
89c79276f3
chore: release v4.2.9.dev4
...
Canvas dev build.
2024-08-30 22:20:12 +10:00
psychedelicious
423e463b95
fix(ui): handle error from internal konva method
...
We are dipping into konva's private API for preview images and it appears to be unsafe (got an error once). Wrapped in a try/catch.
2024-08-30 22:20:12 +10:00
psychedelicious
52202e45de
feat(ui): split out loras state from canvas rendering state
2024-08-30 22:20:12 +10:00
psychedelicious
100832c66d
feat(ui): split out session state from canvas rendering state
2024-08-30 22:20:12 +10:00
psychedelicious
a58b91b221
feat(ui): split out settings state from canvas rendering state
2024-08-30 22:20:12 +10:00
psychedelicious
3af6d79852
feat(ui): split out tool state from canvas rendering state
2024-08-30 22:20:12 +10:00
psychedelicious
1303e18e93
feat(ui): split out params/compositing state from canvas rendering state
...
First step to restoring undo/redo - the undoable state must be in its own slice. So params and settings must be isolated.
2024-08-30 22:20:12 +10:00
psychedelicious
301da97670
feat(ui): add CanvasModuleBase class to standardize canvas APIs
...
I did this ages ago but undid it for some reason, not sure why. Caught a few issues related to subscriptions.
2024-08-30 22:20:12 +10:00
psychedelicious
17e76981bb
feat(ui): move selected tool and tool buffer out of redux
...
This ephemeral state can live in the canvas classes.
2024-08-30 22:20:12 +10:00
psychedelicious
9c1732e2bb
feat(ui): move ephemeral state into canvas classes
...
Things like `$lastCursorPos` are now created within the canvas drawing classes. Consumers in react access them via `useCanvasManager`.
For example:
```tsx
const canvasManager = useCanvasManager();
const lastCursorPos = useStore(canvasManager.stateApi.$lastCursorPos);
```
2024-08-30 22:20:12 +10:00
psychedelicious
a3179e7a3f
feat(ui): normalize all actions to accept an entityIdentifier
...
Previously, canvas actions specific to an entity type only needed the id of that entity type. This allowed you to pass in the id of an entity of the wrong type.
All actions for a specific entity now take a full entity identifier, and the entity identifier type can be narrowed.
`selectEntity` and `selectEntityOrThrow` now need a full entity identifier, and narrow their return values to a specific entity type _if_ the entity identifier is narrowed.
The types for canvas entities are updated with optional type parameters for this purpose.
All reducers, actions and components have been updated.
2024-08-30 22:20:12 +10:00
psychedelicious
f86b50d18a
feat(ui): move events into modules who care about them
2024-08-30 22:20:12 +10:00
psychedelicious
307885f505
fix(ui): color picker resets brush opacity
2024-08-30 22:20:12 +10:00
psychedelicious
4b49c1dd6b
fix(ui): scaled bbox loses sync
2024-08-30 22:20:12 +10:00
psychedelicious
f917cefa84
feat(ui): add context menu to entity list
2024-08-30 22:20:12 +10:00
psychedelicious
bea98438fc
chore(ui): bump @invoke-ai/ui-library
2024-08-30 22:20:12 +10:00
psychedelicious
17d3275086
fix(ui): missing vae precision in graph builders
2024-08-30 22:20:12 +10:00
psychedelicious
059b7a0fcf
chore: release v4.2.9.dev3
...
Instead of using dates, just going to increment.
2024-08-30 22:20:12 +10:00
psychedelicious
05d3a989f6
feat(ui): use new Result utils for enqueueing
2024-08-30 22:20:12 +10:00
psychedelicious
590ae70c12
fix(ui): graph building issue w/ controlnet
2024-08-30 22:20:12 +10:00
psychedelicious
5240ec6e6f
feat(ui): add Result type & helpers
...
Wrappers to capture errors and turn into results:
- `withResult` wraps a sync function
- `withResultAsync` wraps an async function
Comments, tests.
2024-08-30 22:20:12 +10:00
psychedelicious
04772b642c
chore: release v4.2.9.dev20240824
2024-08-30 22:20:12 +10:00
psychedelicious
65f6cb416f
fix(ui): lint & fix issues with adding regional ip adapters
2024-08-30 22:20:12 +10:00
psychedelicious
24c2028739
feat(ui): add knipignore tag
...
I'm not ready to delete some things but still want to build the app.
2024-08-30 22:20:12 +10:00
psychedelicious
b0db9a3f56
feat(ui): duplicate entity
2024-08-30 22:20:12 +10:00
psychedelicious
3ea83574c0
feat(ui): autocomplete on getPrefixeId
2024-08-30 22:20:12 +10:00
psychedelicious
05252a9bfc
feat(ui): paste canvas gens back on source in generate mode
2024-08-30 22:20:12 +10:00
psychedelicious
ce854f086e
chore(ui): typegen
2024-08-30 22:20:12 +10:00
psychedelicious
ff0c16978c
feat(nodes): CanvasV2MaskAndCropInvocation can paste generated image back on source
...
This is needed for `Generate` mode.
2024-08-30 22:20:12 +10:00
psychedelicious
41cc650031
fix(ui): extraneous entity preview updates
2024-08-30 22:20:12 +10:00
psychedelicious
c3f7554053
fix(ui): newly-added entities are selected
2024-08-30 22:20:12 +10:00
psychedelicious
3f597a1c60
feat(ui): add crosshair to color picker
2024-08-30 22:20:12 +10:00
psychedelicious
ccffdf1878
fix(ui): color picker ignores alpha
2024-08-30 22:20:12 +10:00
psychedelicious
474089e892
fix(ui): calculate renderable entities correctly in tool module
2024-08-30 22:20:12 +10:00
psychedelicious
778e8ad161
feat(ui): better color picker
2024-08-30 22:20:12 +10:00
psychedelicious
9f29892c24
feat(ui): colored mask preview image
2024-08-30 22:20:12 +10:00
psychedelicious
56fd46a069
fix(ui): new rectangles don't trigger rerender
2024-08-30 22:20:12 +10:00
psychedelicious
579e594861
chore: bump version v4.2.9.dev20240823
2024-08-30 22:20:12 +10:00
psychedelicious
af3440fbe3
feat(ui): disable most interaction while filtering
2024-08-30 22:19:54 +10:00
psychedelicious
cc101f55c4
fix(ui): filter preview offset
2024-08-30 22:19:54 +10:00
psychedelicious
ef1adf07f5
feat(ui): tweak layout of staging area toolbar
2024-08-30 22:19:54 +10:00
psychedelicious
625c05d9be
chore(ui): typegen
2024-08-30 22:19:54 +10:00
psychedelicious
8ad3d8f738
tidy(app): clean up app changes for canvas v2
2024-08-30 22:19:54 +10:00
psychedelicious
4759875733
feat(ui): use singleton for clear q confirm dialog
2024-08-30 22:19:54 +10:00
psychedelicious
768e6a3c55
fix(ui): rip out broken recall logic, NO TS ERRORS
2024-08-30 22:19:54 +10:00
psychedelicious
45bd85c039
chore(ui): lint
2024-08-30 22:19:54 +10:00
psychedelicious
9f94c5a8bd
fix(ui): staging area interaction scopes
2024-08-30 22:19:54 +10:00
psychedelicious
23fdd65961
fix(ui): staging area actions
2024-08-30 22:19:54 +10:00
psychedelicious
8034195c30
tidy(ui): more cleanup
2024-08-30 22:19:54 +10:00
psychedelicious
08761127c9
fix(ui): upscale tab graph
2024-08-30 22:19:54 +10:00
psychedelicious
4a10010b6c
fix(ui): sdxl graph builder
2024-08-30 22:19:54 +10:00
psychedelicious
14cc5e2453
fix(ui): select next entity in the list when deleting
2024-08-30 22:19:54 +10:00
psychedelicious
3d87adea60
feat(ui): fix delete layer hotkey
2024-08-30 22:19:54 +10:00
psychedelicious
36e8232ab6
tidy(ui): "eye dropper" -> "color picker"
2024-08-30 22:19:54 +10:00
psychedelicious
72722a73be
tidy(ui): regional guidance buttons
2024-08-30 22:19:54 +10:00
psychedelicious
a09aa232a9
feat(ui): update entity list menu
2024-08-30 22:19:54 +10:00
psychedelicious
7ae8b64699
feat(ui): add log debug button
2024-08-30 22:19:54 +10:00
psychedelicious
60e0d17f34
chore(ui): lint
2024-08-30 22:19:54 +10:00
psychedelicious
bf8bef2f00
chore(ui): prettier
2024-08-30 22:19:54 +10:00
psychedelicious
b586d67bac
chore(ui): eslint
2024-08-30 22:19:54 +10:00
psychedelicious
31e5e5af13
tidy(ui): remove unused stuff 4
2024-08-30 22:19:35 +10:00
psychedelicious
94871e88cd
tidy(ui): remove unused stuff 3
2024-08-30 22:18:50 +10:00
psychedelicious
00e56d1968
tidy(ui): remove unused pkg @chakra-ui/react-use-size
2024-08-30 22:18:50 +10:00
psychedelicious
43672a53ab
feat(ui): revise graph building for control layers, fix issues w/ invocation complete events
2024-08-30 22:18:50 +10:00
psychedelicious
45097ed2a6
feat(ui): use unique id for metadata in Graph class
2024-08-30 22:18:50 +10:00
psychedelicious
871f6b9f95
tidy(ui): remove unused stuff 2
2024-08-30 22:18:50 +10:00
psychedelicious
e6476e3c75
tidy(ui): remove unused stuff
2024-08-30 22:18:50 +10:00
psychedelicious
ac9b5f246d
tidy(ui): reduce use of parseify util
2024-08-30 22:18:50 +10:00
psychedelicious
8bc72a2744
feat(ui): refine canvas entity list items & menus
2024-08-30 22:18:50 +10:00
psychedelicious
f76f1d89d7
feat(ui): canvas layer preview, revised reactivity for adapters
2024-08-30 22:18:50 +10:00
psychedelicious
7b54762b5e
feat(ui): add SyncableMap
...
Can be used with useSyncExternal store to make a `Map` reactive.
2024-08-30 22:18:50 +10:00
psychedelicious
bc6faf6a6d
tidy(ui): removed unused transform methods from canvasmanager
2024-08-30 22:18:50 +10:00
psychedelicious
e7ae1ac9b2
feat(ui): transform tool ux
2024-08-30 22:18:50 +10:00
psychedelicious
dcb436adb1
feat(ui): rough out canvas mode
2024-08-30 22:18:50 +10:00
psychedelicious
80f0441905
feat(ui): add canvas autosave checkbox
2024-08-30 22:18:50 +10:00
psychedelicious
8cde803654
fix(ui): memory leak when getting image DTO
...
must unsubscribe!
2024-08-30 22:18:50 +10:00
psychedelicious
62445680ad
feat(ui): rework settings menu
2024-08-30 22:18:50 +10:00
psychedelicious
7685e36886
feat(ui): no entities fallback buttons
2024-08-30 22:18:50 +10:00
psychedelicious
4c196844bd
perf(ui): optimize gallery image delete button rendering
2024-08-30 22:18:50 +10:00
psychedelicious
b36159bda4
feat(ui): remove "solid" background option
2024-08-30 22:18:50 +10:00
psychedelicious
b02948d49a
tidy(ui): organise files and classes
2024-08-30 22:18:50 +10:00
psychedelicious
f442d206be
tidy(ui): abstract compositing logic to module
2024-08-30 22:18:50 +10:00
psychedelicious
21ed6bccd8
fix(ui): fix canvas cache property access
2024-08-30 22:18:50 +10:00
psychedelicious
143ce7f00b
tidy(ui): clean up CanvasFilter class
2024-08-30 22:18:50 +10:00
psychedelicious
28e716139b
tidy(ui): clean up a few bits and bobs
2024-08-30 22:18:50 +10:00
psychedelicious
80a7c0c521
tidy(ui): abstract canvas rendering logic to module
2024-08-30 22:18:50 +10:00
psychedelicious
255ad3d2ad
tidy(ui): abstract caching logic to module
2024-08-30 22:18:50 +10:00
psychedelicious
089bc9c7d8
tidy(ui): abstract worker logic to module
2024-08-30 22:18:50 +10:00
psychedelicious
ee7dafaf57
tidy(ui): abstract stage logic into module
2024-08-30 22:18:50 +10:00
psychedelicious
516ecdb0ee
feat(ui): add entity group hiding
2024-08-30 22:18:50 +10:00
psychedelicious
b77675f74d
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-30 22:18:50 +10:00
psychedelicious
eea5c8efad
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-30 22:18:50 +10:00
psychedelicious
09f1aac3a3
feat(ui): revise filter implementation
2024-08-30 22:18:50 +10:00
psychedelicious
dd1dcb5eba
fix(ui): add button to delete inpaint mask
2024-08-30 22:18:50 +10:00
psychedelicious
757bd62ebe
feat(ui): add contexts/hooks to access entity adapters directly
2024-08-30 22:18:50 +10:00
psychedelicious
5a3127949b
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-30 22:18:50 +10:00
psychedelicious
ced934c0a3
feat(ui) do not set $canvasManager until ready
2024-08-30 22:18:50 +10:00
psychedelicious
c32445084f
fix(ui): inpaint mask naming
2024-08-30 22:18:50 +10:00
psychedelicious
9f1af0cdaa
feat(ui): efficient canvas compositing
...
Also solves issue of exporting layers at different opacities than what is visible
2024-08-30 22:18:50 +10:00
psychedelicious
0d26cab400
feat(ui): allow multiple inpaint masks
...
This is easier than making it a nullable singleton
2024-08-30 22:18:50 +10:00
psychedelicious
c8de2da3fc
fix(ui): missing rasterization cache invalidations
2024-08-30 22:18:50 +10:00
psychedelicious
ca089a105e
feat(ui): iterate on filter UI, flow
2024-08-30 22:18:50 +10:00
psychedelicious
22000918d6
fix(ui): rehydration data loss
2024-08-30 22:18:50 +10:00
psychedelicious
6affc28da4
feat(ui): sort log namespaces
2024-08-30 22:18:50 +10:00
psychedelicious
f659995e1c
fix(ui): do not merge arrays by index during rehydration
2024-08-30 22:18:50 +10:00
psychedelicious
56fb3e738f
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-30 22:18:50 +10:00
psychedelicious
56d450a907
fix(ui): fix logger filter
...
was accidetnally replacing the filter instead of appending to it.
2024-08-30 22:18:50 +10:00
psychedelicious
d3cdcef36b
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-30 22:18:50 +10:00
psychedelicious
19434e73b4
fix(ui): handle opacity for masks
2024-08-30 22:18:50 +10:00
psychedelicious
f7b3df9583
feat(ui): default background to checkerboard
2024-08-30 22:18:50 +10:00
psychedelicious
4da4b3bd50
feat(ui): clean up logging namespaces, allow skipping namespaces
2024-08-30 22:18:50 +10:00
psychedelicious
e83513882a
chore(ui): bump ui library
2024-08-30 22:18:50 +10:00
psychedelicious
5adc784b6b
fix(ui): do not allow drawing if layer disabled
2024-08-30 22:18:50 +10:00
psychedelicious
f177513523
fix(ui): stale state causing race conditions & extraneous renders
2024-08-30 22:18:50 +10:00
psychedelicious
8ebcf79b1a
fix(ui): do not clear buffer when rendering "real" objects
2024-08-30 22:18:50 +10:00
psychedelicious
c7e5f24704
tidy(ui): remove "filter" from CanvasImageState
2024-08-30 22:18:50 +10:00
psychedelicious
ab3eb32ec8
feat(ui): better editable title
2024-08-30 22:18:50 +10:00
psychedelicious
d76509e5cb
fix(ui): stroke eraserline
2024-08-30 22:18:50 +10:00
psychedelicious
04f56aab82
feat(ui): restore transparency effect for control layers
2024-08-30 22:18:50 +10:00
psychedelicious
c7913cbbbb
feat(ui): use text cursor for entity title
2024-08-30 22:18:50 +10:00
psychedelicious
0556468518
tidy(ui): remove extraneous logging in CanvasStateApi
2024-08-30 22:18:49 +10:00
psychedelicious
1c7ef827b6
feat(ui): better buffer commit logic
2024-08-30 22:18:49 +10:00
psychedelicious
5720ed4d64
feat(ui): render buffer separately from "real" objects
2024-08-30 22:18:49 +10:00
psychedelicious
7f05af4a68
fix(ui): pixelRect should always be integer
2024-08-30 22:18:49 +10:00
psychedelicious
6db615ed5a
fix(ui): only update stage attrs when stage itself is dragged
2024-08-30 22:18:49 +10:00
psychedelicious
465f020c86
feat(ui): add line simplification
...
This fixes some awkward issues where line segments stack up.
2024-08-30 22:18:49 +10:00
psychedelicious
f05b77088f
fix(ui): various things listening when they need not listen
2024-08-30 22:18:49 +10:00
psychedelicious
80a5abf1ad
feat(ui): layer opacity via caching
2024-08-30 22:18:49 +10:00
psychedelicious
7a6e8de60f
feat(ui): reset view fits all visible objects
2024-08-30 22:18:49 +10:00
psychedelicious
8364fa74cf
fix(ui): rerenders when changing canvas scale
2024-08-30 22:18:49 +10:00
psychedelicious
14f4566dd0
fix(ui): do not render rasterized layer unless renderObjects=true
2024-08-30 22:18:49 +10:00
psychedelicious
6145378923
feat(ui): revise app layout strategy, add interaction scopes for hotkeys
2024-08-30 22:18:49 +10:00
psychedelicious
68e2606427
feat(ui): tweak mask patterns
2024-08-30 22:18:49 +10:00
psychedelicious
0f3eb04d1a
fix(ui): dynamic prompts recalcs when presets are loaded
2024-08-30 22:18:49 +10:00
psychedelicious
4a355323b2
fix(ui): use style preset prompts correctly
2024-08-30 22:18:49 +10:00
psychedelicious
8601fbb4ea
fix(ui): discard selected staging image not all other images
2024-08-30 22:18:49 +10:00
psychedelicious
db885aa180
fix(ui): respect image size in staging preview
2024-08-30 22:18:49 +10:00
psychedelicious
c18fb980a2
tidy(ui): cleanup after events change
2024-08-30 22:18:49 +10:00
psychedelicious
b630dbdf20
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-30 22:18:49 +10:00
psychedelicious
29ac1b5e01
fix(ui): rebase conflicts
2024-08-30 22:18:49 +10:00
psychedelicious
506d3b079e
fix(ui): update compositing rect when fill changes
2024-08-30 22:18:49 +10:00
psychedelicious
0670e6b53a
feat(ui): add canvas background style
2024-08-30 22:18:49 +10:00
psychedelicious
76124ea35b
feat(ui): mask layers choose own opacity
2024-08-30 22:18:49 +10:00
psychedelicious
6eae3470cd
feat(ui): mask fill patterns
2024-08-30 22:18:49 +10:00
psychedelicious
c7ba7ac876
build(ui): add vite types to tsconfig
2024-08-30 22:18:49 +10:00
psychedelicious
edc733abd9
fix(ui): do not smooth pixel data when using eyeDropper
2024-08-30 22:18:49 +10:00
psychedelicious
a56ded664e
tidy(ui): tool components & translations
2024-08-30 22:18:49 +10:00
psychedelicious
31ace5fb0c
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-30 22:18:49 +10:00
psychedelicious
11010236b3
fix(ui): ip adapters work
2024-08-30 22:18:49 +10:00
psychedelicious
5f061ac1e2
feat(ui): rename layers
2024-08-30 22:18:49 +10:00
psychedelicious
72919fa34e
feat(ui): revise entity menus
2024-08-30 22:18:49 +10:00
psychedelicious
d5ca99fc3c
feat(ui): split control layers from raster layers for UI and internal state, same rendering as raster layers
2024-08-30 22:18:49 +10:00
psychedelicious
e49b72ee4e
feat(ui): implement cache for image rasterization, rip out some old controladapters code
2024-08-30 22:18:49 +10:00
psychedelicious
abe8db8154
feat(ui, app): use layer as control (wip)
2024-08-30 22:18:49 +10:00
psychedelicious
e0e5941384
feat(ui): add contextmenu for canvas entities
2024-08-30 22:18:49 +10:00
psychedelicious
86e1f4e8b0
feat(ui): more better logging & naming
2024-08-30 22:18:49 +10:00
psychedelicious
447d873ef0
feat(ui): better logging w/ path
2024-08-30 22:18:49 +10:00
psychedelicious
b21d613ce4
feat(ui): always show marks on canvas scale slider
2024-08-30 22:18:49 +10:00
psychedelicious
fc91adb32f
fix(ui): do not import button from chakra
2024-08-30 22:18:49 +10:00
psychedelicious
71885db5fd
fix(ui): scaled bbox preview
2024-08-30 22:18:49 +10:00
psychedelicious
b88d14b3df
feat(ui): tidy up atoms
2024-08-30 22:18:49 +10:00
psychedelicious
d98d35a8a8
feat(ui): convert all my pubsubs to atoms
...
its the same but better
2024-08-30 22:18:49 +10:00
psychedelicious
87bc0ebd73
feat(ui): add trnalsation
2024-08-30 22:18:49 +10:00
psychedelicious
7b6ba3f690
fix(ui): give up on thumbnail loading, causes flash during transformer
2024-08-30 22:18:49 +10:00
psychedelicious
b0d8948428
fix(ui): depth anything v2
2024-08-30 22:18:49 +10:00
psychedelicious
b32d681cee
tidy(ui): remove unused code, comments
2024-08-30 22:18:49 +10:00
psychedelicious
11a66d1d09
fix(ui): staging area works
2024-08-30 22:18:49 +10:00
psychedelicious
e41987f08c
feat(nodes): temp disable canvas output crop
2024-08-30 22:18:49 +10:00
psychedelicious
34b57ec188
fix(ui): max scale 1 when reset view
2024-08-30 22:18:49 +10:00
psychedelicious
d74843be31
feat(ui): better scale changer component, reset view functionality
2024-08-30 22:18:49 +10:00
psychedelicious
1216c6f9c9
fix(ui): img2img
2024-08-30 22:18:49 +10:00
psychedelicious
865b6017d3
feat(ui): add manual scale controls
2024-08-30 22:18:49 +10:00
psychedelicious
922a021821
fix(ui): do not await clearBuffer
2024-08-30 22:18:49 +10:00
psychedelicious
0b5f4cac57
feat(ui): dnd image into layer
2024-08-30 22:18:49 +10:00
psychedelicious
c988c58c63
fix(ui): do not await commitBuffer
2024-08-30 22:18:49 +10:00
psychedelicious
ceb8cbf59e
fix(ui): properly destroy entities in manager cleanup
2024-08-30 22:18:49 +10:00
psychedelicious
52e9f43c46
tidy(ui): clearer component names for regional guidance
2024-08-30 22:18:49 +10:00
psychedelicious
4e5e7761fc
tidy(ui): clearer component names for ip adapter
2024-08-30 22:18:49 +10:00
psychedelicious
9879999a65
tidy(ui): clearer component names for inpaint mask
2024-08-30 22:18:49 +10:00
psychedelicious
bedaca70a3
tidy(ui): clearer component names for control adapters
2024-08-30 22:18:49 +10:00
psychedelicious
2dd2225d2e
feat(ui): simplify canvas list item headers
2024-08-30 22:18:49 +10:00
psychedelicious
d82031eec1
fix(ui): ip adapter list item
2024-08-30 22:18:49 +10:00
psychedelicious
e5f2860b74
tidy(ui): clean up unused logic
2024-08-30 22:18:49 +10:00
psychedelicious
fa3560bb61
feat(ui): clean up state, add mutex for image loading, add thumbnail loading
2024-08-30 22:18:49 +10:00
psychedelicious
9b23f6ce30
chore(ui): add async-mutex dep
2024-08-30 22:18:49 +10:00
psychedelicious
5d6aa6cfd5
feat(ui): txt2img, img2img, inpaint & outpaint working
2024-08-30 22:18:49 +10:00
psychedelicious
7d1819335f
feat(ui): no padding on transformer outlines
2024-08-30 22:18:49 +10:00
psychedelicious
539e7a3f2d
feat(ui): restore object count to layer titles
2024-08-30 22:18:49 +10:00
psychedelicious
1686924ac8
tidy(ui): "useIsEntitySelected" -> "useEntityIsSelected"
2024-08-30 22:18:49 +10:00
psychedelicious
556c1dc67b
tidy(ui): move transformer statics into class
2024-08-30 22:18:49 +10:00
psychedelicious
00f7093e65
tidy(ui): massive cleanup
...
- create a context for entity identifiers, massively simplifying UI for each entity int he list
- consolidate common redux actions
- remove now-unused code
2024-08-30 22:18:49 +10:00
psychedelicious
79eb11dce9
perf(ui): do not add duplicate points to lines
2024-08-30 22:18:49 +10:00
psychedelicious
0bf48c0d41
feat(ui): up line tension to 0.3
2024-08-30 22:18:49 +10:00
psychedelicious
3f33e5f770
perf(ui): disable stroke, perfect draw on compositing rect
2024-08-30 22:18:49 +10:00
psychedelicious
da3888ba9e
tidy(ui): remove unused code, initial image
2024-08-30 22:18:49 +10:00
psychedelicious
a2f91b1055
tidy(ui): remove unused state & actions
2024-08-30 22:18:49 +10:00
psychedelicious
d26095dfa1
feat(ui): region mask rendering
2024-08-30 22:18:49 +10:00
psychedelicious
83e786bd1e
feat(ui): esc cancels drawing buffer
...
maybe this is not wanted? we'll see
2024-08-30 22:18:49 +10:00
psychedelicious
4cae12a507
fix(ui): render transformer over objects, fix issue w/ inpaint rect color
2024-08-30 22:18:49 +10:00
psychedelicious
d8e3708e0f
fix(ui): brush preview fill for inpaint/region
2024-08-30 22:18:49 +10:00
psychedelicious
f4de2fd3b1
fix(ui): no objects rendered until vis toggled
2024-08-30 22:18:49 +10:00
psychedelicious
e1cb30bbb4
feat(ui): inpaint mask transform
2024-08-30 22:18:49 +10:00
psychedelicious
97e0edc549
fix(ui): layer accidental early set isFirstRender=false
2024-08-30 22:18:49 +10:00
psychedelicious
f4e66bf14f
fix(ui): inpaint mask rendering
2024-08-30 22:18:49 +10:00
psychedelicious
a6a7fe8aba
feat(ui): wip inpaint mask uses new API
2024-08-30 22:18:49 +10:00
psychedelicious
a273f72560
feat(ui): move updatePosition to transformer
2024-08-30 22:18:49 +10:00
psychedelicious
b5126f45d6
feat(ui): move resetScale to transformer
2024-08-30 22:18:49 +10:00
psychedelicious
ba3bb7cbf3
tidy(ui): more imperative naming
2024-08-30 22:18:49 +10:00
psychedelicious
608279487b
tidy(ui): use imperative names for setters in stateapi
2024-08-30 22:18:49 +10:00
psychedelicious
72b5374916
fix(ui): commit drawing buffer on tool change, fixing bbox not calculating
2024-08-30 22:18:49 +10:00
psychedelicious
08b03212ca
fix(ui): sync transformer when requesting bbox calc
2024-08-30 22:18:49 +10:00
psychedelicious
7e341a05a1
tidy(ui): rename union CanvasEntity -> CanvasEntityState
2024-08-30 22:18:49 +10:00
psychedelicious
e665d08ee1
fix(ui): request rect calc immediately on transform, hiding rect
2024-08-30 22:18:49 +10:00
psychedelicious
ba6362dc9d
feat(ui): move bbox calculation to transformer
2024-08-30 22:18:49 +10:00
psychedelicious
48f0797c43
feat(ui): use set for transformer subscriptions
2024-08-30 22:18:49 +10:00
psychedelicious
640b0c4939
tidy(ui): clean up worker tasks when complete
2024-08-30 22:18:49 +10:00
psychedelicious
287c61e277
tidy(ui): remove unused code in CanvasTool
2024-08-30 22:18:49 +10:00
psychedelicious
f7b2516109
feat(ui): use pubsub for isTransforming on manager
2024-08-30 22:18:49 +10:00
psychedelicious
b530eb49d4
docs(ui): update transformer docstrings
2024-08-30 22:18:49 +10:00
psychedelicious
fa94979ab6
feat(ui): revised event pubsub, transformer logic split out
2024-08-30 22:18:49 +10:00
psychedelicious
54f2acf5b9
feat(ui): add simple pubsub
2024-08-30 22:18:49 +10:00
psychedelicious
b6d845a4d0
feat(ui): document & clean up object renderer
2024-08-30 22:18:49 +10:00
psychedelicious
1095b7c37f
feat(ui): split out object renderer
2024-08-30 22:18:49 +10:00
psychedelicious
136ffd97ca
fix(ui): unable to hold shit while transforming to retain ratio
2024-08-30 22:18:49 +10:00
psychedelicious
80163d0af2
tidy(ui): rename canvas stuff
2024-08-30 22:18:49 +10:00
psychedelicious
e1c6e926e7
tidy(ui): consolidate getLoggingContext builders
2024-08-30 22:18:49 +10:00
psychedelicious
2bb74abf31
fix(ui): align all tools to 1px grid
...
- Offset brush tool by 0.5px when width is odd, ensuring each stroke edge is exactly on a pixel boundary
- Round the rect tool also
2024-08-30 22:18:49 +10:00
psychedelicious
0d4b91afe0
feat(ui): disable image smoothing on layers
2024-08-30 22:18:49 +10:00
psychedelicious
6c688d6878
fix(ui): round position when rasterizing layer
2024-08-30 22:18:49 +10:00
psychedelicious
243feecef9
feat(ui): continue modularizing transform
2024-08-30 22:18:49 +10:00
psychedelicious
abd22ba087
feat(ui): fix a few things that didn't unsubscribe correctly, add helper to manage subscriptions
2024-08-30 22:18:49 +10:00
psychedelicious
ab25546e97
feat(ui): merge bbox outline into transformer
2024-08-30 22:18:49 +10:00
psychedelicious
925f0fca2a
fix(ui): update parent's pos not transformers
2024-08-30 22:18:49 +10:00
psychedelicious
066366d885
feat(ui): merge interaction rect into transformer class
2024-08-30 22:18:49 +10:00
psychedelicious
61d52e96b7
feat(ui): prepare staging area
2024-08-30 22:18:49 +10:00
psychedelicious
051e88ca90
feat(ui): typing for logging context
2024-08-30 22:18:49 +10:00
psychedelicious
e873b69850
feat(ui): remove inheritance of CanvasObject
...
JS is terrible
2024-08-30 22:18:49 +10:00
psychedelicious
661fd55556
feat(ui): split & document transformer logic, iterate on class structures
2024-08-30 22:18:49 +10:00
psychedelicious
402f5a4717
feat(ui): rotation snap to nearest 45deg when holding shift
2024-08-30 22:18:49 +10:00
psychedelicious
81bf52ef37
feat(ui): expose subscribe method for nanostores
2024-08-30 22:18:49 +10:00
psychedelicious
8ff92796df
tidy(ui): remove layer scaling reducers
2024-08-30 22:18:49 +10:00
psychedelicious
68af60e12e
fix(ui): pixel-perfect transforms
2024-08-30 22:18:49 +10:00
psychedelicious
cce6bf9428
fix(ui): layer visibility toggle
2024-08-30 22:18:49 +10:00
psychedelicious
078908fbea
fix(nodes): fix canvas mask erode
...
it wasn't eroding enough and caused incorrect transparency in result images
2024-08-30 22:18:49 +10:00
psychedelicious
7275caaf5b
fix(ui): do not reset layer on first render
2024-08-30 22:18:49 +10:00
psychedelicious
d9487c1df4
feat(ui): revised logging and naming setup, fix staging area
2024-08-30 22:18:49 +10:00
psychedelicious
3a9f955388
feat(ui): add repr methods to layer and object classes
2024-08-30 22:18:49 +10:00
psychedelicious
e46c7acd2e
feat(ui): use nanoid(10) instead of uuidv4 for canvas
...
Shorter ids makes it much more readable
2024-08-30 22:18:49 +10:00
psychedelicious
b771664851
build(ui): add nanoid as explicit dep
2024-08-30 22:18:49 +10:00
psychedelicious
7c21819d20
fix(ui): move CanvasImage's konva image to correct object
2024-08-30 22:18:49 +10:00
psychedelicious
a57e618d47
fix(ui): prevent flash when applying transform
2024-08-30 22:18:49 +10:00
psychedelicious
c9849a79ea
build(ui): add eslint rules for async stuff
2024-08-30 22:18:49 +10:00
psychedelicious
f1643fec08
feat(ui): trying to fix flicker after transform
2024-08-30 22:18:49 +10:00
psychedelicious
951e63ca87
feat(ui): transform cleanup
2024-08-30 22:18:49 +10:00
psychedelicious
8e539c8a8c
feat(ui): fix transform when rotated
2024-08-30 22:18:49 +10:00
psychedelicious
1e689a4902
fix(ui): use pixel bbox when image is in layer
2024-08-30 22:18:49 +10:00
psychedelicious
7bbd25b5ec
fix(ui): transforming when axes flipped
2024-08-30 22:18:49 +10:00
psychedelicious
b1c7236117
feat(ui): hallelujah (???)
2024-08-30 22:18:49 +10:00
psychedelicious
ae3e473024
feat(ui): add debug button
2024-08-30 22:18:49 +10:00
psychedelicious
fd616f247c
fix(ui): transformer padding
2024-08-30 22:18:48 +10:00
psychedelicious
45dca2c821
feat(ui): wip transform mode 2
2024-08-30 22:18:48 +10:00
psychedelicious
40dc108c84
feat(ui): wip transform mode
2024-08-30 22:18:48 +10:00
psychedelicious
a421c25952
feat(ui): wip transform mode
2024-08-30 22:18:48 +10:00
psychedelicious
562d0afdbb
fix(ui): dnd to canvas broke
2024-08-30 22:18:48 +10:00
psychedelicious
2ce4698eef
fix(ui): conflicts after rebasing
2024-08-30 22:18:48 +10:00
psychedelicious
cb53108041
fix(ui): imageDropped listener
2024-08-30 22:18:48 +10:00
psychedelicious
5fa65e5cc6
wip
2024-08-30 22:18:48 +10:00
psychedelicious
e8b0b6cef5
fix(ui): transform tool seems to be working
2024-08-30 22:18:48 +10:00
psychedelicious
eca2712828
fix(ui): move tool fixes, add transform tool
2024-08-30 22:18:48 +10:00
psychedelicious
2804c0aede
feat(ui): move tool now only moves
2024-08-30 22:18:48 +10:00
psychedelicious
0429f0480d
feat(ui): layer bbox calc in worker
2024-08-30 22:18:48 +10:00
psychedelicious
024759a0fc
feat(ui): tweaked entity & group selection styles
2024-08-30 22:18:48 +10:00
psychedelicious
9a94aef2b0
feat(ui): canvas entity list headers
2024-08-30 22:18:48 +10:00
psychedelicious
e329cb45cd
tidy(ui): CanvasRegion
2024-08-30 22:18:48 +10:00
psychedelicious
0dc38bd684
tidy(ui): CanvasRect
2024-08-30 22:18:48 +10:00
psychedelicious
98ebca5f8c
tidy(ui): CanvasLayer
2024-08-30 22:18:48 +10:00
psychedelicious
05cb3e03cf
tidy(ui): CanvasInpaintMask
2024-08-30 22:18:48 +10:00
psychedelicious
181132c149
tidy(ui): CanvasInitialImage
2024-08-30 22:18:48 +10:00
psychedelicious
a69aa00155
tidy(ui): CanvasImage
2024-08-30 22:18:48 +10:00
psychedelicious
47d415e31c
tidy(ui): CanvasEraserLine
2024-08-30 22:18:48 +10:00
psychedelicious
667a156817
tidy(ui): CanvasControlAdapter
2024-08-30 22:18:48 +10:00
psychedelicious
00f39b977e
tidy(ui): CanvasBrushLine
2024-08-30 22:18:48 +10:00
psychedelicious
e5776e2bd6
tidy(ui): CanvasBbox
2024-08-30 22:18:48 +10:00
psychedelicious
2b21f54897
tidy(ui): CanvasBackground
2024-08-30 22:18:48 +10:00
psychedelicious
678d12fcd5
tidy(ui): update canvas classes, organise location of konva nodes
2024-08-30 22:18:48 +10:00
psychedelicious
03f06f611e
feat(ui): add names to all konva objects
...
Makes troubleshooting much simpler
2024-08-30 22:18:48 +10:00
psychedelicious
6571e0f814
fix(ui): do not await creating new canvas image
...
If you await this, it causes a race condition where multiple images are created.
2024-08-30 22:18:48 +10:00
psychedelicious
44f91026e1
feat(ui): use position and dimensions instead of separate x,y,width,height attrs
2024-08-30 22:18:48 +10:00
psychedelicious
56237328f1
fix(ui): remove weird rtkq hook wrapper
...
I do not understand why I did that initially but it doesn't work with TS.
2024-08-30 22:18:48 +10:00
psychedelicious
ff68901e89
feat(ui): rename types size and position to dimensions and coordinate
2024-08-30 22:18:48 +10:00
psychedelicious
e0e7adb2b2
tidy(ui): hide layer settings by default
2024-08-30 22:18:48 +10:00
psychedelicious
0923a5b128
fix(ui): layer rendering when starting as disabled
2024-08-30 22:18:48 +10:00
psychedelicious
75f8a84c79
feat(invocation): reduce canvas v2 mask & crop mask dilation
2024-08-30 22:18:48 +10:00
psychedelicious
af815cf7eb
feat(ui): de-jank staging area and progress images
2024-08-30 22:18:48 +10:00
psychedelicious
ef4d6c26f6
feat(ui): update staging handling to work w/ cropped mask
2024-08-30 22:18:48 +10:00
psychedelicious
5087b306c0
chore(ui): typegen
2024-08-30 22:18:48 +10:00
psychedelicious
a5708eaefe
feat(app): update CanvasV2MaskAndCropInvocation
2024-08-30 22:18:48 +10:00
psychedelicious
389bfc9e31
feat(ui): use new canvas output node
2024-08-30 22:18:48 +10:00
psychedelicious
fd269e91e0
chore(ui): typegen
2024-08-30 22:18:48 +10:00
psychedelicious
80136b0dfc
feat(app): add CanvasV2MaskAndCropInvocation & CanvasV2MaskAndCropOutput
...
This handles some masking and cropping that the canvas needs.
2024-08-30 22:18:48 +10:00
psychedelicious
9595eff1f9
fix(ui): restore nodes output tracking
2024-08-30 22:18:48 +10:00
psychedelicious
c3c95754f7
feat(ui): rip out document size
...
barely knew ye
2024-08-30 22:18:48 +10:00
psychedelicious
22ab63fe8d
feat(ui): convert initial image to layer when starting canvas session
2024-08-30 22:18:48 +10:00
psychedelicious
5fefcab475
fix(ui): fix layer transparency calculation
2024-08-30 22:18:48 +10:00
psychedelicious
771a05b894
fix(ui): reset initial image when resetting canvas
2024-08-30 22:18:48 +10:00
psychedelicious
e2d8aaa923
fix(ui): reset node executions states when loading workflow
2024-08-30 22:18:48 +10:00
psychedelicious
0951aecb13
fix(ui): entity display list
2024-08-30 22:18:48 +10:00
psychedelicious
b1fe6f9853
feat(ui): img2img working
2024-08-30 22:18:48 +10:00
psychedelicious
551dd393aa
feat(ui): rough out img2img on canvas
2024-08-30 22:18:48 +10:00
psychedelicious
78b4562184
UNDO ME WIP
2024-08-30 22:18:48 +10:00
psychedelicious
c49b90e621
feat(ui): log invocation source id on socket event
2024-08-30 22:18:48 +10:00
psychedelicious
89e6233fbf
feat(ui): restore document size overlay renderer
2024-08-30 22:18:48 +10:00
psychedelicious
3f9496c237
feat(ui): make documnet size a rect
2024-08-30 22:18:48 +10:00
psychedelicious
36e94af598
refactor(ui): remove modular imagesize components
...
This is no longer necessary with canvas v2 and added a ton of extraneous redux actions when changing the image size. Also renamed to document size
2024-08-30 22:18:48 +10:00
psychedelicious
a181a684f5
feat(ui): initialState is for generation mode
2024-08-30 22:18:48 +10:00
psychedelicious
bb712b3b3f
feat(ui): split out canvas entity list component
2024-08-30 22:18:48 +10:00
psychedelicious
e795de5647
feat(ui): hide bbox button when no canvas session active
2024-08-30 22:18:48 +10:00
psychedelicious
bdc428cdd8
tidy(ui): remove unused naming objects/utils
...
The canvas manager means we don't need to worry about konva node names as we never directly select konva nodes.
2024-08-30 22:18:48 +10:00
psychedelicious
e4376e21dd
feat(ui): split up tool chooser buttons
...
Prep for distinct toolbars for generation vs canvas modes
2024-08-30 22:18:48 +10:00
psychedelicious
77acc7baed
feat(ui): add useAssertSingleton util hook
...
This simple hook asserts that it is only ever called once. Particularly useful for things like hotkeys hooks.
2024-08-30 22:18:48 +10:00
psychedelicious
9db1556c4d
feat(ui): "stagingArea" -> "session"
2024-08-30 22:18:48 +10:00
psychedelicious
65de8b329b
feat(ui): add reset button to canvas
2024-08-30 22:18:48 +10:00
psychedelicious
08dae5b047
feat(ui): add snapToRect util
2024-08-30 22:18:48 +10:00
psychedelicious
8d2f056407
fix(ui): fiddle with control adapter filters
...
some jank still
2024-08-30 22:18:48 +10:00
psychedelicious
e66ef2e25e
feat(ui): temp disable doc size overlay
2024-08-30 22:18:48 +10:00
psychedelicious
4d3ee7e082
feat(ui): no animation on layer selection
...
Felt sluggish
2024-08-30 22:18:48 +10:00
psychedelicious
fe48fda2f3
feat(ui): use canvas as source for control images (wip)
2024-08-30 22:18:48 +10:00
psychedelicious
0f66753aa1
fix(ui): control adapter translate & scale
2024-08-30 22:18:48 +10:00
psychedelicious
a18878474b
tidy(ui): removed unused state related to non-buffered drawing
2024-08-30 22:18:48 +10:00
psychedelicious
0aa4568fd4
feat(ui): control adapter image rendering
2024-08-30 22:18:48 +10:00
psychedelicious
1de7e5760a
fix(ui): do not floor bbox calc, it cuts off the last pixels
2024-08-30 22:18:48 +10:00
psychedelicious
135d6f2763
feat(ui): fix issue where creating line needs 2 points
2024-08-30 22:18:48 +10:00
psychedelicious
061767ede3
fix(ui): edge cases when holding shift and drawing lines
2024-08-30 22:18:48 +10:00
psychedelicious
7204844bcb
fix(ui): set buffered rect color to full alpha
2024-08-30 22:18:48 +10:00
psychedelicious
f2279ecadd
fix(ui): handle mouseup correctly
2024-08-30 22:18:48 +10:00
psychedelicious
75694869d2
feat(ui): buffered rect drawing
2024-08-30 22:18:48 +10:00
psychedelicious
d029680ac1
fix(ui): buffered drawing edge cases
2024-08-30 22:18:48 +10:00
psychedelicious
41c195d936
perf(ui): do not use stage.find
2024-08-30 22:18:48 +10:00
psychedelicious
03ea005e9c
perf(ui): object groups do not listen
2024-08-30 22:18:48 +10:00
psychedelicious
6d936a7c44
perf(ui): buffered drawing (wip)
2024-08-30 22:18:48 +10:00
psychedelicious
fba17b93a6
tidy(ui): organise files
2024-08-30 22:18:48 +10:00
psychedelicious
73a7a27ea1
tidy(ui): organise files
2024-08-30 22:18:48 +10:00
psychedelicious
79287c2d16
tidy(ui): organise files
2024-08-30 22:18:48 +10:00
psychedelicious
662c5f4b77
fix(ui): background rendering
2024-08-30 22:18:48 +10:00
psychedelicious
7728ca6843
pkg(ui): remove unused deps react-konva & use-image
2024-08-30 22:18:48 +10:00
psychedelicious
9607372f89
feat(ui): organize konva state and files
2024-08-30 22:18:48 +10:00
psychedelicious
d27f948b78
fix(ui): merge conflicts in image deletion listener
2024-08-30 22:18:48 +10:00
psychedelicious
b7aab81717
fix(ui): region rendering
2024-08-30 22:18:48 +10:00
psychedelicious
2998287f61
fix(ui): inpaint mask rendering
2024-08-30 22:18:48 +10:00
psychedelicious
55d7f0ff5b
fix(ui): staging area rendering
2024-08-30 22:18:48 +10:00
psychedelicious
4564f36d4a
fix(ui): stale selected entity
2024-08-30 22:18:48 +10:00
psychedelicious
319de5c4e9
fix(ui): staging area image offset
2024-08-30 22:18:48 +10:00
psychedelicious
eee499faa3
feat(ui): tweak layer ui component
2024-08-30 22:18:48 +10:00
psychedelicious
63c5e42f2a
fix(ui): resetting layer resets position
2024-08-30 22:18:48 +10:00
psychedelicious
bd16dc4479
feat(ui): updated layer list component styling
2024-08-30 22:18:48 +10:00
psychedelicious
49371ddec9
feat(ui): transformable layers
2024-08-30 22:18:48 +10:00
psychedelicious
6a10d31b19
feat(ui): move tool icon is pointer like in other apps
2024-08-30 22:18:48 +10:00
psychedelicious
c951e733d3
feat(ui): do not floor cursor position
2024-08-30 22:18:48 +10:00
psychedelicious
7ed24cf847
feat(ui): disable gallery hotkeys while staging
2024-08-30 22:18:48 +10:00
psychedelicious
821b7a0435
feat(ui): revised canvas progress & staging image handling
2024-08-30 22:18:48 +10:00
psychedelicious
1b0344c412
feat(ui): show queue item origin in queue list
2024-08-30 22:18:48 +10:00
psychedelicious
03ca3c4b3d
chore(ui): typegen
2024-08-30 22:18:48 +10:00
psychedelicious
b939192b16
feat(app): add origin to session queue
...
The origin is an optional field indicating the queue item's origin. For example, "canvas" when the queue item originated from the canvas or "workflows" when the queue item originated from the workflows tab. If omitted, we assume the queue item originated from the API directly.
- Add migration to add the nullable column to the `session_queue` table.
- Update relevant event payloads with the new field.
- Add `cancel_by_origin` method to `session_queue` service and corresponding route. This is required for the canvas to bail out early when staging images.
- Add `origin` to both `SessionQueueItem` and `Batch` - it needs to be provided initially via the batch and then passed onto the queue item.
-
2024-08-30 22:18:48 +10:00
psychedelicious
7ccf559a06
fix(ui): denoise start on outpainting
2024-08-30 22:18:48 +10:00
psychedelicious
9eb091f873
feat(ui): add redux events for queue cleared & batch enqueued socket events
2024-08-30 22:18:48 +10:00
psychedelicious
3bd5521641
feat(ui): canvas staging area works
2024-08-30 22:18:48 +10:00
psychedelicious
ced748e419
feat(ui): switch to view tool when staging
2024-08-30 22:18:48 +10:00
psychedelicious
fbd137da9f
tidy(ui): disable preview images on every enqueue
2024-08-30 22:18:48 +10:00
psychedelicious
03baebced6
feat(ui): rough out save staging image
2024-08-30 22:18:48 +10:00
psychedelicious
cb19c1c370
feat(ui): staging area image visibility toggle
2024-08-30 22:18:47 +10:00
psychedelicious
788bad61d0
fix(ui): batch building after removing canvas files
2024-08-30 22:18:47 +10:00
psychedelicious
8f5f9bd44e
feat(ui): make Graph class's getMetadataNode public
2024-08-30 22:18:47 +10:00
psychedelicious
2873e3e084
tidy(ui): remove old canvas graphs
2024-08-30 22:18:47 +10:00
psychedelicious
b004f17ae3
fix(ui): do not select already-selected entity
2024-08-30 22:18:47 +10:00
psychedelicious
bea1e8c99b
tidy(ui): naming things
2024-08-30 22:18:47 +10:00
psychedelicious
111493223f
tidy(ui): file organisation
2024-08-30 22:18:47 +10:00
psychedelicious
0a5ac2baec
fix(ui): reset cursor pos when fitting document
2024-08-30 22:18:47 +10:00
psychedelicious
eec3c3b884
feat(ui): staging area works more better
2024-08-30 22:18:47 +10:00
psychedelicious
07b72c3d70
feat(ui): staging area barely works
2024-08-30 22:18:47 +10:00
psychedelicious
766e8c4eb0
feat(ui): consolidate konva API
2024-08-30 22:18:47 +10:00
psychedelicious
57c257d10d
feat(ui): consolidate konva API
2024-08-30 22:18:47 +10:00
psychedelicious
d497da0e61
feat(ui): staging area (rendering wip)
2024-08-30 22:18:47 +10:00
psychedelicious
62310e7929
tidy(ui): type "Dimensions" -> "Size"
2024-08-30 22:18:47 +10:00
psychedelicious
d79aa173a6
feat(ui): add updateNode to Graph
2024-08-30 22:18:47 +10:00
psychedelicious
fbfdd3e003
feat(ui): sdxl graphs
2024-08-30 22:18:47 +10:00
psychedelicious
a62b4a26ef
feat(ui): sd1 outpaint graph
2024-08-30 22:18:47 +10:00
psychedelicious
817d4168c6
tests(ui): add missing tests for Graph class
2024-08-30 22:18:47 +10:00
psychedelicious
7e0a6d1538
feat(ui): add Graph.getid() util
2024-08-30 22:18:47 +10:00
psychedelicious
ebc498ad19
feat(ui): outpaint graph, organize builder a bit
2024-08-30 22:18:47 +10:00
psychedelicious
b97b8c6ce6
feat(ui): inpaint sd1 graph
2024-08-30 22:18:47 +10:00
psychedelicious
b8abff65a1
feat(ui): temp disable image caching while testing
2024-08-30 22:18:47 +10:00
psychedelicious
a953dc1dbd
feat(ui): txt2img & img2img graphs
2024-08-30 22:18:47 +10:00
psychedelicious
a7c9848e99
feat(ui): minor change to canvas bbox state type
2024-08-30 22:18:47 +10:00
psychedelicious
73a1449eaf
feat(ui): simplified konva node to blob/imagedata utils
2024-08-30 22:18:47 +10:00
psychedelicious
59f57ff542
feat(ui): node manager getter/setter
2024-08-30 22:18:47 +10:00
psychedelicious
e9204b87e3
feat(ui): generation mode calculation, fudged graphs
2024-08-30 22:18:47 +10:00
psychedelicious
7dd11bd60a
feat(ui): add utils for getting images from canvas
2024-08-30 22:18:47 +10:00
psychedelicious
275fc2ccf9
feat(ui): even more simplified API - lean on the konva node manager to abstract imperative state API & rendering
2024-08-30 22:18:47 +10:00
psychedelicious
a2ef8d9d47
feat(ui): revised docstrings for renderers & simplified api
2024-08-30 22:18:47 +10:00
psychedelicious
196779ff19
feat(ui): inpaint mask UI components
2024-08-30 22:18:47 +10:00
psychedelicious
aee3147365
feat(ui): inpaint mask rendering (wip)
2024-08-30 22:18:47 +10:00
psychedelicious
eaca940956
fix(ui): models loaded handler
2024-08-30 22:18:47 +10:00
psychedelicious
06006733e2
feat(ui): internal state for inpaint mask
2024-08-30 22:18:47 +10:00
psychedelicious
14d0bfbef6
refactor(ui): divvy up canvas state a bit
2024-08-30 22:18:47 +10:00
psychedelicious
0c9cf73702
feat(ui): get region and base layer canvas to blob logic working
2024-08-30 22:18:47 +10:00
psychedelicious
3b864921ac
refactor(ui): node manager handles more tedious annoying stuff
2024-08-30 22:18:47 +10:00
psychedelicious
f41539532f
feat(ui): use node manager for addRegions
2024-08-30 22:18:47 +10:00
psychedelicious
657009c254
feat(ui): persist bbox
2024-08-30 22:18:47 +10:00
psychedelicious
c47e02c309
fix(ui): fix generation graphs
2024-08-30 22:18:47 +10:00
psychedelicious
ce8a7bc178
feat(ui): add toggle for clipToBbox
2024-08-30 22:18:47 +10:00
psychedelicious
488ca87787
feat(ui): rename konva node manager
2024-08-30 22:18:47 +10:00
psychedelicious
d965df8ca9
refactor(ui): create classes to abstract mgmt of konva nodes
2024-08-30 22:18:47 +10:00
psychedelicious
995c26751e
tidy(ui): organise renderers
2024-08-30 22:18:47 +10:00
psychedelicious
dd09723a2a
refactor(ui): create entity to konva node map abstraction (wip)
...
Instead of chaining konva `find` and `findOne` methods, all konva nodes are added to a mapping object. Finding and manipulating them is much simpler.
Done for regions and layers, wip for control adapters.
2024-08-30 22:18:47 +10:00
psychedelicious
5ff5af3ba2
perf(ui): fix lag w/ region rendering
...
Needed to memoize these selectors
2024-08-30 22:18:47 +10:00
psychedelicious
4cb85404c0
feat(ui): move canvas fill color picker to right
2024-08-30 22:18:47 +10:00
psychedelicious
50bc2f100d
refactor(ui): remove unused ellipse & polygon objects
2024-08-30 22:18:47 +10:00
psychedelicious
f65ce6a019
fix(ui): incorrect rect/brush/eraser positions
2024-08-30 22:18:47 +10:00
psychedelicious
c28b635f2d
refactor(ui): enable global debugging flag
2024-08-30 22:18:47 +10:00
psychedelicious
e55896240d
refactor(ui): disable the preview renderer for now
2024-08-30 22:18:47 +10:00
psychedelicious
2b478ee7e1
tweak(ui): canvas editor layout
2024-08-30 22:18:47 +10:00
psychedelicious
69912a35ea
perf(ui): memoize layeractionsmenu valid actions
2024-08-30 22:18:47 +10:00
psychedelicious
9f1bd98c7e
refactor(ui): decouple konva renderer from react
...
Subscribe to redux store directly, skipping all the react overhead.
With react in dev mode, a typical frame while using the brush tool on almost-empty canvas is reduced from ~7.5ms to ~3.5ms. All things considered, this still feels slow, but it's a massive improvement.
2024-08-30 22:18:47 +10:00
psychedelicious
b531d6b7f0
feat(ui): clip lines to bbox
2024-08-30 22:18:47 +10:00
psychedelicious
8aa963fb81
fix(ui): document fit positioning
2024-08-30 22:18:47 +10:00
psychedelicious
b76e0ab4e4
feat(ui): document bounds overlay
2024-08-30 22:18:47 +10:00
psychedelicious
aea03b4e92
tidy(ui): background layer
2024-08-30 22:18:47 +10:00
psychedelicious
b39e95966c
refactor(ui): use "entity" instead of "data" for canvas
2024-08-30 22:18:47 +10:00
psychedelicious
d53e5e0158
feat(ui): brush size border radius = 1
2024-08-30 22:18:47 +10:00
psychedelicious
0368dd651b
fix(ui): canvas HUD doesn't interrupt tool
2024-08-30 22:18:47 +10:00
psychedelicious
84a4a1024e
refactor(ui): split up canvas entity renderers, temp disable preview
2024-08-30 22:18:47 +10:00
psychedelicious
af4f258489
fix(ui): delete all layers button
2024-08-30 22:18:47 +10:00
psychedelicious
ddfc8785b4
fix(ui): ignore keyboard shortcuts in input/textarea elements
2024-08-30 22:18:47 +10:00
psychedelicious
d8515b6efc
fix(ui): canvas entity ids getting clobbered
2024-08-30 22:18:47 +10:00
psychedelicious
6a07f007a4
fix(ui): move lora followup fixes
2024-08-30 22:18:47 +10:00
psychedelicious
7a5a0c8075
chore(ui): lint
2024-08-30 22:18:47 +10:00
psychedelicious
5ed2e9b0fc
refactor(ui): move loras to canvas slice
2024-08-30 22:18:47 +10:00
psychedelicious
aeb0a45eb6
fix(ui): layer is selected when added
2024-08-30 22:18:47 +10:00
psychedelicious
21e814d766
feat(ui): r to center & fit stage on document
2024-08-30 22:18:47 +10:00
psychedelicious
cafc1839e2
feat(ui): better HUD
2024-08-30 22:18:47 +10:00
psychedelicious
e937aa831f
fix(ui): always use current brush width when making straight lines
2024-08-30 22:18:47 +10:00
psychedelicious
890e6a95ed
feat(ui): hold shift w/ brush to draw straight line
2024-08-30 22:18:47 +10:00
psychedelicious
a5b7274359
fix(ui): update bg on canvas resize
2024-08-30 22:18:47 +10:00
psychedelicious
172acf2cf5
refactor(ui): better hud
2024-08-30 22:18:47 +10:00
psychedelicious
b49fdf6407
refactor(ui): scaled tool preview border
2024-08-30 22:18:47 +10:00
psychedelicious
5184d05bc2
refactor(ui): port remaining canvasV1 rendering logic to V2, remove old code
2024-08-30 22:18:47 +10:00
psychedelicious
7ef4553fc9
refactor(ui): fix more types
2024-08-30 22:18:47 +10:00
psychedelicious
d6bd1e4a49
refactor(ui): metadata recall (wip)
...
just enough let the app run
2024-08-30 22:18:47 +10:00
psychedelicious
29413f20a7
refactor(ui): undo/redo button temp fix
2024-08-30 22:18:47 +10:00
psychedelicious
04a44c8ea7
refactor(ui): fix renderer stuff
2024-08-30 22:18:47 +10:00
psychedelicious
426f1b6f9a
refactor(ui): fix misc types
2024-08-30 22:18:47 +10:00
psychedelicious
9c7f5ed321
refactor(ui): fix gallery stuff
2024-08-30 22:18:47 +10:00
psychedelicious
4c37c7f280
refactor(ui): fix delete image stuff
2024-08-30 22:18:47 +10:00
psychedelicious
a2d13cacbf
refactor(ui): fix useIsReadyToEnqueue for new adapterType field
2024-08-30 22:18:47 +10:00
psychedelicious
aa127b83a3
refactor(ui): update generation tab graphs
2024-08-30 22:18:47 +10:00
psychedelicious
e55192ae2a
refactor(ui): add adapterType to ControlAdapterData
2024-08-30 22:18:47 +10:00
psychedelicious
5159fcbc33
refactor(ui): update components & logic to use new unified slice (again)
2024-08-30 22:18:47 +10:00
psychedelicious
02ad7a0f93
refactor(ui): update components & logic to use new unified slice
2024-08-30 22:18:47 +10:00
psychedelicious
bfa496e37f
refactor(ui): merge compositing, params into canvasV2 slice
2024-08-30 22:18:47 +10:00
psychedelicious
fdf347af26
refactor(ui): add scaled bbox state
2024-08-30 22:18:47 +10:00
psychedelicious
0833dbb19d
refactor(ui): update dnd/image upload
2024-08-30 22:18:47 +10:00
psychedelicious
1b6bf58e58
refactor(ui): update size/prompts state
2024-08-30 22:18:47 +10:00
psychedelicious
5ead7bc7b4
refactor(ui): rip out old control adapter implementation
2024-08-30 22:18:47 +10:00
psychedelicious
f326d17856
refactor(ui): canvas v2 (wip)
...
fix entity count select
2024-08-30 22:18:47 +10:00
psychedelicious
908aa9beea
refactor(ui): canvas v2 (wip)
...
delete unused file
2024-08-30 22:18:47 +10:00
psychedelicious
4071e96245
refactor(ui): canvas v2 (wip)
...
merge all canvas state reducers into one big slice (but with the logic split across files so it's not hell)
2024-08-30 22:18:47 +10:00
psychedelicious
b4daf29bd8
refactor(ui): canvas v2 (wip)
...
Fix a few more components
2024-08-30 22:18:47 +10:00
psychedelicious
bf185339c2
refactor(ui): canvas v2 (wip)
...
missed a spot
2024-08-30 22:18:47 +10:00
psychedelicious
df3abc75c2
refactor(ui): canvas v2 (wip)
...
Redo all UI components for different canvas entity types
2024-08-30 22:18:47 +10:00
psychedelicious
28fc9a387c
refactor(ui): canvas v2 (wip)
2024-08-30 22:18:47 +10:00
psychedelicious
8533f207dc
refactor(ui): canvas v2 (wip)
2024-08-30 22:18:47 +10:00
psychedelicious
d135c48319
refactor(ui): canvas v2 (wip)
2024-08-30 22:18:47 +10:00
psychedelicious
ca9090d070
refactor(ui): canvas v2 (wip)
2024-08-30 22:18:47 +10:00
psychedelicious
93b185dc3b
feat(ui): bbox tool
2024-08-30 22:18:47 +10:00
psychedelicious
98e5efa895
fix(ui): rect tool preview
2024-08-30 22:18:47 +10:00
psychedelicious
c6774b829d
fix(ui): multiple stages
2024-08-30 22:18:47 +10:00
psychedelicious
22925f92bd
feat(ui): decouple konva logic from nanostores
2024-08-30 22:18:47 +10:00
psychedelicious
302efcf6e8
feat(ui): store all stage attrs in nanostores
2024-08-30 22:18:47 +10:00
psychedelicious
76f9f90f0a
feat(ui): round stage scale
2024-08-30 22:18:47 +10:00
psychedelicious
5ba338e471
chore(ui): bump konva
2024-08-30 22:18:47 +10:00
psychedelicious
01f101c6f2
feat(ui): generation bbox transformation working
...
whew
2024-08-30 22:18:47 +10:00
psychedelicious
5606aec78d
feat(ui): wip generation bbox
2024-08-30 22:18:47 +10:00
psychedelicious
db90e1fe8b
feat(ui): wip generation bbox
2024-08-30 22:18:47 +10:00
psychedelicious
ae96c479f2
feat(ui): CL zoom and pan, some rendering optimizations
2024-08-30 22:18:47 +10:00
psychedelicious
344ed2c83e
Revert "feat(ui): add x,y,scaleX,scaleY,rotation to objects"
...
This reverts commit 53318b396c967c72326a7e4dea09667b2ab20bdd.
2024-08-30 22:18:47 +10:00
psychedelicious
1985944659
feat(ui): layers manage their own bbox
2024-08-30 22:18:47 +10:00
psychedelicious
915357a6c1
docs(ui): konva image object docstrings
2024-08-30 22:18:47 +10:00
psychedelicious
63c34e78d7
feat(ui): add x,y,scaleX,scaleY,rotation to objects
2024-08-30 22:18:47 +10:00
psychedelicious
366c460c1f
fix(ui): show color picker when using rect tool
2024-08-30 22:18:47 +10:00
psychedelicious
40cab08133
feat(ui): image loading fallback for raster layers
2024-08-30 22:18:47 +10:00
psychedelicious
51de25122a
feat(ui): bbox calc for raster layers
2024-08-30 22:18:47 +10:00
psychedelicious
90313091db
feat(ui): do not fill brush preview when drawing
2024-08-30 22:18:47 +10:00
psychedelicious
9982219d18
fix(ui): brush spacing handling
2024-08-30 22:18:47 +10:00
psychedelicious
b3fe03b8f9
fix(ui): jank when starting a shape when not already focused on stage
2024-08-30 22:18:47 +10:00
psychedelicious
6edd15d68a
feat(ui): wip raster layers
...
I meant to split this up into smaller commits and undo some of it, but I committed afterwards and it's tedious to undo.
2024-08-30 22:18:47 +10:00
psychedelicious
0e2b328c88
feat(ui): support image objects on raster layers
...
Just the UI and internal state, not rendering yet.
2024-08-30 22:18:47 +10:00
psychedelicious
25d7f9c316
tidy(ui): clean up event handlers
...
Separate logic for each tool in preparation for ellipse and polygon tools.
2024-08-30 22:18:47 +10:00
psychedelicious
3870ebdf29
feat(ui): raster layer reset, object group util
2024-08-30 22:18:47 +10:00
psychedelicious
7595d05191
feat(ui): rect shape preview now has fill
2024-08-30 22:18:47 +10:00
psychedelicious
21af727d79
feat(ui): cancel shape drawing on esc
2024-08-30 22:18:47 +10:00
psychedelicious
5691829de6
feat(ui): temp disable history on CL
2024-08-30 22:18:47 +10:00
psychedelicious
20e6a57cf1
feat(ui): raster layer logic
...
- Deduplicate shared logic
- Split up giant renderers file into separate cohesive files
- Tons of cleanup
- Progress on raster layer functionality
2024-08-30 22:18:47 +10:00
psychedelicious
d0c40a8b5b
feat(ui): add raster layer rendering and interaction (WIP)
2024-08-30 22:18:46 +10:00
psychedelicious
f663215f25
feat(ui): scaffold out raster layers
...
Raster layers may have images, lines and shapes. These will replace initial image layers and provide sketching functionality like we have on canvas.
2024-08-30 22:18:46 +10:00
psychedelicious
7c5dea6d12
refactor(ui): revise types for line and rect objects
...
- Create separate object types for brush and eraser lines, instead of a single type that has a `tool` field.
- Create new object type for rect shapes.
- Add logic to schemas to migrate old object types to new.
- Update renderers & reducers.
2024-08-30 22:18:46 +10:00
Ryan Dick
87261bdbc9
FLUX memory management improvements ( #6791 )
...
## Summary
This PR contains several improvements to memory management for FLUX
workflows.
It is now possible to achieve better FLUX model caching performance, but
this still requires users to manually configure their `ram`/`vram`
settings. E.g. a `vram` setting of 16.0 should allow for all quantized
FLUX models to be kept in memory on the GPU.
Changes:
- Check the size of a model on disk and free the requisite space in the
model cache before loading it. (This behaviour existed previously, but
was removed in https://github.com/invoke-ai/InvokeAI/pull/6072/files .
The removal did not seem to be intentional).
- Removed the hack to free 24GB of space in the cache before loading the
FLUX model.
- Split the T5 embedding and CLIP embedding steps into separate
functions so that the two models don't both have to be held in RAM at
the same time.
- Fix a bug in `InvokeLinear8bitLt` that was causing some tensors to be
left on the GPU when the model was offloaded to the CPU. (This class is
getting very messy due to the non-standard state_dict handling in
`bnb.nn.Linear8bitLt`. )
- Tidy up some dtype handling in FluxTextToImageInvocation to avoid
situations where we hold references to two copies of the same tensor
unnecessarily.
- (minor) Misc cleanup of ModelCache: improve docs and remove unused
vars.
Future:
We should revisit our default ram/vram configs. The current defaults are
very conservative, and users could see major performance improvements
from tuning these values.
## QA Instructions
I tested the FLUX workflow with the following configurations and
verified that the cache hit rates and memory usage matched the expected
behaviour:
- `ram = 16` and `vram = 16`
- `ram = 16` and `vram = 1`
- `ram = 1` and `vram = 1`
Note that the changes in this PR are not isolated to FLUX. Since we now
check the size of models on disk, we may see slight changes in model
cache offload patterns for other models as well.
## Checklist
- [x] _The PR has a short but descriptive title, suitable for a
changelog_
- [x] _Tests added / updated (if applicable)_
- [x] _Documentation added / updated (if applicable)_
2024-08-29 15:17:45 -04:00
Ryan Dick
4e4b6c6dbc
Tidy variable management and dtype handling in FluxTextToImageInvocation.
2024-08-29 19:08:18 +00:00
Ryan Dick
5e8cf9fb6a
Remove hack to clear cache from the FluxTextToImageInvocation. We now clear the cache based on the on-disk model size.
2024-08-29 19:08:18 +00:00
Ryan Dick
c738fe051f
Split T5 encoding and CLIP encoding into separate functions to ensure that all model references are locally-scoped so that the two models don't have to be help in memory at the same time.
2024-08-29 19:08:18 +00:00
Ryan Dick
29fe1533f2
Fix bug in InvokeLinear8bitLt that was causing old state information to persist after loading from a state dict. This manifested as state tensors being left on the GPU even when a model had been offloaded to the CPU cache.
2024-08-29 19:08:18 +00:00
Ryan Dick
77090070bd
Check the size of a model on disk and make room for it in the cache before loading it.
2024-08-29 19:08:18 +00:00
Ryan Dick
6ba9b1b6b0
Tidy up GIG -> GB and remove unused GIG constant.
2024-08-29 19:08:18 +00:00
Ryan Dick
c578b8df1e
Improve ModelCache docs.
2024-08-29 19:08:18 +00:00
Ryan Dick
cad9a41433
Remove unused MOdelCache.exists(...) function.
2024-08-29 19:08:18 +00:00
Ryan Dick
5fefb3b0f4
Remove unused param from ModelCache.
2024-08-29 19:08:18 +00:00
Ryan Dick
5284a870b0
Remove unused constructor params from ModelCache.
2024-08-29 19:08:18 +00:00
Ryan Dick
e064377c05
Remove default model cache sizes from model_cache_default.py. These defaults were misleading, because the config defaults take precedence over them.
2024-08-29 19:08:18 +00:00
Mary Hipp
3e569c8312
feat(ui): add fields for CLIP embed models and Flux VAE models in workflows
2024-08-29 11:52:51 -04:00
maryhipp
16825ee6e9
feat(nodes): bump version of flux model node, update default workflow
2024-08-29 11:52:51 -04:00
Mary Hipp
3f5340fa53
feat(nodes): add submodels as inputs to FLUX main model node instead of hardcoded names
2024-08-29 11:52:51 -04:00
chainchompa
f2a1a39b33
Add selectedStylePreset to app parameters ( #6787 )
...
## Summary
- Add selectedStylePreset to app parameters
<!--A description of the changes in this PR. Include the kind of change
(fix, feature, docs, etc), the "why" and the "how". Screenshots or
videos are useful for frontend changes.-->
## Related Issues / Discussions
<!--WHEN APPLICABLE: List any related issues or discussions on github or
discord. If this PR closes an issue, please use the "Closes #1234 "
format, so that the issue will be automatically closed when the PR
merges.-->
## QA Instructions
<!--WHEN APPLICABLE: Describe how you have tested the changes in this
PR. Provide enough detail that a reviewer can reproduce your tests.-->
## Merge Plan
<!--WHEN APPLICABLE: Large PRs, or PRs that touch sensitive things like
DB schemas, may need some care when merging. For example, a careful
rebase by the change author, timing to not interfere with a pending
release, or a message to contributors on discord after merging.-->
## Checklist
- [ ] _The PR has a short but descriptive title, suitable for a
changelog_
- [ ] _Tests added / updated (if applicable)_
- [ ] _Documentation added / updated (if applicable)_
2024-08-28 10:53:07 -04:00
chainchompa
326de55d3e
remove api changes and only preselect style preset
2024-08-28 09:53:29 -04:00
chainchompa
b2df909570
added selectedStylePreset to preload presets when app loads
2024-08-28 09:50:44 -04:00
chainchompa
026ac36b06
Revert "added selectedStylePreset to preload presets when app loads"
...
This reverts commit e97fd85904 .
2024-08-28 09:44:08 -04:00
chainchompa
92125e5fd2
bug fixes
2024-08-27 16:13:38 -04:00
chainchompa
c0c139da88
formatting ruff
2024-08-27 15:46:51 -04:00
chainchompa
404ad6a7fd
cleanup
2024-08-27 15:42:42 -04:00
chainchompa
fc39086fb4
call stylePresetSelected
2024-08-27 15:34:31 -04:00
chainchompa
cd215700fe
added route for selecting style preset
2024-08-27 15:34:07 -04:00
chainchompa
e97fd85904
added selectedStylePreset to preload presets when app loads
2024-08-27 15:33:24 -04:00
Brandon Rising
0a263fa5b1
chore: bump version to v4.2.9rc1
2024-08-27 12:09:27 -04:00
Mary Hipp
fae3836a8d
fix CLIP
2024-08-27 10:29:10 -04:00
Mary Hipp
b3d2eb4178
add translations for new model types in MM, remove clip vision from filter since its not displayed in list
2024-08-27 10:29:10 -04:00
psychedelicious
576f1cbb75
build: remove broken scripts
...
These two scripts are broken and can cause data loss. Remove them.
They are not in the launcher script, but _are_ available to users in the terminal/file browser.
Hopefully, when we removing them here, `pip` will delete them on next installation of the package...
2024-08-27 22:01:45 +10:00