psychedelicious
0da36c1238
feat(ui): use IAIDndImage for compare mode
2024-06-02 15:30:00 +10:00
psychedelicious
4ef8cbd9d0
fix(ui): use isValidDrop in imageDropped listener
...
It was possible for a drop event to be invalid but still processed. Fixed by slightly changing the signature of isValidDrop.
2024-06-02 15:30:00 +10:00
psychedelicious
8f8ddd620b
feat(ui): add comparison modes, side-by-side view
2024-06-02 15:30:00 +10:00
psychedelicious
1af53aed60
feat(ui): fix image comparison slider resizing/aspect ratio jank
2024-06-02 15:30:00 +10:00
psychedelicious
7a4bbd092e
feat(ui): revised image comparison slider
...
Should work for any components and image now.
2024-06-02 15:30:00 +10:00
psychedelicious
72bbcb2d94
feat(ui): slider working for all aspect ratios
2024-06-02 15:30:00 +10:00
psychedelicious
c2eef93476
feat(ui): wip slider implementations
2024-06-02 15:30:00 +10:00
psychedelicious
a983f27aad
fix(ui): update types
2024-05-30 12:03:38 +10:00
psychedelicious
7cb32d3d83
chore(ui): typegen
2024-05-30 12:03:38 +10:00
psychedelicious
5a4d10467b
feat(ui): use updated types
2024-05-30 12:03:38 +10:00
psychedelicious
7590f3005e
chore(ui): typegen
2024-05-30 12:03:03 +10:00
psychedelicious
843f82c837
fix(ui): remove overly strict constraints on control adapter weight
2024-05-29 19:01:28 -07:00
psychedelicious
5388f5a817
fix(ui): edit variant for main models only
...
Closes #6444
2024-05-27 11:02:00 +10:00
psychedelicious
27a3eb15f8
feat(ui): update event types
2024-05-27 10:17:02 +10:00
psychedelicious
4b2d57a5e0
chore(ui): typegen
...
Note about the huge diff: I had a different version of pydantic installed at some point, which slightly altered a _ton_ of schema components. This typegen was done on the correct version of pydantic and un-does those alterations, in addition to the intentional changes to event models.
2024-05-27 10:17:02 +10:00
psychedelicious
89dede7bad
feat(ui): simplify client sio redux actions
...
- Add a simple helper to create socket actions in a less error-prone way
- Organize and tidy sio files
2024-05-27 09:06:02 +10:00
psychedelicious
60784a4361
feat(ui): update client for removal of session events
2024-05-27 09:06:02 +10:00
psychedelicious
3d8774d295
chore(ui): typegen
2024-05-27 09:06:02 +10:00
psychedelicious
eaf67b2150
feat(ui): add logging for session events
2024-05-27 09:06:02 +10:00
psychedelicious
39415428de
chore(ui): typegen
2024-05-27 09:06:02 +10:00
psychedelicious
585feccf82
fix(ui): update event handling to match new types
2024-05-27 09:06:02 +10:00
psychedelicious
cbd3b15cae
chore(ui): typegen
2024-05-27 09:06:02 +10:00
psychedelicious
cc56918453
tidy(ui): remove old unused session subscribe actions
2024-05-27 09:06:02 +10:00
psychedelicious
a1d68eb319
fix(ui): denoise percentage
2024-05-27 09:06:02 +10:00
psychedelicious
8b5caa7e57
chore(ui): typegen
2024-05-27 09:06:02 +10:00
psychedelicious
ec4f10aed3
chore(ui): typegen
2024-05-27 09:06:02 +10:00
psychedelicious
18b4f1b72a
feat(ui): add missing socket events
2024-05-27 09:06:02 +10:00
psychedelicious
300725d1dd
fix(ui): correct model load event format
2024-05-27 09:06:02 +10:00
psychedelicious
3abc182b44
chore(ui): tidy after rebase
2024-05-27 09:06:02 +10:00
psychedelicious
8d79ce94aa
feat(ui): update UI to use new events
...
- Use OpenAPI schema for event payload types
- Update all event listeners
- Add missing events / remove old nonexistent events
2024-05-27 09:06:02 +10:00
psychedelicious
975dc14579
chore(ui): typegen
2024-05-27 09:06:02 +10:00
psychedelicious
461e857824
fix(ui): parameter not set translation
2024-05-26 08:21:06 -07:00
psychedelicious
e9b80cf28f
fix(ui): isLocal erroneously hardcoded
2024-05-25 00:05:44 +10:00
psychedelicious
f5a775ae4e
feat(ui): toast on queue item errors, improved error descriptions
...
Show error toasts on queue item error events instead of invocation error events. This allows errors that occurred outside node execution to be surfaced to the user.
The error description component is updated to show the new error message if available. Commercial handling is retained, but local now uses the same component to display the error message itself.
2024-05-24 20:02:24 +10:00
psychedelicious
125e1d7eb4
tidy: remove unnecessary whitespace changes
2024-05-24 20:02:24 +10:00
psychedelicious
2fbe5ecb00
fix(ui): correctly fallback to error message when traceback is empty string
2024-05-24 20:02:24 +10:00
psychedelicious
ba4d27860f
tidy(ui): remove extraneous condition in socketInvocationError
2024-05-24 20:02:24 +10:00
psychedelicious
6fc7614b4a
fix(ui): race condition with progress
...
There's a race condition where a canceled session may emit a progress event or two after it's been canceled, and the progress image isn't cleared out.
To resolve this, the system slice tracks canceled session ids. When a progress event comes in, we check the cancellations and skip setting the progress if canceled.
2024-05-24 20:02:24 +10:00
psychedelicious
aa329ea811
feat(ui): handle enriched events
2024-05-24 20:02:24 +10:00
psychedelicious
1e622a5706
chore(ui): typegen
2024-05-24 20:02:24 +10:00
psychedelicious
f1bb7e86c0
feat(ui): invalidate cache for queue item on status change
...
This query is only subscribed-to in the `QueueItemDetail` component - when is rendered only when the user clicks on a queue item in the queue. Invalidating this tag instead of optimistically updating it won't cause any meaningful change to network traffic.
2024-05-24 08:59:49 +10:00
gallegonovato
c3f28f7a35
translationBot(ui): update translation (Spanish)
...
Currently translated at 30.5% (380 of 1243 strings)
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/es/
Translation: InvokeAI/Web UI
2024-05-24 08:05:45 +10:00
Hosted Weblate
c900a63842
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-05-24 08:05:45 +10:00
blessedcoolant
861f06c459
Merge branch 'main' into psyche/fix/ui/initial-image-layer
2024-05-24 03:14:18 +05:30
psychedelicious
46a90ca402
fix(ui): initial image layers always ignored
...
Whoops!
2024-05-24 06:40:48 +10:00
psychedelicious
d45c33b446
fix(ui): 'undefined'
being used for metadata on uploaded images
2024-05-24 06:17:07 +10:00
psychedelicious
70487f0c2e
fix(ui): layers are "enabled", not "visible"
2024-05-23 10:14:34 +10:00
psychedelicious
55d7d9cc75
fix(ui): control layers don't disable correctly
...
Closes #6424
2024-05-23 10:14:34 +10:00
Mary Hipp
106674175c
add logo and change text for non-local;
2024-05-23 06:51:13 +10:00
Mary Hipp
dd1d5bdb25
use support URL for non-local
2024-05-23 06:51:13 +10:00
Dennis
6259ac0bec
translationBot(ui): update translation (Dutch)
...
Currently translated at 79.6% (973 of 1222 strings)
Co-authored-by: Dennis <dennis@vanzoerlandt.nl>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/nl/
Translation: InvokeAI/Web UI
2024-05-22 09:51:12 +10:00
Riccardo Giovanetti
ba31f8a9a9
translationBot(ui): update translation (Italian)
...
Currently translated at 98.5% (1210 of 1228 strings)
translationBot(ui): update translation (Italian)
Currently translated at 98.5% (1206 of 1224 strings)
translationBot(ui): update translation (Italian)
Currently translated at 98.5% (1204 of 1222 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-05-22 09:51:12 +10:00
psychedelicious
0ba57d6dc5
feat(ui): close starter models toast when a model is installed
2024-05-22 09:40:46 +10:00
psychedelicious
abc133e936
feat(ui): revised invocation error toast handling
...
Only display the session if local. Otherwise, just display the error message.
2024-05-22 09:40:46 +10:00
psychedelicious
57743239d7
feat(ui): add updateDescription
flag to toast API
...
If false, when updating a toast, the description is left alone. The count will still tick up.
2024-05-22 09:40:46 +10:00
psychedelicious
4a394c60cf
feat(ui): add isLocal
flag to config
2024-05-22 09:40:46 +10:00
psychedelicious
624d28a93d
feat(ui): invocation error toasts do not autoclose
2024-05-22 09:40:46 +10:00
psychedelicious
29e1ea59fc
feat(ui): style copy button on ToastWithSessionRefDescription
2024-05-22 09:40:46 +10:00
psychedelicious
2e5d24f272
tidy(ui): remove old comment
2024-05-22 09:40:46 +10:00
psychedelicious
1afa340b1a
fix(ui): show toast when recalling seed
2024-05-22 09:40:46 +10:00
psychedelicious
3b381b5a8c
tidy(ui): remove the ToastID enum
...
With the model install logic cleaned up the enum is less useful
2024-05-22 09:40:46 +10:00
psychedelicious
f2b9684de8
tidy(ui): split install model into helper hook
...
This was duplicated like 7 times or so
2024-05-22 09:40:46 +10:00
psychedelicious
a66b3497e0
feat(ui): port all toasts to use new util
2024-05-22 09:40:46 +10:00
psychedelicious
683ec8e5f2
feat(ui): add stateful toast utility
...
Small wrapper around chakra's toast system simplifies creating and updating toasts. See comments in toast.ts for details.
2024-05-22 09:40:46 +10:00
psychedelicious
f31f0cf733
feat(ui): restore spellcheck on prompt boxes
2024-05-22 08:52:25 +10:00
psychedelicious
38265b3123
docs(ui): update validateWorkflow comments
2024-05-21 05:17:10 -07:00
psychedelicious
caca28286c
tests(ui): add test for resource usage check
2024-05-21 05:17:10 -07:00
psychedelicious
38320a5100
feat(ui): reset missing images, boards and models when loading workflows
...
These fields are reset back to `undefined` if not accessible. A warning toast is showing, and in the JS console, the full warning message is logged.
2024-05-21 05:17:10 -07:00
psychedelicious
9ba47cae20
fix(ui): unable to edit notes node title
2024-05-21 11:27:11 +10:00
psychedelicious
bf4310ca71
fix(ui): errors when node template or field template doesn't exist
...
Some asserts were bubbling up in places where they shouldn't have, causing errors when a node has a field without a matching template, or vice-versa.
To resolve this without sacrificing the runtime safety provided by asserts, a `InvocationFieldCheck` component now wraps all field components. This component renders a fallback when a field doesn't exist, so the inner components can safely use the asserts.
2024-05-21 11:22:08 +10:00
psychedelicious
e75f98317f
fix(ui): notes node text not selectable
2024-05-21 10:06:25 +10:00
psychedelicious
1249d4a6e3
fix(ui): crash when using a notes node
2024-05-21 10:06:09 +10:00
steffylo
32277193b6
fix(ui): retain denoise strength and opacity when changing image
2024-05-20 18:27:51 +10:00
psychedelicious
620ee2875e
fix(ui): store hidden
state of edges in workflows
...
This prevents a minor visual bug where collapsed edges between collapsed nodes didn't display correctly on first load of a workflow.
2024-05-20 11:36:47 +10:00
psychedelicious
5553588147
fix(ui): ensure invocation edges have a type
2024-05-20 11:36:47 +10:00
psychedelicious
1c29b3bd85
feat(ui): updated field type translations
2024-05-20 11:28:33 +10:00
psychedelicious
e88b807a13
docs(ui): update field type docs & comments
2024-05-20 11:28:33 +10:00
psychedelicious
9e55ef3d4b
fix(ui): workflow migration field type
...
At some point, I made a mistake and imported the wrong types to some files for the old v1 and v2 workflow schema migration data.
The relevant zod schemas and inferred types have been restored.
This change doesn't alter runtime behaviour. Only type annotations.
2024-05-20 11:28:33 +10:00
psychedelicious
8062a47d16
fix(ui): use new field type cardinality throughout app
...
Update business logic and tests.
2024-05-20 11:28:33 +10:00
psychedelicious
dba8c43ecb
feat(ui): explicit field type cardinality
...
Replace the `isCollection` and `isCollectionOrScalar` flags with a single enum value `cardinality`. Valid values are `SINGLE`, `COLLECTION` and `SINGLE_OR_COLLECTION`.
Why:
- The two flags were mutually exclusive, but this wasn't enforce. You could create a field type that had both `isCollection` and `isCollectionOrScalar` set to true, whuch makes no sense.
- There was no explicit declaration for scalar/single types.
- Checking if a type had only a single flag was tedious.
Thanks to a change a couple months back in which the workflows schema was revised, field types are internal implementation details. Changes to them are non-breaking.
2024-05-20 11:28:33 +10:00
psychedelicious
8ebf2ddf15
fix(ui): fix t2i adapter dimensions error message
...
It now indicates the correct dimension of 64 (SD1.5) or 32 (SDXL) - before was hardcoded to 64.
2024-05-20 11:23:14 +10:00
psychedelicious
f4625c2671
feat(ui): add canvas objects to metadat a for all canvas graphs
2024-05-20 10:32:59 +10:00
psychedelicious
c94742bde6
feat(ui): add canvas objects to metadata when saving canvas to gallery
2024-05-20 10:32:59 +10:00
psychedelicious
a34faf0bd8
chore(ui): typegen
2024-05-20 10:32:59 +10:00
psychedelicious
ba8bed6870
fix(ui): edge case resulting in no node templates when loading workflow, causing failure
...
Depending on the user behaviour and network conditions, it's possible that we could try to load a workflow before the invocation templates are available.
Fix is simple:
- Use the RTKQ query hook for openAPI schema in App.tsx
- Disable the load workflow buttons until w have templates parsed
2024-05-19 07:34:00 -07:00
psychedelicious
ca186bca61
fix(ui): missed node execution state for progress images
2024-05-19 20:14:01 +10:00
psychedelicious
e2f109807c
fix(ui): delete edges when their source or target no longer exists
2024-05-19 20:14:01 +10:00
psychedelicious
cea1874e00
perf(ui): memoize WorkflowName selectors
2024-05-19 20:14:01 +10:00
psychedelicious
89b0e9e4de
feat(ui): use connection validationResults directly in components
2024-05-19 20:14:01 +10:00
psychedelicious
26d0d55d97
fix(ui): set nodeDragThreshold to prevent spurious position change events
2024-05-19 20:14:01 +10:00
psychedelicious
059c5586a4
perf(ui): ignore all no-op node and edge changes
2024-05-19 20:14:01 +10:00
psychedelicious
9ed5698aa8
fix(ui): do not remove exposed fields when updating workflows
2024-05-19 20:14:01 +10:00
psychedelicious
0b5696c5d4
feat(ui): remove nodeExclusivelySelected action
2024-05-19 20:14:01 +10:00
psychedelicious
a51142674a
tidy(ui): more succinct syntax for edge and node updates
2024-05-19 20:14:01 +10:00
psychedelicious
b8b671c0db
feat(ui): remove selectionDeleted action
2024-05-19 20:14:01 +10:00
psychedelicious
7cceafe0dd
feat(ui): remove selectionPasted action
2024-05-19 20:14:01 +10:00
psychedelicious
cbe32b647a
feat(ui): remove selectedAll action
2024-05-19 20:14:01 +10:00
psychedelicious
9a8e0842bb
feat(ui): remove nodeReplaced action
2024-05-19 20:14:01 +10:00
psychedelicious
1d7671298f
fix(ui): group edge selection actions
2024-05-19 20:14:01 +10:00
psychedelicious
e38d75c3dc
feat(ui): get rid of nodeAdded
2024-05-19 20:14:01 +10:00