psychedelicious
b0d37f4e51
fix(ui): progress image does not reset when canceling generation
...
Previously, we cleared the canvas progress image when the canvas had no active generations. This allowed for a brief flash of canvas state between the last progress image for a given generation, and when the output image for that generation rendered. Here's the sequence:
- Progress images are received and rendered
- Generation completes - no active canvas generations
- Clear the progress image -> canvas layers visible unexpectedly, creating an awkward jarring change
- Generation output image is rendered -> output image overlaid on canvas layers
In 83538c4b2b I attempted to fix this by only clearing the progress image while we were not staging.
This isn't quite right, though. We are often staging with no active generations - for example, you have a few images completed and are waiting to choose one.
In this situation, if you cancel a pending generation, the logic to clear the progress image doesn't fire because it sees staging is in progress.
What we really need is:
- Staging area module clears the progress image once it has rendered an output image.
- Progress image module clears the progress image when a generation is canceled or failed, in which case there will be no output image.
To do this, we can add an event listener to the progress image module to listen for queue item status changes, and when we get a cancelation or failure, clear the progress image.
2024-11-04 07:11:20 -05:00
psychedelicious
3559124674
feat(ui): use nanostores in CanvasProgressImageModule for internal state
2024-11-04 07:11:20 -05:00
Kent Keirsey
6fbc019142
Merge branch 'main' into t2i_resolution_hack
2024-10-31 22:08:38 -04:00
psychedelicious
26f95d6a97
fix(ui): disable move tool when staging
2024-10-31 22:08:16 -04:00
psychedelicious
40f7b0d171
fix(ui): cursor disappearing on empty layers
2024-10-31 22:08:16 -04:00
psychedelicious
4904700751
feat(ui): more info in state module repr
2024-10-31 22:08:16 -04:00
psychedelicious
83538c4b2b
fix(ui): flash of canvas state between last progress image and generation result
2024-10-31 22:08:16 -04:00
psychedelicious
eb7b559529
fix(ui): sync canvas layer visibility when staging state changes
2024-10-31 22:08:16 -04:00
Kent Keirsey
4945465cf0
Merge branch 'main' into t2i_resolution_hack
2024-10-31 21:17:06 -04:00
psychedelicious
47f0781822
fix(ui): add missing translations
...
Closes #7229
2024-11-01 07:40:52 +11:00
dunkeroni
47c3ab9214
Remove UI restrictions for T2I resolutions
2024-10-31 16:07:46 -04:00
psychedelicious
e032ab1179
fix(ui): ensure compositing rect is rendered correctly
...
This fixes an issue uncovered by the previous commit in which we do not exit filter/select-object on save-as.
2024-10-31 08:57:10 -04:00
psychedelicious
65bddfcd93
feat(ui): filter/select-object do not exit on save-as
2024-10-31 08:57:10 -04:00
aidawanglion
2d3ce418dd
translationBot(ui): update translation (Chinese (Simplified Han script))
...
Currently translated at 73.7% (1160 of 1573 strings)
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/zh_Hans/
2024-10-31 17:18:35 +11:00
Hosted Weblate
548d72f7b9
translationBot(ui): update translation files
...
Updated by "Cleanup translation files" hook in Weblate.
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/
2024-10-31 17:18:35 +11:00
aidawanglion
19837a0f29
translationBot(ui): update translation (Chinese (Simplified Han script))
...
Currently translated at 73.3% (1146 of 1563 strings)
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/zh_Hans/
2024-10-31 17:18:35 +11:00
aidawanglion
483b65a1dc
translationBot(ui): update translation (Chinese (Simplified Han script))
...
Currently translated at 69.4% (1086 of 1563 strings)
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/zh_Hans/
2024-10-31 17:18:35 +11:00
Riccardo Giovanetti
b85931c7ab
translationBot(ui): update translation (Italian)
...
Currently translated at 99.4% (1554 of 1563 strings)
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/it/
2024-10-31 17:18:35 +11:00
Hosted Weblate
9225f47338
translationBot(ui): update translation files
...
Updated by "Remove blank strings" hook in Weblate.
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/
2024-10-31 17:18:35 +11:00
Riccardo Giovanetti
bccac5e4a6
translationBot(ui): update translation (Italian)
...
Currently translated at 99.4% (1553 of 1562 strings)
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/it/
2024-10-31 17:18:35 +11:00
Hosted Weblate
7cb07fdc04
translationBot(ui): update translation files
...
Updated by "Cleanup translation files" hook in Weblate.
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/
2024-10-31 17:18:35 +11:00
dakota2472
b137450026
translationBot(ui): update translation (Italian)
...
Currently translated at 100.0% (1562 of 1562 strings)
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/it/
2024-10-31 17:18:35 +11:00
Hosted Weblate
dc5090469a
translationBot(ui): update translation files
...
Updated by "Cleanup translation files" hook in Weblate.
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/
2024-10-31 17:18:35 +11:00
Thomas Bolteau
e0ae2ace89
translationBot(ui): update translation (French)
...
Currently translated at 100.0% (1561 of 1561 strings)
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/fr/
2024-10-31 17:18:35 +11:00
Riku
269faae04b
translationBot(ui): update translation (German)
...
Currently translated at 71.4% (1115 of 1561 strings)
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/de/
2024-10-31 17:18:35 +11:00
Riccardo Giovanetti
e282acd41c
translationBot(ui): update translation (Italian)
...
Currently translated at 98.8% (1543 of 1561 strings)
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/it/
2024-10-31 17:18:35 +11:00
Ettore Atalan
a266668348
translationBot(ui): update translation (German)
...
Currently translated at 69.3% (1083 of 1561 strings)
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/de/
2024-10-31 17:18:35 +11:00
Riccardo Giovanetti
3bb3e142fc
translationBot(ui): update translation (Italian)
...
Currently translated at 98.8% (1543 of 1561 strings)
Translation: InvokeAI/Web UI
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/it/
2024-10-31 17:18:35 +11:00
Hosted Weblate
6ac6d70a22
translationBot(ui): update translation files
...
Updated by "Cleanup translation files" hook in Weblate.
translationBot(ui): update translation files
Updated by "Cleanup translation files" hook in Weblate.
translationBot(ui): update translation files
Updated by "Cleanup translation files" hook in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/
Translation: InvokeAI/Web UI
2024-10-31 17:18:35 +11:00
Riccardo Giovanetti
b0acf33ba5
translationBot(ui): update translation (Italian)
...
Currently translated at 98.5% (1496 of 1518 strings)
Co-authored-by: Riccardo Giovanetti <riccardo.giovanetti@gmail.com >
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/it/
Translation: InvokeAI/Web UI
2024-10-31 17:18:35 +11:00
qyouqme
b3eb64b64c
translationBot(ui): update translation (Chinese (Simplified Han script))
...
Currently translated at 66.0% (1003 of 1518 strings)
Co-authored-by: qyouqme <camtasiacn@gmail.com >
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/zh_Hans/
Translation: InvokeAI/Web UI
2024-10-31 17:18:35 +11:00
Riku
95f8ab1a29
translationBot(ui): update translation (German)
...
Currently translated at 71.3% (1083 of 1518 strings)
Co-authored-by: Riku <riku.block@gmail.com >
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/de/
Translation: InvokeAI/Web UI
2024-10-31 17:18:35 +11:00
Hosted Weblate
4e043384db
translationBot(ui): update translation files
...
Updated by "Cleanup translation files" hook in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/
Translation: InvokeAI/Web UI
2024-10-31 17:18:35 +11:00
psychedelicious
0f5df8ba17
chore(ui): lint
2024-10-31 16:54:31 +11:00
psychedelicious
2826ab48a2
refactor(ui): layer interaction locking
...
Previously we maintained an `isInteractable` flag, which was derived from these layer flags:
- Locked/unlocked
- Enabled/disabled
- Layer's type visible/hidden
When a layer was not interactable, we blocked all layer actions.
After comparing to the behaviour in Affinity and considering user feedback, I've loosened these restrictions while maintaining safety. First, some definitions.
There two kinds of layer actions - mutating actions and non-mutating actions.
- Mutating actions are drawing on the layer, cropping it, filtering it, converting it, etc. Anything that changes the layer.
- Non-mutating actions are copying the layer, saving the layer to gallery, etc. Anything that _uses_ the layer.
Then, there are two broad canvas states - busy and not busy. "Busy" means the canvas is actively filtering, staging, compositing layers together, etc - something that is "single-threaded" by nature.
And here are the revised restrictions:
- When canvas is busy, you cannot initiate any layer actions.
- When the canvas is not busy, and the layer is locked, you initiate any mutating actions.
- When the canvas is not busy and the layer is not locked, you can initiate any layer action.
Besides safely giving users more freedom, it also fixes an issue where the context menu for a layer was disabled if it was not the selected layer.
2024-10-31 16:54:31 +11:00
psychedelicious
d3a82f7119
feat(ui): do not show hftoken error until user attempts to set it
2024-10-31 15:47:14 +11:00
Mary Hipp
291c5a0341
lint
2024-10-31 15:47:14 +11:00
Mary Hipp
bcb41399ca
feat(ui,api): support for HF tokens in UI, handle Unauthorized and Forbidden errors
2024-10-31 15:47:14 +11:00
psychedelicious
198c84105d
fix(ui): compositor not setting processing flag when cleaning up
2024-10-30 16:27:36 +11:00
psychedelicious
b091aca986
chore(ui): lint
2024-10-30 11:05:46 +11:00
psychedelicious
8f02ce54a0
perf(ui): cache image data & transparency mode during generation mode calculation
...
Perf boost and reduces the number of images we create on the backend.
2024-10-30 11:05:46 +11:00
psychedelicious
f4b7c63002
feat(ui): omit non-render-impacting keys when hashing entities
...
Had missed several of these, which means we were invalidating caches far too often. For example, when you changed a RG prompt, we were invalidating the cached canvas for that entity, even though changing the prompt doesn't affect the canvas at all.
2024-10-30 11:05:46 +11:00
psychedelicious
a4629280b5
feat(ui): use typeguard instead of string comparison
2024-10-30 11:05:46 +11:00
psychedelicious
855fb007da
tidy(ui): minor type fix
2024-10-30 11:05:46 +11:00
psychedelicious
d805b52c1f
feat(ui): merge down deletes merged entities
2024-10-30 11:05:46 +11:00
psychedelicious
2ea55685bb
feat(ui): add save to assets for inpaint & rg
2024-10-30 11:05:46 +11:00
psychedelicious
bd6ff3deaa
feat(ui): add merge down for all entity types
2024-10-30 11:05:46 +11:00
psychedelicious
82dd53ec88
tidy(ui): clean up merge visible logic
2024-10-30 11:05:46 +11:00
psychedelicious
71d749541d
feat(ui): control layers supports merge visible
...
The "lighter" GlobalCompositeOperation is used. This seems to be the best one when merging control layers, as it retains edge maps.
2024-10-30 11:05:46 +11:00
psychedelicious
48a57fc4b9
feat(ui): support globalCompositeOperation when compositing canvas
2024-10-30 11:05:46 +11:00