psychedelicious
5c3dd62ae0
feat(ui): update useGlobalModifiers to store each key independently
...
This reduces rerenders when the user presses a modifier key.
2024-01-01 08:13:23 -05:00
psychedelicious
7e2eeec1f3
feat(ui): optimized workflow building
...
- Store workflow in nanostore as singleton instead of building for each consumer
- Debounce the build (already was indirectly debounced)
- When the workflow is needed, imperatively grab it from the nanostores, instead of letting react handle it via reactivity
2024-01-01 08:13:23 -05:00
psychedelicious
7eb79266c4
feat(ui): split dnd overlay to separate component
...
This reduces top-level rerenders when zooming in and out on workflow editor
2024-01-01 08:13:23 -05:00
psychedelicious
5d4610d981
feat(ui): store node templates in separate slice
...
Flattens the `nodes` slice. May offer minor perf improvements in addition to just being cleaner.
2024-01-01 08:13:23 -05:00
psychedelicious
7c548c5bf3
feat(ui): move canvas interaction state to nanostores
...
This drastically reduces the computation needed when moving the cursor. It also correctly separates ephemeral interaction state from redux, where it is not needed.
Also removed some unused canvas state.
2024-01-01 08:13:23 -05:00
psychedelicious
2a38606342
fix(ui): show denoising strength on canvas
2024-01-01 08:13:23 -05:00
psychedelicious
793cf39964
feat(ui): bump react-resizable-panels & improve usePanel hook
2024-01-01 08:13:23 -05:00
psychedelicious
ab3e689ee0
fix(ui): fix workflow library new workflow/settings closing
...
Need to make the menu not lazy. A better solution is to refactor how the settings works, rendering it in a different part of the component tree
2024-01-01 08:13:23 -05:00
psychedelicious
20f497054f
feat(ui): optimized useMouseOverNode
...
Manually hook into pubsub to eliminate extraneous rerenders on hook change
2024-01-01 08:13:23 -05:00
psychedelicious
6209fef63d
fix(ui): focus add node popover on open
...
Need an extra ref to pass to the InvSelect component.
2024-01-01 08:13:23 -05:00
psychedelicious
5168415999
feat(ui): use nanostores for useMouseOverNode
...
This greatly reduces the weight of the event handlers.
2024-01-01 08:13:23 -05:00
psychedelicious
6f354f16ba
feat(ui): canvas perf improvements
2024-01-01 08:13:23 -05:00
psychedelicious
e108a2302e
fix(ui): fix uninteractable canvas bbox
2024-01-01 08:13:23 -05:00
psychedelicious
2ffecef792
feat(ui): bump react-resizable-panels, improve panel resize logic
2024-01-01 08:13:23 -05:00
psychedelicious
2663a07e94
feat(ui): misc canvas perf improvements
...
- disable listening when not needed
- use useMemo for gridlines
2024-01-01 08:13:23 -05:00
psychedelicious
8d2ef5afc3
feat(ui): disable onlyRenderVisibleElements
on Flow
...
This can cause stuttering when nodes are being moved in and out of the viewport. I think it's better to improve rendering/perf in other ways.
2024-01-01 08:13:23 -05:00
psychedelicious
539887b215
feat(ui): misc perf/rerender improvements
...
More efficient selectors, memoized/stable references to objects, lazy popover/menu rendering.
2024-01-01 08:13:23 -05:00
psychedelicious
2ba505cce9
feat(ui): use pubsub to for globalcontextmenuclose
...
Far more efficient than the crude redux incrementor thing.
2024-01-01 08:13:23 -05:00
psychedelicious
bd92a31d15
feat(ui): add createLruSelector
...
This uses the previous implementation of the memoization function in reselect. It's possible for the new weakmap-based memoization to cause memory leaks in certain scenarios, so we will avoid it for now.
2024-01-01 08:13:23 -05:00
psychedelicious
ee2529f3fd
lru
2024-01-01 08:13:23 -05:00
psychedelicious
89b7082bc0
fix(ui): remove debug stmts
2024-01-01 08:13:23 -05:00
psychedelicious
55dfabb892
feat(ui): use make label widths grow
...
Fixes issue where translations overflowed due to hardcoded widths.
2024-01-01 08:13:23 -05:00
psychedelicious
2a41fd0b29
fix(ui): fix field title styling
2024-01-01 08:13:23 -05:00
psychedelicious
52f9749bf5
feat(ui): partial rebuild of model manager internal logic
2023-12-29 08:26:14 -05:00
psychedelicious
2d96c62fdb
feat(ui): more memoization
2023-12-29 08:26:14 -05:00
psychedelicious
3e6173ee8c
feat(ui): only show refiner models on refiner model select
2023-12-29 08:26:14 -05:00
psychedelicious
4e9841c924
feat(ui): add refiner cfg scale & steps defaults & marks
2023-12-29 08:26:14 -05:00
psychedelicious
4134f18319
fix(ui): InvEditable, linear field view styling
2023-12-29 08:26:14 -05:00
psychedelicious
3ce8f3d6fe
feat(ui): more memoization
2023-12-29 08:26:14 -05:00
psychedelicious
10fd4f6a61
feat(ui): update panel lib, move gallery to percentages
2023-12-29 08:26:14 -05:00
psychedelicious
300805a25a
fix(ui): fix typing issues
2023-12-29 08:26:14 -05:00
psychedelicious
56527da73e
feat(ui): memoize all components
2023-12-29 08:26:14 -05:00
psychedelicious
ca4b8e65c1
feat(ui): use stable objects for animation/native element styles
2023-12-29 08:26:14 -05:00
psychedelicious
f5194f9e2d
feat(ui): generation accordion badges
2023-12-29 08:26:14 -05:00
psychedelicious
ccbbb417f9
feat(ui): fix control adapters styling
2023-12-29 08:26:14 -05:00
psychedelicious
37786a26a5
feat(ui): move scaling up to image settings -> advanced
2023-12-29 08:26:14 -05:00
psychedelicious
4f2930412e
feat(ui): use primitive style props or memoized sx objects
2023-12-29 08:26:14 -05:00
psychedelicious
38256f97b3
fix(ui): fix word break on LoRACard
2023-12-29 08:26:14 -05:00
psychedelicious
e32eb2a649
fix(ui): restore labels in model manager selects
2023-12-29 08:26:14 -05:00
psychedelicious
f4cdfa3b9c
fix(ui): canvas layer select cut off
2023-12-29 08:26:14 -05:00
psychedelicious
e99b715e9e
fix(ui): board collapse button styling
2023-12-29 08:26:14 -05:00
psychedelicious
ed96c40239
feat(ui): change queue icon
2023-12-29 08:26:14 -05:00
psychedelicious
f0b102d830
feat(ui): ux improvements & redesign
...
This is a squash merge of a bajillion messy small commits created while iterating on the UI component library and redesign.
2023-12-29 08:26:14 -05:00
psychedelicious
1b8651fa26
fix(ui): do no create extraneous pos
var
2023-12-28 20:44:02 +11:00
Jonathan
f6664960ca
Update useBuildNode.ts
...
Added addition of the rect's top left coordinates to get equivalent behavior.
2023-12-28 20:44:02 +11:00
Jonathan
84a001720c
Added back bounds check
2023-12-28 20:44:02 +11:00
Jonathan
c9951cd86b
Eliminate constant console deprecation warnings
...
React Flow 11.10 eliminates the need to use project() and issues a deprecation warning to the console every time that onMouseMove is called (see https://reactflow.dev/whats-new/2023-11-10#rename-usereactflowproject-to-usereactflowscreentoflowposition ). This code change eliminates that warning,
2023-12-28 20:44:02 +11:00
Mary Hipp
702d0f68af
remove (Unsaved) if workflow library is disabled
2023-12-22 07:39:17 +11:00
psychedelicious
df9a903a50
fix(ui): do not cache VAE decode on linear
...
The VAE decode on linear graphs was getting cached. This caused some unexpected behaviour around image outputs.
For example, say you ran the exact same graph twice. The first time, you get an image written to disk and added to gallery. The second time, the VAE decode is cached and no image file is created. But, the UI still gets the graph complete event and selects the first image in the gallery. The second run does not add an image to the gallery.
There are probbably edge cases related to this - the UI does not expect this to happen. I'm not sure how to handle it any better in the UI.
The solution is to not cache VAE decode on the linear graphs, ever. If you run a graph twice in linear, you expect two images.
This simple change disables the node cache for terminal VAE decode nodes in all linear graphs, ensuring you always get images. If they graph was fully cached, all images after the first will be created very quickly of course.
2023-12-16 12:37:49 +11:00
psychedelicious
6ea09ba0b6
feat(ui): workflow menu tweaks
...
- "Reset Workflow Editor" -> "New Workflow"
- "New Workflow" gets nodes icon & is no longer danger coloured
- When creating a new workflow, if the current workflow has unsaved changes, you get a dialog asking for confirmation. If the current workflow is saved, it immediately creates a new workflow.
- "Download Workflow" -> "Save to File"
- "Upload Workflow" -> "Load from File"
- Moved "Load from File" up 1 in the menu
2023-12-14 08:30:59 -05:00