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
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