psychedelicious
6dcaf75b5f
feat(ui): regional prompts spray n pray
...
Trying a lot of different things as I iterated, so this is smooshed into one big commit... too hard to split it now.
- Iterated on IP adapter handling and UI. Unfortunately there is an bug related to undo/redo. The IP adapter state is split across the `controlAdapters` slice and the `regionalPrompts` slice, but only the `regionalPrompts` slice supports undo/redo. If you delete the IP adapter and then undo/redo to a history state where it existed, you'll get an error. The fix is likely to merge the slices... Maybe there's a workaround.
- Iterated on UI. I think the layers are OK now.
- Removed ability to disable RP globally for now. It's enabled if you have enabled RP layers.
- Many minor tweaks and fixes.
2024-04-22 23:09:39 +10:00
psychedelicious
018845cda0
tidy(ui): regional prompts kind
-> type
2024-04-22 23:09:39 +10:00
psychedelicious
8c0a061fa0
fix(ui): hotkeys dependency array
2024-04-20 11:32:08 -04:00
psychedelicious
4895875ded
feat(ui): rects on regional prompt UI
2024-04-20 11:32:08 -04:00
psychedelicious
cfddbda578
tidy(ui): clean up action names
2024-04-20 11:32:08 -04:00
psychedelicious
58d3a9e7d4
refactor(ui): revise regional prompts state to support prompt-less mask layers
...
This structure is more adaptable to future features like IP-Adapter-only regions, controlnet layers, image masks, etc.
2024-04-20 11:32:08 -04:00
psychedelicious
a00e703144
feat(nodes): image mask to tensor invocation
...
Thanks @JPPhoto!
2024-04-20 11:32:08 -04:00
psychedelicious
e4024bdeb9
fix(ui): floor all pixel coords
...
This prevents rendering objects with sub-pixel positioning, which looks soft
2024-04-20 11:32:08 -04:00
psychedelicious
944690ac8e
feat(ui): remove drag distance on layers
2024-04-20 11:32:08 -04:00
psychedelicious
a7d69aa0a9
fix(ui): brush preview cursor jank
2024-04-20 11:32:08 -04:00
psychedelicious
15018fdbc0
fix(ui): brush preview not visible after hotkey
2024-04-20 11:32:08 -04:00
psychedelicious
31ace9aff8
feat(ui): tool hotkeys for rp
2024-04-20 11:32:08 -04:00
psychedelicious
3f4ea30113
fix(ui): fix missing bbox when a layer is empty
2024-04-20 11:32:08 -04:00
psychedelicious
7edcadb371
fix(ui): bbox rendered slightly too small
2024-04-20 11:32:08 -04:00
psychedelicious
d582203c62
chore(ui): lint
2024-04-20 14:54:49 +10:00
psychedelicious
148a6c08ca
fix(ui): fix bbox caching
2024-04-20 14:54:49 +10:00
psychedelicious
1e904d281a
feat(ui): hook up sd1.5 t2i graph to regional prompts
2024-04-20 14:54:49 +10:00
psychedelicious
03d9a75720
feat(ui): better rp colors
2024-04-20 14:54:49 +10:00
psychedelicious
5edce0a4de
perf(ui): caching efficiency
2024-04-20 14:54:49 +10:00
psychedelicious
604bf4e9ec
perf(ui): use efficient group caching instead of a compositing rect
...
Seems to be the same speed and it's less complex.
2024-04-20 14:54:49 +10:00
psychedelicious
39d036bb37
feat(ui): update move tool to show all bboxes, mouseover bbox strokes
2024-04-20 14:54:49 +10:00
psychedelicious
8a69fbd336
perf(ui): more bbox optimizations
...
- Keep track of whether the bbox needs to be recalculated (e.g. had lines/points added)
- Keep track of whether the bbox has eraser strokes - if yes, we need to do the full pixel-perfect bbox calculation, otherwise we can use the faster getClientRect
- Use comparison rather than Math.min/max in bbox calculation (slightly faster)
- Return `null` if no pixel data at all in bbox
2024-04-20 14:54:49 +10:00
psychedelicious
a71ed10b71
perf(ui): more efficient bbox method with smaller minimum offscreen canvas size
2024-04-20 14:54:49 +10:00
psychedelicious
9d3978edcf
fix(ui): give min dimensions to rp storybook
2024-04-20 14:54:49 +10:00
psychedelicious
18e1d74917
fix(ui): group layer color change history
2024-04-20 14:54:49 +10:00
psychedelicious
9276ecfd02
feat(ui): rp ui styling/layout
2024-04-19 09:32:56 -04:00
psychedelicious
ea527f5fe1
feat(nodes): add beta classification to mask tensor nodes
2024-04-19 09:32:56 -04:00
psychedelicious
d43f9732ab
feat(ui): rp ui styling
2024-04-19 09:32:56 -04:00
psychedelicious
c613839740
feat(ui): use translations for rp features
2024-04-19 09:32:56 -04:00
psychedelicious
bb371cfeca
feat(ui): minor styling rp
2024-04-19 09:32:56 -04:00
psychedelicious
6a5510146c
feat(ui): add default rp brush size
2024-04-19 09:32:56 -04:00
psychedelicious
9667f77c41
feat(ui): rp editor styling
2024-04-19 09:32:56 -04:00
psychedelicious
e93e0612af
tidy(ui): selectedLayer
-> selectedLayerId
2024-04-19 09:32:56 -04:00
psychedelicious
9528287d56
feat(ui): move ephemeral tool state out of redux
2024-04-19 09:32:56 -04:00
psychedelicious
14c722c265
tidy(ui): remove unused conditional
2024-04-19 09:32:56 -04:00
psychedelicious
4b2cd2da9f
feat(ui): remove special handling of main prompt
...
Until we have a good handle on what works best, leaving this to the user
2024-04-19 09:32:56 -04:00
psychedelicious
3c5b728bee
feat(ui): add enabled state for RP
2024-04-19 09:32:56 -04:00
psychedelicious
9b5c47748d
tidy(ui): isRegionalPromptLayer
-> isRPLayer
2024-04-19 09:32:56 -04:00
psychedelicious
eb781272f7
tidy(ui): organize rp layer components
2024-04-19 09:32:56 -04:00
psychedelicious
642a0de3dd
feat(ui): organize layer naming
...
prep for non-rp layer types
2024-04-19 09:32:56 -04:00
psychedelicious
f3b4cecf2e
feat(ui): invert tensor mask instead of loading mask image and converting to tensor second time
...
minor efficiency improvement
2024-04-19 09:32:56 -04:00
psychedelicious
499e7a7b74
chore(ui): typegen
2024-04-19 09:32:56 -04:00
psychedelicious
aace364677
feat(nodes): add InvertTensorMaskInvocation
2024-04-19 09:32:56 -04:00
psychedelicious
c195094e91
fix(ui): do not open panels when collapsed and window resize
2024-04-19 09:32:56 -04:00
psychedelicious
e6c57edf87
tidy(ui): shuffle graph builder logic
2024-04-19 09:32:56 -04:00
psychedelicious
c217e052a8
tidy(ui): remove unused action
2024-04-19 09:32:56 -04:00
psychedelicious
964e2236b9
feat(ui): do not add promptless conditioning nodes
2024-04-19 09:32:56 -04:00
psychedelicious
a6e64423d9
feat(ui): per-layer autonegative
2024-04-19 09:32:56 -04:00
psychedelicious
d3aa97ab99
feat(ui): add copy graph button to queue item detail view
2024-04-19 09:32:56 -04:00
psychedelicious
0d8edd67ab
fix(ui): group lines together in undo history
2024-04-19 09:32:56 -04:00
psychedelicious
d9dd00ea20
feat(ui): undo/redo in regional prompts
...
using the `redux-undo` library
2024-04-19 09:32:56 -04:00
psychedelicious
170763899a
tidy(ui): tidy regional prompts graph helper, add comments
2024-04-19 09:32:56 -04:00
psychedelicious
9e1a4a4a07
feat(ui): regional prompts default layer opacity
2024-04-19 09:32:56 -04:00
psychedelicious
dcb4a40741
fix(ui): regional prompts brush preview wonkiness
2024-04-19 09:32:56 -04:00
psychedelicious
f8bf985256
perf(ui): do not recreate map callback on every render
2024-04-19 09:32:56 -04:00
psychedelicious
81f29b9624
tidy(ui): remove errant console.log
2024-04-19 09:32:56 -04:00
psychedelicious
f2dde9a035
feat(ui): cleared selected layer styling
2024-04-19 09:32:56 -04:00
psychedelicious
85f4a066fb
feat(ui): use logger for stage renderer
2024-04-19 09:32:56 -04:00
psychedelicious
b9e6b7ba48
feat(ui): restore layer arrange functionality
2024-04-19 09:32:56 -04:00
psychedelicious
085f7bdbee
feat(ui): add invert negative mode
...
Adds an additional negative conditioning using the inverted mask of the positive conditioning and the positive prompt. May be useful for mutually exclusive regions.
2024-04-19 09:32:56 -04:00
psychedelicious
e4fcb6627a
feat(ui): style regional prompt boxes
2024-04-19 09:32:56 -04:00
psychedelicious
47aa6357d1
tidy(ui): organize regional prompts files
2024-04-19 09:32:56 -04:00
psychedelicious
b81030fe27
tidy(ui): remove unused exports
2024-04-19 09:32:56 -04:00
psychedelicious
a1a9f0da73
tidy(ui): remove more unused files
2024-04-19 09:32:56 -04:00
psychedelicious
8f4f3b773c
tidy(ui): remove unused files, code
2024-04-19 09:32:56 -04:00
psychedelicious
00737efc31
tidy(ui): tidy naming of regional prompt utils
2024-04-19 09:32:56 -04:00
psychedelicious
5924dc6ff6
feat(ui): transparency on regional prompts canvas
2024-04-19 09:32:56 -04:00
psychedelicious
246fabf2a0
feat(ui): scaling regional prompt canvas
2024-04-19 09:32:56 -04:00
psychedelicious
30e3e12513
feat(ui): layouting regional prompts
2024-04-19 09:32:56 -04:00
psychedelicious
a5bfe2dccb
feat(ui): support negative regional prompt
2024-04-19 09:32:56 -04:00
psychedelicious
aa6bfc8645
fix(ui): wip misc regional prompting ui
2024-04-19 09:32:56 -04:00
psychedelicious
20ccdb6c8f
fix(ui): remove extra type in nodestate
2024-04-19 09:32:56 -04:00
psychedelicious
8caa7bc2b1
feat(ui): abstract out bbox renderer
2024-04-19 09:32:56 -04:00
psychedelicious
ede8826757
feat(ui): remove dep on stage in mouse handlers
2024-04-19 09:32:56 -04:00
psychedelicious
ff7aa2558a
feat(ui): display prompt when debugging regions
2024-04-19 09:32:56 -04:00
psychedelicious
c9bf00b80b
feat(ui): restore invoke button (wip)
2024-04-19 09:32:56 -04:00
psychedelicious
1f8f429d55
feat(ui): abstract layer renderer
2024-04-19 09:32:56 -04:00
psychedelicious
d34e431002
feat(ui): abstract brush preview logic
2024-04-19 09:32:56 -04:00
psychedelicious
cdb481e836
feat(ui): use konva generics for types in selector functions
2024-04-19 09:32:56 -04:00
psychedelicious
525e6d697c
feat(ui): re-implement with imperative konva api (wip)
2024-04-19 09:32:56 -04:00
psychedelicious
bbbb5479e8
feat(ui): re-implement with imperative konva api (wip)
2024-04-19 09:32:56 -04:00
psychedelicious
ae7797f662
feat(ui): re-implement with imperative konva api (wip)
2024-04-19 09:32:56 -04:00
psychedelicious
05deeb68fa
feat(ui): draft of graph helper for regional prompts
2024-04-19 09:32:56 -04:00
psychedelicious
602a59066e
fix(nodes): handle invert in alpha_mask_to_tensor
2024-04-19 09:32:56 -04:00
psychedelicious
d1db6198b5
perf(ui): memoize & otherwise optimize regional prompts ui
2024-04-19 09:32:56 -04:00
psychedelicious
944fa1a847
chore(ui): lint
2024-04-19 09:32:56 -04:00
psychedelicious
52e7daffe7
feat(ui): selected layer styling
2024-04-19 09:32:56 -04:00
psychedelicious
cf4c1750cb
fix(ui): caching broke layer rendering
2024-04-19 09:32:56 -04:00
psychedelicious
de7ecc8e3e
feat(ui): tweak bbox styling
2024-04-19 09:32:56 -04:00
psychedelicious
6c0481ef51
fix(ui): do not reset layer position when toggling visibility
2024-04-19 09:32:56 -04:00
psychedelicious
b9d0da44eb
feat(ui): wip layer transparency
2024-04-19 09:32:56 -04:00
psychedelicious
0a42d7d510
docs(ui): update docstrings for helper function
2024-04-19 09:32:56 -04:00
psychedelicious
c1aae0815d
feat(ui): regional prompting layout, styling
2024-04-19 09:32:56 -04:00
psychedelicious
e7523bd1d9
fix(ui): fix layer debug
2024-04-19 09:32:56 -04:00
psychedelicious
8911017bd1
feat(ui): selectable & draggable layers
2024-04-19 09:32:56 -04:00
psychedelicious
fc26f3e430
feat(nodes): add alpha mask to tensor invocation
2024-04-19 09:32:56 -04:00
psychedelicious
c89a24d1ea
feat(ui): add util to get blobs from layers
2024-04-19 09:32:56 -04:00
psychedelicious
52ba4966c9
feat(ui): wip regional prompting UI
...
- Add eraser tool, applies per layer
2024-04-19 09:32:56 -04:00
psychedelicious
822dfa77fc
feat(ui): wip regional prompting UI
...
- Arrange layers
- Layer visibility
- Layered brush preview
- Cleanup
2024-04-19 09:32:56 -04:00
psychedelicious
83d359b681
feat(ui): wip regional prompting UI
2024-04-19 09:32:56 -04:00