204 Commits

Author SHA1 Message Date
Jacob Segal
85d046bd6d Merge branch 'master' into execution_model_inversion 2024-07-20 20:27:48 -07:00
bymyself
011b11d8d7
LoadAudio restores file value from workflow (#4043)
* LoadAudio restores file value from workflow

* use onAfterGraphConfigured

* Don't use anonnymous function
2024-07-18 21:59:18 -04:00
bymyself
374e093e09
Disable audio widget trying to get previews (#4044) 2024-07-17 16:11:10 -04:00
comfyanonymous
fbb7a1f1b6 PreviewAudio node. 2024-06-29 01:33:22 -04:00
Chenlei Hu
5ff3d4eb3a
Fix audio upload when no audio in input dir (#3891) 2024-06-27 09:13:52 -04:00
Chenlei Hu
3b423afcca
Add audio widget (#3863)
* Add audio widget

* Fix audio bugs

* Add CSS

* Populate audio widget when load history
2024-06-27 00:22:55 -04:00
pythongosssss
90aebb6c86
New Menu & Workflow Management (#3112)
* menu

* wip

* wip

* wip

* wip

* wip

* workflow saving/loading

* Support inserting workflows
Move buttosn to top of lists

* fix session storage
implement renaming

* temp

* refactor, better workflow instance management

* wip

* progress on progress

* added send to workflow
various fixes

* Support multiple image loaders

* Support dynamic size breakpoints based on content

* various fixes
add close unsaved warning

* Add filtering tree

* prevent renaming unsaved

* fix zindex on hover

* fix top offset

* use filename as workflow name

* resize on setting change

* hide element until it is drawn

* remove glow

* Fix export name

* Fix test, revert accidental changes to groupNode

* Fix colors on all themes

* show hover items on smaller screen (mobile)

* remove debugging code

* dialog fix

* Dont reorder open workflows
Allow elements around canvas

* Toggle body display on setting change

* Fix menu disappearing on chrome

* Increase delay when typing, remove margin on Safari, fix dialog location

* Fix overflow issue on iOS

* Add reset view button
Prevent view changes causing history entries

* Bottom menu wip

* Various fixes

* Fix merge

* Fix breaking old menu position

* Fix merge adding restore view to loadGraphData
2024-06-25 06:49:25 -04:00
Jacob Segal
9d624564fa Merge branch 'master' into execution_model_inversion 2024-06-16 19:08:09 -07:00
Regis Gaughan, III
f6a203951f
Extend core snapToGrid to LiteGraph Groups. (#3393)
Extends the core Comfy.SnapToGrid behavior for nodes to apply to LiteGraph's LGraphGroup with the same behavior. Also, pulls out redundant rounding code into util function.
2024-05-27 14:05:51 -04:00
comfyanonymous
6507a9c716 Remove the CTRL-Delete keybind.
On some keyboards it's apparently too easy to accidentally do CTRL-Delete
when pressing CTRL-Enter repeatedly.

CTRL-Backspace can still be used to clear the workflow.
2024-05-23 01:29:22 -04:00
comfyanonymous
1c4af5918a Better error message if the webcam node doesn't work. 2024-05-17 14:02:09 -04:00
pythongosssss
91590adf04
Add webcam node (#3497)
* Add webcam node

* unused import
2024-05-17 13:16:08 -04:00
vilanele
9a70b70de4
add opacity slider in maskeditor (#3404)
Co-authored-by: vilanele <nomail@email.com>
2024-05-05 05:01:06 -04:00
Jacob Segal
b3e547f22b Merge branch 'master' into execution_model_inversion 2024-04-21 21:31:58 -07:00
Torbjörn Lönnemark
a88b0ebc2d
Improve node input/widget conversion sub-menus (#3281)
* Make input/widget conversion sub-menus optional

* Improve input/widget conversion sub-menu text

- Fix incorrect text for conversion from widget to input, previously it
  effectively said "convert input to input"
- Use "input" instead of "🔘".  The former is clearer and consistent
  with the rest of the application.
- Use title case (consistent with the rest of the menu entries).
- Strip the trailing periods. There is already a visual indicator for
  sub-menus, and no other sub-menus use trailing periods.
2024-04-18 16:41:23 -04:00
comfyanonymous
744ac944db Don't make dynamicPrompts the default on multiline string inputs.
This should be less confusing to those who want to use multiline input
without them.
2024-04-13 16:18:00 -04:00
NyaamZ
2bef134ebf
change Convert.. input (#3246) 2024-04-12 17:02:17 -04:00
comfyanonymous
4bd7d55b90 Add some colors to SamplerCustom links.
If you don't like them I am open to a PR.
2024-04-11 22:43:05 -04:00
Jacob Segal
5ab1565418 Merge branch 'master' into execution_model_inversion 2024-02-21 19:41:09 -08:00
chrisgoringe
cf4910a3a4
Prevent hideWidget being called twice for same widget
Fix for #2766
2024-02-12 08:59:25 +11:00
comfyanonymous
fd73b5ee3a Merge branch 'improved-mobile-support' of https://github.com/pythongosssss/ComfyUI 2024-02-08 01:06:33 -05:00
pythongosssss
d2e7f1b04b Support linking converted inputs from api json 2024-02-06 16:55:55 +00:00
ultimabear
5f3dbede58 Mask editor: semitransparent brush, brush color modes 2024-02-03 10:29:44 +03:00
Lt.Dr.Data
6ab4205422 feat: better pen support for mask editor
- alt-drag: erase
- shift-drag(up/down): zoom in/out
2024-01-31 18:28:36 +09:00
comfyanonymous
eeca72488b Merge branch 'group-manage-fixes' of https://github.com/pythongosssss/ComfyUI 2024-01-31 00:25:03 -05:00
pythongosssss
af6165ab69 Fix scrolling with lots of nodes 2024-01-30 18:00:01 +00:00
pythongosssss
29558fb3ac Fix crash when no widgets on customized group node 2024-01-30 17:59:47 +00:00
Meowu
364ef19354
fix: inpaint on mask editor bottom area 2024-01-30 14:23:01 +08:00
Jacob Segal
36b2214e30 Execution Model Inversion
This PR inverts the execution model -- from recursively calling nodes to
using a topological sort of the nodes. This change allows for
modification of the node graph during execution. This allows for two
major advantages:

    1. The implementation of lazy evaluation in nodes. For example, if a
    "Mix Images" node has a mix factor of exactly 0.0, the second image
    input doesn't even need to be evaluated (and visa-versa if the mix
    factor is 1.0).

    2. Dynamic expansion of nodes. This allows for the creation of dynamic
    "node groups". Specifically, custom nodes can return subgraphs that
    replace the original node in the graph. This is an incredibly
    powerful concept. Using this functionality, it was easy to
    implement:
        a. Components (a.k.a. node groups)
        b. Flow control (i.e. while loops) via tail recursion
        c. All-in-one nodes that replicate the WebUI functionality
        d. and more
    All of those were able to be implemented entirely via custom nodes,
    so those features are *not* a part of this PR. (There are some
    front-end changes that should occur before that functionality is
    made widely available, particularly around variant sockets.)

The custom nodes associated with this PR can be found at:
https://github.com/BadCafeCode/execution-inversion-demo-comfyui

Note that some of them require that variant socket types ("*") be
enabled.
2024-01-28 20:48:42 -08:00
pythongosssss
3762e676a9
Support refresh on group node combos (#2625)
* Support refresh on group node combos

* fix check
2024-01-23 14:15:52 -05:00
pythongosssss
8a92ac2120 Ability to hide menu
Responsive setting screen
Touch events for zooming/context menu
2024-01-22 18:56:43 +00:00
pythongosssss
ee2c5fa72d
Fix renaming upload widget (#2554)
* Fix renaming upload widget

* Allow custom name
2024-01-16 08:58:54 -05:00
pythongosssss
93bbe3f4c0
Auto queue on change (#2542)
* Add toggle to enable auto queue when graph is changed

* type fix

* better

* better alignment

* Change undoredo to not ignore inputs when autoqueue in change mode
2024-01-16 08:27:40 -05:00
comfyanonymous
b5ece6354d Merge branch 'undoredo-fix-modifiers' of https://github.com/pythongosssss/ComfyUI 2024-01-13 16:03:44 -05:00
pythongosssss
9bddc9d94b Fix crash on group render 2024-01-13 21:02:51 +00:00
pythongosssss
18511dd581
Manage group nodes (#2455)
* wip group manage

* prototyping ui

* tweaks

* wip

* wip

* more wip

* fixes
add deletion

* Fix tests

* fixes

* Remove test code

* typo

* fix crash when link is invalid
2024-01-13 15:43:20 -05:00
pythongosssss
df49a727ff Fix modifiers triggering key down checks 2024-01-13 17:00:30 +00:00
pythongosssss
235727fed7
Store user settings/data on the server and multi user support (#2160)
* wip per user data

* Rename, hide menu

* better error
rework default user

* store pretty

* Add userdata endpoints
Change nodetemplates to userdata

* add multi user message

* make normal arg

* Fix tests

* Ignore user dir

* user tests

* Changed to default to browser storage and add server-storage arg

* fix crash on empty templates

* fix settings added before load

* ignore parse errors
2024-01-08 17:06:44 -05:00
pythongosssss
6453dc1ca2 Fix name counter preventing more than 3 of the same node
Fix linked widget offset when populating values
2023-12-16 14:16:12 +00:00
pythongosssss
390078904c
Group node fixes (#2259)
* Prevent cleaning graph state on undo/redo

* Remove pause rendering due to LG bug

* Fix crash on disconnected internal reroutes

* Fix widget inputs being incorrect order and value

* Fix initial primitive values on connect

* basic support for basic rerouted converted inputs

* Populate primitive to reroute input

* dont crash on bad primitive links

* Fix convert to group changing control value

* reduce restrictions

* fix random crash in tests
2023-12-13 00:56:39 -05:00
pythongosssss
ab93abd4b2
Prevent cleaning graph state on undo/redo (#2255)
* Prevent cleaning graph state on undo/redo

* Remove pause rendering due to LG bug
2023-12-11 12:33:35 -05:00
Dr.Lt.Data
69033081c5 mask editor bugfix
- Addressing the issue where an unnecessary hidden panel disrupts the drawing.
2023-12-11 00:24:28 +09:00
pythongosssss
9aaf368a41 Fix internal reroutes connected to other groups 2023-12-09 13:04:35 +00:00
comfyanonymous
e134547341 Merge branch 'reroute-converted-inputs' of https://github.com/pythongosssss/ComfyUI
# Conflicts:
#	web/extensions/core/widgetInputs.js
2023-12-06 03:01:35 -05:00
Dr.Lt.Data
8112a0d9fc
improve: Mask Editor (#2171)
* renewal mask editor

* fix: ignoring keydown when 2nd open
2023-12-06 01:56:03 -05:00
pythongosssss
8de6f94f5c Allow widget placeholder replacement on primitives 2023-12-05 21:02:10 +00:00
pythongosssss
44265e0810 Allow connecting primitivenode to reroutes 2023-12-05 20:27:13 +00:00
comfyanonymous
6efe561c2a Merge branch 'fix-template-sorting' of https://github.com/pythongosssss/ComfyUI 2023-12-03 22:51:23 -05:00
pythongosssss
77ab2c3f69 fix template sorting 2023-12-03 17:17:23 +00:00
pythongosssss
496de0891d Allow removing erroring embedded groups
Unregister group nodes on workflow change
2023-12-03 16:49:48 +00:00