psychedelicious
c9886796f6
feat(ui): add image viewer overlay
...
- Works on txt2img, canvas and workflows tabs, img2img has its own side-by-side view
- In workflow editor, the is closeable only if you are in edit mode, else it's always there
- Press `i` to open
- Press `esc` to close
- Selecting an image or changing image selection opens the viewer
- When generating, if auto-switch to new image is enabled, the viewer opens when an image comes in
To support this change, I organized and restructured some tab stuff.
2024-05-02 23:09:26 -04:00
psychedelicious
209ddc2037
fix(ui): do not toggle layers on double click of opacity popover
2024-05-02 23:09:26 -04:00
psychedelicious
8b6a283eab
feat(ui): add opacity to initial image layer
2024-05-02 23:09:26 -04:00
psychedelicious
75be6814bb
feat(ui): add renderer for initial image
2024-05-02 23:09:26 -04:00
psychedelicious
1d213067e8
feat(ui): add initial image layer to CL
2024-05-02 23:09:26 -04:00
psychedelicious
d67480d92c
feat(ui): add layerwrapper component
2024-05-02 23:09:26 -04:00
psychedelicious
d55ea318ec
tidy(ui): remove unused gallery hotkeys
2024-05-02 23:09:26 -04:00
psychedelicious
474eab6f8a
fix(ui): clamp incoming w/h to ensure always a multiple of 8
...
When recalling metadata and/or using control image dimensions, it was possible to set a width or height that was not a multiple of 8, resulting in generation failures.
Added a `clamp` option to the w/h actions to fix this. The option is used for all untrusted sources - everything except for the w/h number inputs, which clamp the values themselves.
2024-05-02 23:09:26 -04:00
psychedelicious
1b13fee256
fix(ui): firefox drawing lag
...
Firefox v125.0.3 and below has a bug where `mouseenter` events are fired continually during mouse moves. The issue isn't present on FF v126.0b6 Developer Edition. It's not clear if the issue is present on FF nightly, and we're not sure if it will actually be fixed in the stable v126 release.
The control layers drawing logic relied on on `mouseenter` events to create new lines, and `mousemove` to extend existing lines. On the affected version of FF, all line extensions are turned into new lines, resulting in very poor performance, noncontiguous lines, and way-too-big internal state.
To resolve this, the drawing handling was updated to not use `mouseenter` at all. As a bonus, resolving this issue has resulted in simpler logic for drawing on the canvas.
2024-05-02 23:09:26 -04:00
psychedelicious
6363095b29
feat(ui): control adapter recall for control layers
...
- Add set of metadata handlers for the control layers CAs
- Use these conditionally depending on the active tab - when recalling on txt2img, the CAs go to control layers, else they go to the old CA area.
2024-05-02 23:09:26 -04:00
psychedelicious
4cd78b9478
feat(ui): add getImageDTO imperative RTKQ helper
2024-05-02 23:09:26 -04:00
psychedelicious
2cde8a643e
tidy(ui): suffix a control adapter types/objects with V2
...
Prevent mixing the old and new implementations up
2024-05-02 23:09:26 -04:00
psychedelicious
f9555f03f5
tidy(ui): "CONTROLNET_PROCESSORS" -> "CA_PROCESSOR_DATA"
2024-05-02 23:09:26 -04:00
psychedelicious
b1d8f3a3f9
tidy(ui): revert changes to old CA implementation
...
These changes were left over from the previous attempt to handle control adapters in control layers with the same logic. Control Layers are now handled totally separately, so these changes may be reverted.
2024-05-02 23:09:26 -04:00
psychedelicious
33a9f9a4dc
fix(nodes): fix constraints in cnet processors
...
There were some invalid constraints with the processors - minimum of 0 for resolution or multiple of 64 for resolution.
Made minimum 1px and no multiple ofs.
2024-05-02 12:24:04 +10:00
psychedelicious
c35625eb44
feat(ui): processor layout changes
2024-05-01 21:48:47 -04:00
psychedelicious
6f572e1cce
fix(ui): convert t2i to cnet and vice-versa when model changes
2024-05-01 21:48:47 -04:00
psychedelicious
54acd3f2b1
ci(ui): restore error status for circular deps
2024-05-01 21:48:47 -04:00
psychedelicious
6e966909ab
chore(ui): lint
2024-05-01 21:48:47 -04:00
psychedelicious
311ba8c04b
fix(ui): ensure canvas size is correctly updated when model changed
...
Closes #6293
2024-05-01 21:48:47 -04:00
psychedelicious
1b617768cf
fix(ui): canvas infinite loop when setting bbox dims
...
When typing in a number into the w/h number inputs, if the number is less than the step, it appears the value of 0 is used. This is unexpected; it means Chakra isn't clamping the value correctly (or maybe our wrapper isn't clamping it).
Add checks to never bail if the width or height value from the number input component is 0.
2024-05-01 21:48:47 -04:00
psychedelicious
8ceb94497e
fix(ui): fix canvas rendering of control images
2024-05-01 21:48:47 -04:00
psychedelicious
efb571401c
feat(ui): tweak control adapter layout
2024-05-01 21:48:47 -04:00
psychedelicious
ffba4871d0
tidy(ui): "scribble" -> "Scribble"
2024-05-01 21:48:47 -04:00
psychedelicious
9437d701b2
fix(ui): disable clear processor when no processor selected
2024-05-01 21:48:47 -04:00
psychedelicious
6effa19626
fix(ui): edge cases in auto-process
2024-05-01 21:48:47 -04:00
psychedelicious
45c2ac41d5
feat(ui): processor layout/styling
2024-05-01 21:48:47 -04:00
psychedelicious
ca1c3c0873
fix(ui): do not re-process if processor config hasn't changed
2024-05-01 21:48:47 -04:00
psychedelicious
47ee08db91
fix(ui): processor select styling
2024-05-01 21:48:47 -04:00
psychedelicious
c96b98fc9e
feat(ui): auto-process for control layer CAs
2024-05-01 21:48:47 -04:00
psychedelicious
905baf2787
refactor(ui): continue wiring up CA logic across (wip)
...
It works!
2024-05-01 21:48:47 -04:00
psychedelicious
0e55488ff6
refactor(ui): wire up CA logic across (wip)
2024-05-01 21:48:47 -04:00
psychedelicious
424a27eeda
refactor(ui): add CA processor config components (wip)
2024-05-01 21:48:47 -04:00
psychedelicious
6007218a51
refactor(ui): add CA config components (wip)
2024-05-01 21:48:47 -04:00
psychedelicious
811e8a5a8b
refactor(ui): rename & export actions from CL slice
2024-05-01 21:48:47 -04:00
psychedelicious
121918352a
refactor(ui): add control layers separate control adapter implementation (wip)
...
- Revise control adapter config types
- Recreate all control adapter mutations in control layers slice
- Bit of renaming along the way - typing 'RegionalGuidanceLayer' over and over again was getting tedious
2024-05-01 21:48:47 -04:00
psychedelicious
3717321480
tidy(ui): organize layer components
2024-05-01 21:48:47 -04:00
blessedcoolant
dce8b88aaf
fix: change eta only for TCD Scheduler
2024-05-01 12:47:46 +05:30
blessedcoolant
1bdcbe3284
cleanup: use dict update to actually update the scheduler keyword args
2024-05-01 12:22:39 +05:30
Kent Keirsey
88ac3bc7f0
Merge branch 'main' into main
2024-04-30 16:51:44 -04:00
psychedelicious
abb3bb9f7e
Update invokeai_version.py
2024-05-01 06:30:28 +10:00
blessedcoolant
2ddb82200c
fix: Manually update eta(gamma) to 1.0 for TCDScheduler
...
seems to work best with invoke at 4 steps
2024-05-01 01:20:53 +05:30
blessedcoolant
38880cde5c
chore: update schema
2024-05-01 01:20:22 +05:30
blessedcoolant
39ab4dd83e
Merge branch 'main' into pr/6086
2024-05-01 00:37:06 +05:30
psychedelicious
631878b212
feat(ui): border radius on canvas
2024-04-30 08:10:59 -04:00
psychedelicious
7a5399e83c
feat(ui): display message when no layers are added
2024-04-30 08:10:59 -04:00
psychedelicious
e90775731d
fix(ui): layer layout orientation
2024-04-30 08:10:59 -04:00
psychedelicious
3f26880493
fix(ui): "Global Settings" -> "Settings"
2024-04-30 08:10:59 -04:00
psychedelicious
21cf1004db
fix(ui): layers default to expanded
2024-04-30 08:10:59 -04:00
psychedelicious
d74cd12aa6
feat(ui): collapsible layers
2024-04-30 08:10:59 -04:00
psychedelicious
cf1883585d
chore(ui): lint
2024-04-30 08:10:59 -04:00
psychedelicious
8a791d4f16
feat(ui): make control image opacity filter toggleable
2024-04-30 08:10:59 -04:00
psychedelicious
1212698059
tidy(ui): more renaming of components
2024-04-30 08:10:59 -04:00
psychedelicious
ba6db33b39
tidy(ui): more renaming of components
2024-04-30 08:10:59 -04:00
psychedelicious
b3dbfdaa02
tidy(ui): more renaming of components
2024-04-30 08:10:59 -04:00
psychedelicious
3441187c23
tidy(ui): "regional prompts" -> "control layers"
2024-04-30 08:10:59 -04:00
psychedelicious
8de56fd77c
tidy(ui): move regionalPrompts files to controlLayers
2024-04-30 08:10:59 -04:00
psychedelicious
22bd33b7c6
chore(ui): lint
2024-04-30 08:10:59 -04:00
psychedelicious
2af5c4be9f
fix(ui): ip adapter layers are not selectable
2024-04-30 08:10:59 -04:00
psychedelicious
415a41e21a
perf(ui): reset maskobjects when layer has no bbox (all objects erased)
2024-04-30 08:10:59 -04:00
psychedelicious
aa2ca03056
fix(ui): filter layers based on tab when disabling invoke button
2024-04-30 08:10:59 -04:00
psychedelicious
a20faca20f
feat(ui): layer layout tweaks
2024-04-30 08:10:59 -04:00
psychedelicious
9d042baf48
fix(ui): ip adapter layers always at bottom of list
2024-04-30 08:10:59 -04:00
psychedelicious
6195741814
feat(ui): move global mask opacity to settings popover
2024-04-30 08:10:59 -04:00
psychedelicious
c2f8adf93e
fix(ui): deselect other layers when new layer added
2024-04-30 08:10:59 -04:00
psychedelicious
ace3955760
fix(ui): tool preview/cursor when non-interactable layer selected
2024-04-30 08:10:59 -04:00
psychedelicious
720e16cea6
feat(ui): tweak layer list styling to better indicate selectablility
2024-04-30 08:10:59 -04:00
psychedelicious
a357a1ac9d
feat(ui): remove select layer on click in canvas
...
It's very easy to end up in a spot where you cannot select a layer at all to move it around. Too tricky to handle otherwise.
2024-04-30 08:10:59 -04:00
psychedelicious
22f160bfcc
fix(ui): unlink control adapter opaicty from global mask opacity
2024-04-30 08:10:59 -04:00
psychedelicious
fa637b5c59
fix(ui): add missed ca layer opacity logic
...
didn't stage the right changes a few commits back
2024-04-30 08:10:59 -04:00
psychedelicious
1f68a60752
feat(ui): hold shift to use control image size w/o model constraints
2024-04-30 08:10:59 -04:00
psychedelicious
048bd18e10
feat(ui): separate ca layer opacity
2024-04-30 08:10:59 -04:00
psychedelicious
e5ec529f0f
feat(ui): fix layer arranging
2024-04-30 08:10:59 -04:00
psychedelicious
d884c15d0c
feat(ui): update layer menus
2024-04-30 08:10:59 -04:00
psychedelicious
9ee7cad613
feat(ui): make control layer ui exclusive to txt2img tab
2024-04-30 08:10:59 -04:00
psychedelicious
629110784d
fix(ui): delete control layers correctly
2024-04-30 08:10:59 -04:00
psychedelicious
c1666a8b5a
fix(ui): select default control/ip adapter models in control layers
2024-04-30 08:10:59 -04:00
psychedelicious
d14b315bc6
fix(ui): use optimal size when using control image dims
2024-04-30 08:10:59 -04:00
psychedelicious
fe459295ea
fix(ui): exclude disabled control adapters on control layers
2024-04-30 08:10:59 -04:00
psychedelicious
9d67ec9efe
fix(ui): toggle control adapter layer vis
2024-04-30 08:10:59 -04:00
psychedelicious
5bf4d37949
perf(ui): reduce control image processing to when it is needed
...
Only should reprocess if the processor settings or the image has changed.
2024-04-30 08:10:59 -04:00
psychedelicious
387ab9cee7
feat(ui): reset controlnet model to null instead of disabling when base model changes
2024-04-30 08:10:59 -04:00
psychedelicious
56050f7887
fix(ui): fix canvas scaling when window is zoomed
...
Konva doesn't react to changes to window zoom/scale. If you open the tab at, say, 90%, then bump to 100%, the pixel ratio of the canvas doesn't change. This results in lower-quality renders on the canvas (generation is unaffected).
2024-04-30 08:10:59 -04:00
psychedelicious
c354470cd1
perf(ui): do not cache controlnet images unless required
2024-04-30 08:10:59 -04:00
psychedelicious
ded8267505
WIP control adapters in regional
2024-04-30 08:10:59 -04:00
psychedelicious
e822897b1c
feat(nodes): add prototype heuristic image resize node
...
Uses the fancy cnet resize that retains edges.
2024-04-30 08:10:59 -04:00
psychedelicious
2d7b8c2a1b
fix(backend): do not round image dims to 64 in controlnet processor resize
...
Rounding the dims results in control images that are subtly different than the input. We round to the nearest 8px later, there's no need to round now.
2024-04-30 08:10:59 -04:00
psychedelicious
ebeae41cb2
tidy(ui): minor ca component tidy
2024-04-30 08:10:59 -04:00
psychedelicious
6f5f3381f9
feat(ui): revise internal state for RCC
2024-04-30 08:10:59 -04:00
psychedelicious
2f6fec8c6c
chore(ui): lint
2024-04-30 08:10:59 -04:00
psychedelicious
cc4bef4859
refactor(ui): move size state to regional
2024-04-30 08:10:59 -04:00
psychedelicious
b6a45e53f1
refactor(ui): move positive2 and negative2 prompt to regional
2024-04-30 08:10:59 -04:00
psychedelicious
1cf1e53a6c
refactor(ui): move positive and negative prompt to regional
2024-04-30 08:10:59 -04:00
psychedelicious
c686625076
feat(ui): add 'control_layer' type
2024-04-30 08:10:59 -04:00
psychedelicious
d861bc690e
feat(mm): handle PC_PATH_MAX on external drives on macOS
...
`PC_PATH_MAX` doesn't exist for (some?) external drives on macOS. We need error handling when retrieving this value.
Also added error handling for `PC_NAME_MAX` just in case. This does work for me for external drives on macOS, though.
Closes #6277
2024-04-30 07:57:03 -04:00
dunkeroni
f262b9032d
fix: changed validation to not error on connection
2024-04-28 12:48:56 -04:00
dunkeroni
71c3197eab
fix: denoise latents accepts CFG lists as input
2024-04-28 12:48:56 -04:00
psychedelicious
241a1fdb57
feat(mm): support sdxl ckpt inpainting models
...
There are only a couple SDXL inpainting models, and my tests indicate they are not as good as SD1.5 inpainting, but at least we support them now.
- Add the config file. This matches what is used in A1111. The only difference from the non-inpainting SDXL config is the number of in-channels.
- Update the legacy config maps to use this config file.
2024-04-28 12:57:27 +10:00
psychedelicious
398f37c0ed
tidy(backend): clean up controlnet_utils
...
- Use the our adaptation of the HWC3 function with better types
- Extraction some of the util functions, name them better, add comments
- Improve type annotations
- Remove unreachable codepaths
2024-04-25 13:20:09 +10:00
psychedelicious
6b0bf59682
feat(backend): update nms util to make blur/thresholding optional
2024-04-25 13:20:09 +10:00
psychedelicious
5b8f77f990
tidy(nodes): move cnet mode literals to utils
...
Now they can be used in type signatures without circular imports.
2024-04-25 13:20:09 +10:00
psychedelicious
3207822738
Update invokeai_version.py
2024-04-25 12:31:59 +10:00
psychedelicious
8d86fabf4b
chore(ui): lint
2024-04-24 20:09:52 +10:00
psychedelicious
af3e910ad3
fix(ui): fix layer arrangement
2024-04-24 20:09:52 +10:00
psychedelicious
af25d00964
tidy(ui): use const for brush spacing
2024-04-24 20:09:52 +10:00
psychedelicious
d4a30d08ef
feat(ui): create new line when mouse held down, leaves canvas and comes back over
2024-04-24 20:09:52 +10:00
psychedelicious
bd8a33e824
tidy(ui): clean up renderer functions
...
- Split logic to create layers/objects from the updating logic
- Organize and comment functions
2024-04-24 20:09:52 +10:00
psychedelicious
b425646b7b
chore(ui): lint
2024-04-24 20:09:52 +10:00
psychedelicious
293e11cfa6
feat(ui): hide add prompt buttons when user has a prompt
2024-04-24 20:09:52 +10:00
psychedelicious
c73aabdfbf
feat(ui): regional control defaults to having a positive prompt
2024-04-24 20:09:52 +10:00
psychedelicious
ca989c54b0
fix(ui): restore OG aspect ratio preview for non-t2i tabs
2024-04-24 20:09:52 +10:00
blessedcoolant
260e24733f
fix: update SDXL IP Adpater starter model to be ViT-H
2024-04-24 00:08:21 -04:00
blessedcoolant
6b394554e2
fix: update ip adapter starter models path
2024-04-24 08:48:25 +05:30
psychedelicious
ae1955a1a8
feat(ui): update canvas graphs to provide unet
2024-04-23 07:32:53 -04:00
psychedelicious
1bef13db37
feat(nodes): restore unet check on CreateGradientMaskInvocation
...
Special handling for inpainting models
2024-04-23 07:32:53 -04:00
psychedelicious
a461537087
chore: ruff
2024-04-23 07:32:53 -04:00
psychedelicious
99e28da19b
feat(ui): add variant to model edit
...
Also simplify the layouting for all model view/edit components.
2024-04-23 07:32:53 -04:00
psychedelicious
42a159beaa
chore(ui): typegen
2024-04-23 07:32:53 -04:00
psychedelicious
0aa5aadfe8
fix(mm): move variant
to MainConfigBase
...
shoulda been here all along
2024-04-23 07:32:53 -04:00
dunkeroni
bbf919a933
chore: frontend check error
2024-04-23 07:32:53 -04:00
dunkeroni
01897ec576
remove extra inputs
2024-04-23 07:32:53 -04:00
dunkeroni
bc12d6654e
chore: comments and ruff
2024-04-23 07:32:53 -04:00
dunkeroni
6d7c8d5f57
remove unet test
2024-04-23 07:32:53 -04:00
dunkeroni
38604aa408
update canvas graphs
2024-04-23 07:32:53 -04:00
dunkeroni
781de914f4
fix threshhold
2024-04-23 07:32:53 -04:00
dunkeroni
c094bad233
add unet check in gradient mask node
2024-04-23 07:32:53 -04:00
dunkeroni
0063014f2b
gradient mask node test for inpaint
2024-04-23 07:32:53 -04:00
psychedelicious
2cee436ecf
tidy(app): remove unused class
2024-04-23 17:12:14 +10:00
psychedelicious
e6386d969f
fix(app): only clear tempdirs if ephemeral and before creating tempdir
...
Also, this needs to happen in init, else it deletes the temp dir created in init
2024-04-23 17:12:14 +10:00
psychedelicious
4b2b983646
tidy(api): reverted unnecessary changes in dependencies.py
2024-04-23 17:12:14 +10:00
Lincoln Stein
53808149fb
moved cleanup routine into object_serializer_disk.py
2024-04-23 17:12:14 +10:00
Lincoln Stein
21ba55d0a6
add an initialization function that removes dangling tmpdirs from outputs/tensors
2024-04-23 17:12:14 +10:00
Josh Corbett
28c28b2fc0
fix: 🐛 handle trigger phrase form submits
2024-04-23 16:42:40 +10:00
psychedelicious
8b9c4c62a6
chore: v4.2.0a2
2024-04-23 13:08:26 +10:00
psychedelicious
cf637ecaa6
fix(ui): disabled ip adapters applied to regional control
2024-04-23 13:08:26 +10:00
psychedelicious
fca718bdd3
tidy(ui): remove extraneous cursor sync
2024-04-23 12:11:47 +10:00
psychedelicious
5196a2efec
fix(ui): minor canvas overflow
2024-04-23 12:11:47 +10:00
psychedelicious
385e93443a
feat(ui): rp hotkeys
...
- Shift+C: Reset selected layer mask (same as canvas)
- Shift+D: Delete selected layer (cannot be Del, that deletes an image in gallery)
- Shift+A: Add layer (cannot be Ctrl+Shift+N, that opens a new window)
- Ctrl/Cmd+Wheel: Brush size (same as canvas)
2024-04-23 12:11:47 +10:00
psychedelicious
604217313a
chore(ui): lint
2024-04-23 12:11:47 +10:00
psychedelicious
229423b370
tidy(ui): memo aspectratiopreview
2024-04-23 12:11:47 +10:00
psychedelicious
75a548e3eb
perf(ui): debounce render wait = 300ms
2024-04-23 12:11:47 +10:00
psychedelicious
24dbb65ebb
perf(ui): add brush spacing
...
Only add point to line if the next point is 10 or more px from the last point
2024-04-23 12:11:47 +10:00
psychedelicious
c915220965
feat(ui): aspect ratio preview is regional prompts canvas
2024-04-23 12:11:47 +10:00
psychedelicious
bb37e25ed0
feat(ui): rp ui layout
2024-04-23 12:11:47 +10:00
psychedelicious
dda1111f20
Make it alpha
2024-04-22 10:54:21 -04:00
psychedelicious
9d71b91b7f
chore: v4.2.0b1
2024-04-22 10:54:21 -04:00
psychedelicious
714126b832
build(ui): temp disable circular dependency check
...
I'll need to think about how to fix this properly. For now, disable the check as the UI can still build fine.
2024-04-22 23:09:39 +10:00
psychedelicious
a10c66797d
chore(ui): lint
2024-04-22 23:09:39 +10:00
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