Commit Graph

3502 Commits

Author SHA1 Message Date
Chenlei Hu
05ba526388 Type DOMWidget and DOMWidgetOptions (#1517)
* Type DOMWidget and DOMWidgetOptions

* Annotate widget value type
2024-11-12 13:35:24 -05:00
Chenlei Hu
4bc79181ae Move DOMClippingEnabled to coreSettings.ts (#1516)
* Move DOMClippingEnabled to coreSettings.ts

* nit
2024-11-12 12:01:44 -05:00
filtered
feafbf9cbf Litegraph Reroute Beta (#1421)
* Add Reroute support - ConnectingLinkImpl

Bonus: TS strict

* Add Reroute support

* Remove unused TS expect error

* Add reroute beta opt-in option

* Add settings option: Middle-click reroute node

* Add settings: Link Markers

* Move settings

* Update litegraph

---------

Co-authored-by: huchenlei <huchenlei@proton.me>
2024-11-12 11:46:14 -05:00
filtered
3d6adf0225 Add Reroutes (#301)
* Add Reroute

- Initial Reroute implementation
- LLink and Reroute both implement the new LinkSegment interface
- LinkSegments can have a parentId, which always points to a Reroute

* Narrow TS type of schema v0.4 extras

* Add reroutes to schema 0.4

Use extras.reroutes to store additional data

* Add Reroute POC to LLink

* Add Reroute rendering

* Add Reroute context menu - Delete Reroute

* Update delete selected - include reroutes & groups

* Add Reroute select & move

* Include reroutes in area-select

* Move disconnect link logic to LLink

* Add Reroute connect

* nit

* Add Reroute support - connecting links

* Add Add Reroute from link menu (menu)

* nit

* Add shift-drag from reroute to add new link

* Prevent Reroutes from disappearing

Add keepReroutes option to prevent Reroute GC

* Add fourth param to connectInputToOutput

* Allow both connecting in/out to be null

* Move ConnectingLink start pos to Reroute

* Add link render options

* Refactor renderLink - spline / bezier

* Refactor renderLink - linear, straight

* Fix centre points on all link types

Improves link render time

* [Refactor] Generic recursive interface / flat set

* nit

* Allow Reroutes to be members of groups

* Start links from the closest reroute

For the "shift-click drag link from link" feature

* Add Reroutes using alt-click on link paths

* nit - Refactor

* nit - Refactor

* Fix reroute deselect UX

Temporary workaround

* Add Reroute link centre-marker handling

* Add optional link arrow markers

Add enum for link markers
-> Pointing the way forward ->
Set default centre marker to arrow

* Add module export: LinkMarkerShape

* Add link arrow direction for all link types

* Add Reroute auto-swivel with custom curves

* Add state switch to disable reroutes

Works at root of all canvas interactions, should leave existing reroutes untouched but invisible until e.g. links are edited / changed.

* Fix cannot deselect when reroutes disabled

* Include reroutes in select-all
2024-11-12 11:18:48 -05:00
Chenlei Hu
8236163fea Enable New UI by default (#1515)
nit

Add playwright test

nit

nit

nit
2024-11-12 10:48:26 -05:00
filtered
59b555b448 Fix multiline text input alignment & clipping (#1513)
* Simplify multiline widget scaling

* Fix multiline widget clipping

* Update test expectations [skip ci]

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-11-12 10:38:03 -05:00
Chenlei Hu
71eeee6744 Less padding on sidebar tabs for small screens (#1511)
* Reduce searchbox and tree padding for small screen

* Smaller buttons
2024-11-11 20:15:34 -05:00
Chenlei Hu
1ff6e27d9c Manage widget definitions with Pinia store (#1510)
* Fix compile

* nit

* Remove extensions.test

* nit
2024-11-11 17:23:52 -05:00
Chenlei Hu
64ef0f18b1 Fix welcome page welcome text selection (#1508) 2024-11-11 11:13:59 -05:00
Chenlei Hu
73bdbddf90 Fix rename open/bookmark workflow (#1507)
* Fix rename open/bookmark workflow

* nit

* Fix save as

* Add browser test
2024-11-11 11:06:41 -05:00
filtered
43012eb1d1 Add settings option: Keep links on delete (#1504) 2024-11-10 21:33:48 -05:00
Chenlei Hu
d1e019589d [Electron] ComfyUI Desktop install wizard (#1503)
* Basic prototype

* Welcome screen animation

* nit

* Refactor structure

* Fix mocking

* Add tooltips

* i18n

* Add next button

* nit

* Stepper navigate

* Extract

* More i18n

* More i18n

* Polish MigrationPicker

* Polish settings step

* Add more i18n

* nit

* nit
2024-11-10 19:56:01 -05:00
filtered
7bc79edf3d Add back/forwards compatibility to schema validation (#1501)
* Allow future extensions of added schema objects

* Add explicit versioning to zod schemas

* Extend schema 0.4 with new fields in extras

- Allows Reroutes without using schema v1
- Reroute data is retained when using old versions - simply not displayed

* Add Reroute undo/redo support
2024-11-10 19:50:18 -05:00
Chenlei Hu
75678ee43c Fix NODE_TEXT_SIZE style option (#298) 2024-11-10 09:54:07 -05:00
Chenlei Hu
d9a34872c3 [Electron] Add basic welcome screen (#1491)
* WIP

* Add LogTerminal

* Modify server startup view

* Add installView

* Add basic welcome screen and dev server setup

* nit

* nit

* nit

* nit

* nit
2024-11-10 09:41:32 -05:00
filtered
ca8e31c695 Emit only one change when deleting nodes (#296) 2024-11-10 09:40:36 -05:00
filtered
31fac3873c Litegraph: Reroute support (#1420)
* Add Litegraph schema v1 support

- LLink changed from array to object
- Add reroutes
- Graph state object
- Falls back to original schema if not validated
- Add version check to schema validation pass

* Fix test schema version detection

Resolves conflict with proposed schema v1
2024-11-09 15:46:34 -05:00
Chenlei Hu
4617e0fb1a Fix node badge on unknown color palette (#1487)
* Fix node badge on unknown color palette

* Update test expectations [skip ci]

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-11-09 10:55:25 -05:00
Chenlei Hu
f8ec87ddea Fix changeTracker modified state (#1481)
* Add jsondiffpatch

* Add logs

* Add graphDiff helper

* Fix changeTracker

* Add loglevel

* Add playwright test

* Fix jest test

* nit

* nit

* Fix test url

* nit
2024-11-08 22:24:35 -05:00
Chenlei Hu
c12f059940 Persist splitter state in localStorage (#1480) 2024-11-08 20:16:13 -05:00
Chenlei Hu
cc320e0f84 Change tooltip location to bottom for sidebar action buttons (#1479) 2024-11-08 18:56:44 -05:00
Chenlei Hu
acbc38ced4 Revert "Enable New UI by default (#1460)" (#1476)
This reverts commit f0b735f3dd.
2024-11-08 16:35:52 -05:00
oto-ciulis-tt
777a6d9ce3 feat:use electron api to download models (#1473)
* enh: Use electron API to download models

* Adding tooltips

* PR comments

---------

Co-authored-by: Oto Ciulis <oto.ciulis@gmail.com>
2024-11-08 15:59:35 -05:00
pythongosssss
7e0b87dd32 Live terminal output (#1347)
* Add live terminal output

* Fix scrolling

* Refactor loading

* Fallback to polling if endpoint fails

* Comment

* Move clientId to executionStore
Refactor types

* Remove polling
2024-11-08 15:38:21 -05:00
Zoltán Dócs
0161a670cf Fit view to bounds (#1474)
* fit view:
- fit view to canvas selection
- fit view to whole graph when nothing is selected
- add button to graph canvas menu
- assign default keybinding '.'

* Adjust on changed APIs

* Update litegraph

---------

Co-authored-by: huchenlei <huchenlei@proton.me>
2024-11-08 15:03:21 -05:00
Chenlei Hu
34f8d3408b Add LGraphCavnas.fitViewToSelectionAnimated (#292) 2024-11-08 14:22:18 -05:00
Chenlei Hu
0eba49c536 Update litegraph (Animate to bounds) (#1475) 2024-11-08 14:12:58 -05:00
Chenlei Hu
c7d5c863ec Move createBounds to measure.ts (#290)
* nit

* Move createBounds to measure

* Export createBounds
2024-11-08 13:49:30 -05:00
Zoltán Dócs
6ad864bc20 Animate view to multiple nodes (#282)
* animateToNodes
- modify existing animation method to support passing multiple nodes, in which case the view is fit to the bounding box around them

* animateToBounds

* amend

* format

* amend
2024-11-08 13:40:15 -05:00
Chenlei Hu
1d9c3f00b7 Setting dialog responsive design for smaller screen size (screen width < 1536) (#1472)
* Smaller queue button

* Smaller dialog padding

* Adjust setting content

* Fix keybinding panel
2024-11-08 11:18:26 -05:00
filtered
87c6d59546 Keep links connected when deleting nodes (#288)
* Allow node delete to keep more links connected

* Allow node delete to match every link

* Add config for connectInputToOutput
2024-11-08 11:13:14 -05:00
Chenlei Hu
700336fcc7 Fix queue button icon layout shift (#1469) 2024-11-08 10:02:36 -05:00
Chenlei Hu
dd192777b7 Consistently use -1 for temporary file size (#1464) 2024-11-07 23:34:46 -05:00
filtered
45380f7ca0 Fix TypeError thrown (#1461)
Missing node type + reroute linked
2024-11-07 20:17:16 -05:00
filtered
fc0b8087db Graph serialisation update - Links & Reroutes (#279)
* nit

* Add LGraph state POCO

Moves last_link_id, last_node_id and creates same for group and reroute

fix import

* Add new serialisation to LGraph

Add LGraph schema 1
Remove reroute from old serialised graph
Remove brittle inherited types
Ensure stale links are not kept when clearing graph

* Add serialisable exports

* Ensure valid LGraph.state during deserialise
2024-11-07 18:33:54 -05:00
Chenlei Hu
f0b735f3dd Enable New UI by default (#1460)
* Enable New UI by default

* nit

* Add playwright test

* nit

* nit

* nit
2024-11-07 17:55:53 -05:00
Chenlei Hu
9568d63820 Add comfyui-electron-types dependency (#1459) 2024-11-07 16:05:26 -05:00
filtered
1c40aad87c Fix pin not respected by multi-select move (#284) 2024-11-07 15:58:49 -05:00
Chenlei Hu
073638672d Fix ('STRING',) input node (#1457)
* Fix ('STRING',) input node

* Update test expectations [skip ci]

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-11-07 13:03:54 -05:00
Chenlei Hu
8ae9210298 Always sort workflows tree (#1456)
* Always sort workflows tree

* nit

* nit

* Add tests

* nit

* nit
2024-11-07 11:29:29 -05:00
Chenlei Hu
14b3d4c766 Fix loading of workflow bookmarks (#1452) 2024-11-07 08:58:28 -05:00
Chenlei Hu
40880dbb59 Move refresh button from actionbar to 'Edit' menu (#1451) 2024-11-07 08:47:46 -05:00
Chenlei Hu
0a7000328a Add menu button to toggle focus mode (#1446)
* Add focus mode toggle button

* handle menu position

* nit
2024-11-06 20:56:32 -05:00
Chenlei Hu
5e4439b905 [Electron] Add electron-specific setup page (#1444)
* Add dummy server start view

* Do external nav

* nit

* nit

* nit

* nit
2024-11-06 19:39:09 -05:00
filtered
e1aac5cf61 Improve hitbox for group resize (#277)
Now the same as the visual area

Co-authored-by: Chenlei Hu <huchenlei@proton.me>
2024-11-06 19:35:56 -05:00
Chenlei Hu
3d303c7693 Fix save workflow binding on Ctrl + S (#1442)
* Fix save workflow binding on Ctrl + S

* nit
2024-11-06 13:46:56 -05:00
Chenlei Hu
c560628f1f [Extension API] Register about panel badge (#1436)
* Custom about panel badge

* Add playwright test

* Update README

* nit

* nit

* nit

* nit
2024-11-05 19:06:38 -05:00
filtered
2ba048de52 Remove hard-coded modifications to nodes (#247)
* Remove arbitrary 5 graph unit margin around nodes

* Remove arbitrary +1 pixel added to node width

---------

Co-authored-by: Chenlei Hu <huchenlei@proton.me>
2024-11-05 18:35:59 -05:00
Chenlei Hu
c56533bb23 Workflow Management Reworked (#1406)
* Merge temp userfile

Basic migration

Remove deprecated isFavourite

Rename

nit

nit

Rework open/load

Refactor save

Refactor delete

Remove workflow dep on manager

WIP

Change map to record

Fix directory

nit

isActive

Move

nit

Add unload

Add close workflow

Remove workflowManager.closeWorkflow

nit

Remove workflowManager.storePrompt

move from commandStore

move more from commandStore

nit

Use workflowservice

nit

nit

implement setWorkflow

nit

Remove workflows.ts

Fix strict errors

nit

nit

Resolves circular dep

nit

nit

Fix workflow switching

Add openworkflowPaths

Fix store

Fix key

Serialize by default

Fix proxy

nit

Update path

Proper sync

Fix tabs

WIP

nit

Resolve merge conflict

Fix userfile store tests

Update jest test

Update tabs

patch tests

Fix changeTracker init

Move insert to service

nit

Fix insert

nit

Handle bookmark rename

Refactor tests

Add delete workflow

Add test on deleting workflow

Add closeWorkflow tests

nit

* Fix path

* Move load next/previous

* Move logic from store to service

* nit

* nit

* nit

* nit

* nit

* Add ChangeTracker.initialState

* ChangeTracker load/unload

* Remove app.changeWorkflow

* Hook to app.ts

* Changetracker restore

* nit

* nit

* nit

* Add debug logs

* Remove unnecessary checkState on graphLoad

* nit

* Fix strict

* Fix temp workflow name

* Track ismodified

* Fix reactivity

* nit

* Fix graph equal

* nit

* update test

* nit

* nit

* Fix modified state

* nit

* Fix modified state

* Sidebar force close

* tabs force close

* Fix save

* Add load remote workflow test

* Force save

* Add save test

* nit

* Correctly handle delete last opened workflow

* nit

* Fix workflow rename

* Fix save

* Fix tests

* Fix strict

* Update playwright tests

* Fix filename conflict handling

* nit

* Merge temporary and persisted ref

* Update playwright expectations

* nit

* nit

* Fix saveAs

* Add playwright test

* nit
2024-11-05 11:03:27 -05:00
Chenlei Hu
16f2e56d8e Handle errors from top action menu commands (#1432) 2024-11-04 22:50:19 -05:00