psychedelicious
3651cf7ee2
wip buttons
2023-08-23 23:06:42 +10:00
psychedelicious
73318c2847
feat(ui): remove floating panels, move all to resizable panels
...
There is a console error we can ignore when toggling gallery panel on canvas - this will be resolved in the next release of the resizable library
2023-08-23 23:06:42 +10:00
psychedelicious
6d10e40c9b
feat(ui): add selection mode toggle
2023-08-23 23:06:42 +10:00
blessedcoolant
5cf9b75d77
fix: Remove / as hotkey for add node and add tooltip
2023-08-23 23:06:42 +10:00
blessedcoolant
d4463674cf
fix: Move add node hotkey to the right component
2023-08-23 23:06:42 +10:00
psychedelicious
ce7172d78c
feat(ui): add workflow saving/loading (wip)
...
Adds loading workflows with exhaustive validation via `zod`.
There is a load button but no dedicated save/load UI yet. Also need to add versioning to the workflow format itself.
2023-08-23 23:06:42 +10:00
psychedelicious
38b2dedc1d
feat(ui): use new ui_order
to sort fields; connection-only fields in grid
2023-08-23 23:06:42 +10:00
psychedelicious
2497aa5cd8
feat(ui): improve node schema parsing and add outputType
to templates
2023-08-23 23:06:42 +10:00
psychedelicious
7b97754271
chore(ui): update all packages
...
- only breaking change was in `openapi-fetch`, easy fix
- also looks like prettier/eslint is a bit more comprehensive? caught a couple extra things
2023-08-23 23:06:42 +10:00
psychedelicious
4da861e980
chore: clean up .gitignore
2023-08-22 10:02:03 +10:00
blessedcoolant
7b2079cf83
feat: Add hotkey for Add Nodes (Shift+A)
...
Standard with other tools like Blender
2023-08-22 03:31:29 +12:00
psychedelicious
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
psychedelicious
fbff22c94b
feat(ui): memoize all components
2023-08-21 19:17:36 +10:00
psychedelicious
5c305b1eeb
feat(ui): add app error boundary
...
Should catch all app crashes
2023-08-21 19:17:36 +10:00
psychedelicious
990b6b5f6a
feat(ui): useful tooltips on invoke button
2023-08-21 19:17:36 +10:00
psychedelicious
2dfcba8654
fix(ui): fix graphs using old field names
2023-08-21 19:17:36 +10:00
psychedelicious
6d111aac90
fix(ui): fix node opacity slider hitbox
2023-08-21 19:17:36 +10:00
psychedelicious
f9fc89b3c5
feat(ui): nodes scheduler type default value -> "euler"
2023-08-21 19:17:36 +10:00
psychedelicious
ab76d54c10
feat(ui): update node schema parsing
...
simplified logic thanks to backend changes
2023-08-21 19:17:36 +10:00
psychedelicious
4ac41bc4b1
feat(ui): adding node selects new node exclusively
2023-08-21 19:17:36 +10:00
psychedelicious
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
psychedelicious
385765faec
fix(ui): fix missing tags on template parse
2023-08-21 19:17:36 +10:00
psychedelicious
adb05cde5b
feat(ui): simple partial search for nodes
2023-08-21 19:17:36 +10:00
psychedelicious
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
psychedelicious
165c57c001
feat(ui): add select all to workflow editor
2023-08-21 19:17:36 +10:00
psychedelicious
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
psychedelicious
519bcb38c1
feat(ui): node delete, copy, paste
2023-08-21 19:17:36 +10:00
psychedelicious
567d46b646
feat(ui): delete key works on workflow editor
2023-08-21 19:17:36 +10:00
psychedelicious
a495c8c156
feat(ui): misc cleanups
2023-08-21 19:17:36 +10:00
psychedelicious
ae6db67068
feat(ui): add width to mantine selects
2023-08-21 19:17:36 +10:00
psychedelicious
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
psychedelicious
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
psychedelicious
84cf8bdc08
feat(ui): field context menu, add/remove from linear ui
2023-08-21 19:17:36 +10:00
psychedelicious
5ae14bffba
fix(ui): clear exposedFields when resetting graph
2023-08-21 19:17:36 +10:00
blessedcoolant
975586bb40
Merge branch 'main' into seam-painting
2023-08-17 01:05:42 +12:00
psychedelicious
a7ba142ad9
feat(ui): set min zoom on nodes to 0.1
2023-08-16 23:04:36 +10:00
psychedelicious
0d36bab6cc
fix(ui): do not rerender top panel buttons
2023-08-16 23:04:36 +10:00
psychedelicious
c2e7f62701
fix(ui): do not rerender edges
2023-08-16 23:04:36 +10:00
psychedelicious
1f194e3688
chore(ui): lint
2023-08-16 23:04:36 +10:00
psychedelicious
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
psychedelicious
f7c92e1eff
fix(ui): disable awkward resize animation for <Flow />
2023-08-16 23:04:36 +10:00
psychedelicious
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
blessedcoolant
9cbaefaa81
feat: Add Seam Painting to SDXL
2023-08-16 19:46:48 +12:00
blessedcoolant
cc7c6e5d41
feat: Add Seam Painting with Scale Before
2023-08-16 19:35:03 +12:00
blessedcoolant
f2ee8a3da8
wip: Basic Seam Painting (only normal models) (no scale)
2023-08-16 17:26:23 +12:00
psychedelicious
5b1099193d
fix(ui): restore reset button in node image component
2023-08-16 12:07:34 +10:00
Mary Hipp
a512fdc0f6
update IAIDndImage to use children for icons, add UI for shift+delete to delete images from gallery
2023-08-16 12:07:34 +10:00
psychedelicious
2b7dd3e236
feat: add missing primitive collections
...
- add missing primitive collections
- remove `Seed` and `LoRAField` (they don't exist)
2023-08-16 09:54:38 +10:00
psychedelicious
fa884134d9
feat: rename ui_type_hint
to ui_type
...
Just a bit more succinct while not losing any clarity.
2023-08-16 09:54:38 +10:00
psychedelicious
75ea716c13
feat(ui): hide node footer if there is nothing to display
2023-08-16 09:54:38 +10:00