6ad01d824d
feat(ui): add strict mode to validateConnection
2024-05-19 20:14:01 +10:00
78f9f3ee95
feat(ui): better types for validateConnection
2024-05-19 20:14:01 +10:00
972398d203
tests(ui): add iterate to test schema
2024-05-19 20:14:01 +10:00
857889d1fa
tests(ui): coverage for getCollectItemType
2024-05-19 20:14:01 +10:00
8074a802d6
tests(ui): coverage for validateConnectionTypes
2024-05-19 20:14:01 +10:00
059d5a682c
tidy(ui): validateConnection code clarity
2024-05-19 20:14:01 +10:00
00c2d8f95d
tidy(ui): areTypesEqual var names
2024-05-19 20:14:01 +10:00
04a596179b
tests(ui): finish test cases for validateConnection
2024-05-19 20:14:01 +10:00
3fcb2720d7
tests(ui): add tests for consolidated connection validation
2024-05-19 20:14:01 +10:00
6f7160b9fd
fix(ui): call updateNodeInternals when making connections
2024-05-19 20:14:01 +10:00
6b4e464d17
fix(ui): rework edge update logic
2024-05-19 20:14:01 +10:00
9f7841a04b
tidy(ui): clean up addnodepopover hotkeys
2024-05-19 20:14:01 +10:00
468644ab18
fix(ui): rebase conflict
2024-05-19 20:14:01 +10:00
9d127fee6b
feat(ui): makeConnectionErrorSelector now creates a parameterized selector
2024-05-19 20:14:01 +10:00
6658897210
tidy(ui): tidy connection validation functions and logic
2024-05-19 20:14:01 +10:00
af7b194bec
chore(ui): lint
2024-05-19 20:14:01 +10:00
de1ea50e6d
fix(ui): rebase resolution
2024-05-19 20:14:01 +10:00
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
6a2c53f6c5
fix(ui): do not allow comparison between undefined original types
2024-05-19 20:14:01 +10:00
2cbf7d9221
fix(ui): stupid ts
2024-05-19 20:14:01 +10:00
85a5a7c47a
feat(ui): add originalType
to FieldType, improved connection validation
...
We now keep track of the original field type, derived from the python type annotation in addition to the override type provided by `ui_type`.
This makes `ui_type` work more like it sound like it should work - change the UI input component only.
Connection validation is extend to also check the original types. If there is any match between two fields' "final" or original types, we consider the connection valid.This change is backwards-compatible; there is no workflow migration needed.
2024-05-19 20:14:01 +10:00
386d552493
fix(ui): loading workflows from file
2024-05-18 09:04:37 +10:00
799cf06d20
fix(ui): loading library workflows
2024-05-18 09:04:37 +10:00
922716d2ab
feat(ui): store graph in image metadata
...
The previous super-minimal implementation had a major issue - the saved workflow didn't take into account batched field values. When generating with multiple iterations or dynamic prompts, the same workflow with the first prompt, seed, etc was stored in each image.
As a result, when the batch results in multiple queue items, only one of the images has the correct workflow - the others are mismatched.
To work around this, we can store the _graph_ in the image metadata (alongside the workflow, if generated via workflow editor). When loading a workflow from an image, we can choose to load the workflow or the graph, preferring the workflow.
Internally, we need to update images router image-saving services. The changes are minimal.
To avoid pydantic errors deserializing the graph, when we extract it from the image, we will leave it as stringified JSON and let the frontend's more sophisticated and flexible parsing handle it. The worklow is also changed to just return stringified JSON, so the API is consistent.
2024-05-18 09:04:37 +10:00
5d60c3c8e1
fix(ui): jank when editing field title
2024-05-18 08:46:40 +10:00
4e21d01c7f
feat(ui): dim field name when connected
2024-05-18 08:46:40 +10:00
6b7b0b3777
fix(ui): do not rearrange fields when connection/disconnecting
2024-05-18 08:46:40 +10:00
07feb5ba07
Revert "feat(ui): SDXL clip skip"
...
This reverts commit 40b4fa7238
.
2024-05-17 15:08:04 -07:00
32dff2c4e3
feat(ui): copy/paste input edges when copying node
...
- Copy edges to selected nodes on copy
- If pasted with `ctrl/meta-shift-v`, also paste the input edges
2024-05-17 23:12:29 +10:00
575ecb4028
feat(ui): prevent connections to direct-only inputs
2024-05-17 22:08:40 +10:00
ad8778df6c
feat(ui): extract node execution state from nodesSlice
...
This state is ephemeral and not undoable.
2024-05-17 13:24:23 +10:00
d2f5103f9f
fix(ui): ignore actions from other slices in nodesSlice history
2024-05-17 13:24:23 +10:00
dd42a56084
tests(ui): fix parseSchema test fixture
...
The schema fixture wasn't formatted quite right - doesn't affect the test but still.
2024-05-17 13:24:23 +10:00
23ac340a3f
tests(ui): add test for parseSchema
2024-05-17 13:24:23 +10:00
6791b4eaa8
chore(ui): lint
2024-05-17 13:24:23 +10:00
a8b042177d
feat(ui): connection validation for collection items types
2024-05-17 13:24:23 +10:00
76825f4261
fix(ui): allow collect node inputs to connect to multiple fields when using lazy connect
2024-05-17 13:24:23 +10:00
78cb4d75ad
fix(ui): use elevateEdgesOnSelect
so last-selected edge is the interactable one when updating edges
2024-05-17 13:24:23 +10:00
a18bbac262
fix(ui): jank interaction between edge update and autoconnect
2024-05-17 13:24:23 +10:00
9ff5596963
feat(ui): hide values for connected fields
2024-05-17 13:24:23 +10:00
8ea596b1e9
fix(ui): janky editable field title
...
- Do not allow whitespace-only field titles
- Make only preview text trigger editable
- Tooltip over the preview, not the whole "row"
2024-05-17 13:24:23 +10:00
e3a143eaed
fix(ui): fix jank w/ stale connections
2024-05-17 13:24:23 +10:00
c359ab6d9b
fix(ui): fix dependency tracking for copy/paste hotkeys
2024-05-17 13:24:23 +10:00
dbfaa07e03
feat(ui): add checks for undo/redo actions
2024-05-17 13:24:23 +10:00
7f78fe7a36
feat(ui): move viewport state to nanostores
2024-05-17 13:24:23 +10:00
6cf5b402c6
feat(ui): remove extraneous selectedEdges and selectedNodes state
2024-05-17 13:24:23 +10:00
b0c7c7cb47
feat(ui): remove remaining extraneous state from nodes slice
2024-05-17 13:24:23 +10:00
4d68cd8dbb
feat(ui): recreate edge auto-add-node logic
2024-05-17 13:24:23 +10:00
2c1fa30639
feat(ui): recreate edge autoconnect logic
2024-05-17 13:24:23 +10:00
708c68413d
tidy(ui): add type for templates
2024-05-17 13:24:23 +10:00