InvokeAI/invokeai/frontend/web
psychedelicious fc000214a5 feat(ui): check for transparency and clear masks if no pixel data
Mask vector data includes additive (brush, rect) shapes and subtractive (eraser) shapes. A different composite operation is used to draw a shape, depending on whether it is additive or subtractive.

This means that a mask may have vector objects, but once rendered, is _visually_ empty (fully transparent). The only way determine if a mask is visually empty is to render it and check every pixel.

When we generate and save layer metadata, these fully erased masks are still used. Generating with an empty mask is a no-op in the backend, so we want to avoid this and not pollute graphs/metadata.

Previously, we did that pixel-based when calculating the bbox, which we only did when using the move tool, and only for the selected layer.

This change introduces a simpler function to check if a mask is transparent, and if so, deletes all its objects to reset it. This allows us skip these no-op layers entirely.

This check is debounced to 300 ms, trailing edge only.
2024-05-09 07:52:52 -04:00
..
.storybook chore(ui): lint 2024-04-19 09:32:56 -04:00
patches feat(ui): patch reselect to use lruMemoize only 2024-01-06 00:03:07 +11:00
public feat(ui): revise image viewer 2024-05-08 08:39:18 -04:00
scripts feat(ui): add script to clean translations 2024-03-14 11:38:29 +11:00
src feat(ui): check for transparency and clear masks if no pixel data 2024-05-09 07:52:52 -04:00
static/docs feat(ui): update assets 2024-01-12 08:02:59 +11:00
__init__.py Run python black 2023-07-28 09:46:44 -04:00
.eslintignore fix(ui): fix workflow editor model selector, excise ONNX 2024-01-03 13:18:50 +11:00
.eslintrc.js build(ui): restore i18n eslint rule 2024-03-01 10:42:33 +11:00
.gitignore tests(ui): enable vitest type testing 2024-03-01 10:42:33 +11:00
.prettierignore fix(ui): fix workflow editor model selector, excise ONNX 2024-01-03 13:18:50 +11:00
.prettierrc.js chore(ui): use new prettier config 2024-01-28 19:57:53 +11:00
index.html Add ID to the HTML link element 2024-04-15 07:54:36 +10:00
knip.ts Scope project files to src dir (enables --production) 2024-04-15 09:14:49 +10:00
package.json feat(ui): add fracturedjsonjs to pretty-serialize objects 2024-05-08 08:39:18 -04:00
pnpm-lock.yaml feat(ui): add fracturedjsonjs to pretty-serialize objects 2024-05-08 08:39:18 -04:00
README.md docs: move frontend docs to mkdocs 2024-03-13 22:43:20 +11:00
tsconfig.json chore(ui): lint 2024-03-01 10:42:33 +11:00
tsconfig.node.json fix(ui): fix package build 2024-03-01 10:42:33 +11:00
vite.config.mts build(ui): do not fail build on eslint error in dev mode 2024-03-01 10:42:33 +11:00