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
psychedelicious
21fab9785a
feat(ui): tweak edge styling
2024-05-19 20:14:01 +10:00
psychedelicious
b3429553bb
fix(ui): collapsed edges selected state
2024-05-19 20:14:01 +10:00
psychedelicious
e480844042
fix(ui): edge styling
2024-05-19 20:14:01 +10:00
psychedelicious
26029108f7
feat(ui): rework node and edge mutation logic
...
Remove our DIY'd reducers, consolidating all node and edge mutations to use `edgesChanged` and `nodesChanged`, which are called by reactflow. This makes the API for manipulating nodes and edges less tangly and error-prone.
2024-05-19 20:14:01 +10:00
psychedelicious
504ac82077
fix(ui): duplicated edges when updating edge with lazy connect
2024-05-19 20:14:01 +10:00
psychedelicious
6b11740dda
chore(ui): knip
2024-05-19 20:14:01 +10:00
psychedelicious
a80e3448f5
feat(ui): rework pendingConnection
2024-05-19 20:14:01 +10:00
psychedelicious
4bda174eb9
tests(ui): coverage for getCollectItemType
2024-05-19 20:14:01 +10:00
psychedelicious
b1e28c2f2c
tests(ui): coverage for getFirstValidConnection
2024-05-19 20:14:01 +10:00
psychedelicious
83000a4190
feat(ui): rework getFirstValidConnection with new helpers
2024-05-19 20:14:01 +10:00
psychedelicious
c98205d0d7
tests(ui): candidate fields, getFirstValidConnection (wip)
2024-05-19 20:14:01 +10:00
psychedelicious
ce2ad5903c
feat(ui): extract logic for finding candidate fields to own function
2024-05-19 20:14:01 +10:00
psychedelicious
fe3980a369
tests(ui): add buildNode convenience wrapper for buildInvocationNode
2024-05-19 20:14:01 +10:00
psychedelicious
ea97ae5ae8
tidy(ui): extraneous vars in makeConnectionErrorSelector
2024-05-19 20:14:01 +10:00
psychedelicious
3605b6b1a3
fix(ui): handling for in-progress edge updates during conection validation
2024-05-19 20:14:01 +10:00
psychedelicious
fc31dddbf7
feat(ui): use new validateConnection
2024-05-19 20:14:01 +10:00
psychedelicious
6ad01d824d
feat(ui): add strict mode to validateConnection
2024-05-19 20:14:01 +10:00
psychedelicious
78f9f3ee95
feat(ui): better types for validateConnection
2024-05-19 20:14:01 +10:00
psychedelicious
972398d203
tests(ui): add iterate to test schema
2024-05-19 20:14:01 +10:00
psychedelicious
857889d1fa
tests(ui): coverage for getCollectItemType
2024-05-19 20:14:01 +10:00
psychedelicious
8074a802d6
tests(ui): coverage for validateConnectionTypes
2024-05-19 20:14:01 +10:00
psychedelicious
059d5a682c
tidy(ui): validateConnection code clarity
2024-05-19 20:14:01 +10:00
psychedelicious
00c2d8f95d
tidy(ui): areTypesEqual var names
2024-05-19 20:14:01 +10:00
psychedelicious
04a596179b
tests(ui): finish test cases for validateConnection
2024-05-19 20:14:01 +10:00
psychedelicious
3fcb2720d7
tests(ui): add tests for consolidated connection validation
2024-05-19 20:14:01 +10:00
psychedelicious
6f7160b9fd
fix(ui): call updateNodeInternals when making connections
2024-05-19 20:14:01 +10:00
psychedelicious
6b4e464d17
fix(ui): rework edge update logic
2024-05-19 20:14:01 +10:00
psychedelicious
9f7841a04b
tidy(ui): clean up addnodepopover hotkeys
2024-05-19 20:14:01 +10:00
psychedelicious
468644ab18
fix(ui): rebase conflict
2024-05-19 20:14:01 +10:00
psychedelicious
9d127fee6b
feat(ui): makeConnectionErrorSelector now creates a parameterized selector
2024-05-19 20:14:01 +10:00
psychedelicious
6658897210
tidy(ui): tidy connection validation functions and logic
2024-05-19 20:14:01 +10:00
psychedelicious
af7b194bec
chore(ui): lint
2024-05-19 20:14:01 +10:00
psychedelicious
de1ea50e6d
fix(ui): rebase resolution
2024-05-19 20:14:01 +10:00
psychedelicious
a012bb6e07
feat(ui): add ModelIdentifierField field type
...
This new field type accepts _any_ model. A field renderer lets the user select any available model.
2024-05-19 20:14:01 +10:00
psychedelicious
6a2c53f6c5
fix(ui): do not allow comparison between undefined original types
2024-05-19 20:14:01 +10:00
psychedelicious
2cbf7d9221
fix(ui): stupid ts
2024-05-19 20:14:01 +10:00