Mary Hipp
bc1126a85b
(ui): add setting for showing model descriptions in dropdown defaulted to true
2024-10-25 14:52:33 +11:00
psychedelicious
380017041e
fix(app): mutating an image also changes the in-memory cached image
...
We use an in-memory cache for PIL images to reduce I/O. If a node mutates the image in any way, the cached image object is also updated (but the on-disk image file is not).
We've lucked out that this hasn't caused major issues in the past (well, maybe it has but we didn't understand them?) mainly because of a happy accident. When you call `context.images.get_pil` in a node, if you provide an image mode (e.g. `mode="RGB"`), we call `convert` on the image. This returns a copy. The node can do whatever it wants to that copy and nothing breaks.
However, when mode is not specified, we return the image directly. This is where we get in trouble - nodes that load the image like this, and then mutate the image, update the cache. Other nodes that reference that same image will now get the mutated version of it.
The fix is super simple - we make sure to return only copies from `get_pil`.
2024-10-25 10:22:22 +11:00
psychedelicious
ab7cdbb7e0
fix(ui): do not delete point on right-mouse click
2024-10-25 10:22:22 +11:00
psychedelicious
e5b78d0221
fix(ui): canvas drop area grid layout
2024-10-25 10:22:22 +11:00
psychedelicious
1acaa6c486
chore: bump version to v5.3.0rc2
v5.3.0rc2
2024-10-25 07:50:58 +11:00
psychedelicious
b0381076b7
revert(ui): drop targets for inpaint mask and rg
2024-10-25 07:42:46 +11:00
psychedelicious
ffff2d6dbb
feat(ui): add New from Image submenu for image ctx menu
2024-10-25 07:42:46 +11:00
psychedelicious
afa9f07649
fix(ui): missing cursor when transforming
2024-10-25 07:42:46 +11:00
psychedelicious
addb5c49ea
feat(ui): support dnd images onto inpaint mask/rg entities
2024-10-25 07:42:46 +11:00
psychedelicious
a112d2d55b
feat(ui): add logging to useCopyLayerToClipboard
2024-10-25 07:42:46 +11:00
psychedelicious
619a271c8a
feat(ui): disable copy to clipboard when layer is empty
2024-10-25 07:42:46 +11:00
psychedelicious
909f2ee36d
feat(ui): add help tooltip to automask
2024-10-25 07:42:46 +11:00
psychedelicious
b4cf3d9d03
fix(ui): canvas context menu w/ eraser tool erases
2024-10-25 07:42:46 +11:00
psychedelicious
e6ab6e0293
chore(ui): lint
2024-10-24 08:39:29 -04:00
psychedelicious
66d9c7c631
fix(ui): icon for automask save as
2024-10-24 08:39:29 -04:00
psychedelicious
fec45f3eb6
feat(ui): animate automask preview overlay
2024-10-24 08:39:29 -04:00
psychedelicious
7211d1a6fc
feat(ui): add context menu options for layer type convert/copy
2024-10-24 08:39:29 -04:00
psychedelicious
f3069754a9
feat(ui): add logic to convert/copy between all layer types
2024-10-24 08:39:29 -04:00
psychedelicious
4f43152aeb
fix(ui): handle pen/touch events on submenu
2024-10-24 08:39:29 -04:00
psychedelicious
7125055d02
fix(ui): icon menu item group spacing
2024-10-24 08:39:29 -04:00
psychedelicious
c91a9ce390
feat(ui): add pull bbox to global ref image ctx menu
2024-10-24 08:39:29 -04:00
psychedelicious
3e7b73da2c
feat(ui): add entity context menu as canvas context menu sub-menu
2024-10-24 08:39:29 -04:00
psychedelicious
61ac50c00d
feat(ui): use sub-menu for image metadata recall
2024-10-24 08:39:29 -04:00
psychedelicious
c1201f0bce
feat(ui): add useSubMenu hook to abstract logic for sub-menus
2024-10-24 08:39:29 -04:00
psychedelicious
acdffac5ad
feat(ui): close viewer when filtering/transforming/automasking
2024-10-24 08:39:29 -04:00
psychedelicious
e420300fa4
feat(ui): replace automask apply w/ save as menu
2024-10-24 08:39:29 -04:00
psychedelicious
260a5a4f9a
feat(ui): add automask button to toolbar
2024-10-24 08:39:29 -04:00
psychedelicious
ed0c2006fe
feat(ui): rename "foreground"/"background" -> "include"/"exclude"
2024-10-24 08:39:29 -04:00
psychedelicious
9ffd888c86
feat(ui): remove neutral points
2024-10-24 08:39:29 -04:00
psychedelicious
175a9dc28d
feat(ui): more resilient auto-masking processing
...
- Use a hash of the last processed points instead of a `hasProcessed` flag to determine whether or not we should re-process a given set of points.
- Store point coords in state instead of pulling them out of the konva node positions. This makes moving a point a more explicit action in code.
- Add a `roundCoord` util to round the x and y values of a coordinate.
- Ensure we always re-process when $points changes.
2024-10-24 08:39:29 -04:00
psychedelicious
5764e4f7f2
chore(ui): lint
2024-10-24 23:34:06 +11:00
psychedelicious
4275a494b9
tweak(ui): bundle info icon
2024-10-24 23:34:06 +11:00
psychedelicious
a3deb8d30d
tweak(ui): bundle tooltip styling
2024-10-24 23:34:06 +11:00
Mary Hipp
aafdb0a37b
update popover copy
2024-10-24 23:34:06 +11:00
Mary Hipp
56a815719a
update schema
2024-10-24 23:34:06 +11:00
Mary Hipp
4db26bfa3a
(ui): add information popovers for other layer types
2024-10-24 23:34:06 +11:00
Mary Hipp
8d84ccb12b
bump UI dep for combobox descriptions
2024-10-24 23:34:06 +11:00
Mary Hipp
3321d14997
undo show descriptions for now
2024-10-24 23:34:06 +11:00
maryhipp
43cc4684e1
(api) make sure all controlnet starter models will still have pre-processors correctly assigned when probed based on name
2024-10-24 23:34:06 +11:00
Mary Hipp
afa5a4b17c
(ui): add informational popover for controlnet layers
2024-10-24 23:34:06 +11:00
Mary Hipp
33c433fe59
(ui): show models in starter bundles on hover, use previous_names for isInstalled logic, allow grouped model combobox to optionally show descriptions
2024-10-24 23:34:06 +11:00
maryhipp
9cd47fa857
(api): update names of starter models, add ability to track previous_names so it does not mess up logic that prevents dupe starter model installs
2024-10-24 23:34:06 +11:00
psychedelicious
32d9abe802
tweak(ui): prevent show/hide boards button cutoff
...
The use of hard 25% widths caused issues for some translations. Adjusted styling to not rely on any hard numbers. Tested with a project name and URL.
2024-10-24 08:21:16 -04:00
psychedelicious
3947d4a165
fix(ui): normalize infill alpha to 0-255 when building infill nodes
...
The browser/UI uses float 0-1 for alpha, while backend uses 0-255. We need to normalize the value when building the infill nodes for outpaint.
2024-10-24 19:22:36 +11:00
psychedelicious
3583d03b70
feat(ui): improve subs and cleanup in filterer module
...
- Subscribe when starting the filterer
- Remember to abort the abortcontroller when destroying
- Unsubscribe when destroying
2024-10-23 08:21:12 -04:00
psychedelicious
bc954b9996
feat(ui): abort controller in SAM module when destroying
2024-10-23 08:21:12 -04:00
psychedelicious
c08075946a
feat(ui): only subscribe listeners when segmenting
...
Realized we are doing a lot of event listening even when segmenting is not occuring. I don't think this will have a meaningful performance impact, but it makes sense to remove these listeners when not in use.
2024-10-23 08:21:12 -04:00
psychedelicious
df8df914e8
docs(ui): add comments to CanvasSegmentAnythingModule
2024-10-23 08:21:12 -04:00
psychedelicious
33924e8491
feat(ui): ensure abort controllers are cleaned up
2024-10-23 08:21:12 -04:00
psychedelicious
7e5ce1d69d
fix(ui): when last SAM point is deleted, reset ephemeral state
2024-10-23 08:21:12 -04:00