01738deb23
feat(ui): add eslint rules
...
- `curly` requires conditionals to use curly braces
- `react/jsx-curly-brace-presence` requires string props to *not* have curly braces
2023-08-21 19:17:36 +10:00
fbff22c94b
feat(ui): memoize all components
2023-08-21 19:17:36 +10:00
5c305b1eeb
feat(ui): add app error boundary
...
Should catch all app crashes
2023-08-21 19:17:36 +10:00
990b6b5f6a
feat(ui): useful tooltips on invoke button
2023-08-21 19:17:36 +10:00
2dfcba8654
fix(ui): fix graphs using old field names
2023-08-21 19:17:36 +10:00
6d111aac90
fix(ui): fix node opacity slider hitbox
2023-08-21 19:17:36 +10:00
f9fc89b3c5
feat(ui): nodes scheduler type default value -> "euler"
2023-08-21 19:17:36 +10:00
ab76d54c10
feat(ui): update node schema parsing
...
simplified logic thanks to backend changes
2023-08-21 19:17:36 +10:00
56245a7406
chore(ui): regen types
2023-08-21 19:17:36 +10:00
4ac41bc4b1
feat(ui): adding node selects new node exclusively
2023-08-21 19:17:36 +10:00
4be4fc6731
feat(ui): rework add node select
...
- `space` and `/` open floating add node select
- improved filter logic (partial word matches)
2023-08-21 19:17:36 +10:00
a9fdc77edd
feat(ui): rename node editor to workflow editor
2023-08-21 19:17:36 +10:00
385765faec
fix(ui): fix missing tags on template parse
2023-08-21 19:17:36 +10:00
adb05cde5b
feat(ui): simple partial search for nodes
2023-08-21 19:17:36 +10:00
211e8203f8
feat(ui): organise nodes files
...
- also remove old `.gitignore` of `inputs/` which wasn't used and was ignoring a frontend folder
2023-08-21 19:17:36 +10:00
165c57c001
feat(ui): add select all to workflow editor
2023-08-21 19:17:36 +10:00
2514af79a0
feat(ui): crude node outputs display
...
Resets on invoke. Nothing fancy for the UI yet, just simple text (for numbers and strings) or image. For other output types, the output in JSON.
2023-08-21 19:17:36 +10:00
f952f8f685
feat(ui): add typegen customisation for invocation outputs
...
The `type` property is required on all of them, but because this is defined in pydantic as a Literal, it is not required in the OpenAPI schema. Easier to fix this by changing the generated types than fiddling around with pydantic.
2023-08-21 19:17:36 +10:00
519bcb38c1
feat(ui): node delete, copy, paste
2023-08-21 19:17:36 +10:00
567d46b646
feat(ui): delete key works on workflow editor
2023-08-21 19:17:36 +10:00
030802295b
feat(ui): reset only specific nodes/cnet that use images
...
Previously if an image was used in nodes and you deleted it, it would reset all of node editor. Same for controlnet.
Now it only resets the specific nodes or controlnets that used that image.
2023-08-21 19:17:36 +10:00
a495c8c156
feat(ui): misc cleanups
2023-08-21 19:17:36 +10:00
ae6db67068
feat(ui): add width to mantine selects
2023-08-21 19:17:36 +10:00
98431b3de4
feat: add Scheduler
as field type
...
- update node schemas
- add `UIType.Scheduler`
- add field type to schema parser, input components
2023-08-21 19:17:36 +10:00
210a3f9aa7
feat(ui): make mantine single selects *exactly* the same size as chakra ones
2023-08-21 19:17:36 +10:00
9332ce639c
fix(ui): fix node mouse interactions
...
Add "nodrag", "nowheel" and "nopan" class names in interactable elements, as neeeded. This fixes the mouse interactions and also makes the node draggable from anywhere without needing shift.
Also fixes ctrl/cmd multi-select to support deselecting.
2023-08-21 19:17:36 +10:00
84cf8bdc08
feat(ui): field context menu, add/remove from linear ui
2023-08-21 19:17:36 +10:00
64a6aa0293
fix(ui): move BoardContextMenu
to use IAIContextMenu
2023-08-21 19:17:36 +10:00
5ae14bffba
fix(ui): clear exposedFields when resetting graph
2023-08-21 19:17:36 +10:00
537ae2f901
Resolving merge conflicts for flake8
2023-08-18 15:52:04 +10:00
f6db9da06c
chore(ui): rename file to not cause madge to fail
2023-08-18 13:20:29 +10:00
a17dbd7df6
feat(ui): improve error toast messages
2023-08-18 13:20:29 +10:00
8923201fdf
Merge branch 'main' into seam-painting
2023-08-17 21:21:44 +12:00
226409107b
Fix for Image Deletion issue
2023-08-17 17:18:11 +10:00
975586bb40
Merge branch 'main' into seam-painting
2023-08-17 01:05:42 +12:00
a7ba142ad9
feat(ui): set min zoom on nodes to 0.1
2023-08-16 23:04:36 +10:00
0d36bab6cc
fix(ui): do not rerender top panel buttons
2023-08-16 23:04:36 +10:00
c2e7f62701
fix(ui): do not rerender edges
2023-08-16 23:04:36 +10:00
1f194e3688
chore(ui): lint
2023-08-16 23:04:36 +10:00
f9b8b5cff2
fix(ui): improve node rendering performance
...
Previously the editor was using prop-drilling node data and templates to get values deep into nodes. This ended up causing very noticeable performance degradation. For example, any text entry fields were super laggy.
Refactor the whole thing to use memoized selectors via hooks. The hooks are mostly very narrow, returning only the data needed.
Data objects are never passed down, only node id and field name - sometimes the field kind ('input' or 'output').
The end result is a *much* smoother node editor with very minimal rerenders.
2023-08-16 23:04:36 +10:00
f7c92e1eff
fix(ui): disable awkward resize animation for <Flow />
2023-08-16 23:04:36 +10:00
70b8c3dfea
fix(ui): fix context menu on workflow editor
...
There is a tricky mouse event interaction between chakra's `useOutsideClick()` hook (used by chakra `<Menu />`) and reactflow. The hook doesn't work when you click the main reactflow area.
To get around this, I've used a dirty hack, copy-pasting the simple context menu component we use, and extending it slightly to respond to a global `contextMenusClosed` redux action.
2023-08-16 23:04:36 +10:00
43b30355e4
feat: make primitive node titles consistent
2023-08-16 23:04:36 +10:00
9cbaefaa81
feat: Add Seam Painting to SDXL
2023-08-16 19:46:48 +12:00
cc7c6e5d41
feat: Add Seam Painting with Scale Before
2023-08-16 19:35:03 +12:00
f2ee8a3da8
wip: Basic Seam Painting (only normal models) (no scale)
2023-08-16 17:26:23 +12:00
e98d7a52d4
feat: Add Seam Painting Options
2023-08-16 17:25:55 +12:00
611e241ca7
chore(ui): regen types
2023-08-16 12:07:34 +10:00
6df4af2c79
chore: lint
2023-08-16 12:07:34 +10:00
0f8606914e
feat(ui): remove shouldShowDeleteButton
...
- remove this state entirely
- use `state.hotkeys.shift` directly to hide and show the icon on gallery
- also formatting
2023-08-16 12:07:34 +10:00