Jedrzej Kosinski
9d44cbf7c8
Removed dynamic type mocks from v3 definition, since were only used as tests up to this point
2025-07-24 17:04:00 -07:00
Jedrzej Kosinski
44afeab124
Abstracted out NodeOutput into _NodeOutputInternal in execution.py
2025-07-24 16:58:25 -07:00
Jedrzej Kosinski
d3a62a440f
Renamed InputV3, WidgetInputV3, OutputV3 to Input, WidgetInput, and Output
2025-07-24 16:29:26 -07:00
Jedrzej Kosinski
56aae3e2c8
Remove v3_01, didnt meant to commit that
2025-07-24 16:24:59 -07:00
Jedrzej Kosinski
dacd0e9a59
Complete merge - needed to expose some of the new classes in _io.py's _IO class
2025-07-24 16:22:43 -07:00
Jedrzej Kosinski
9bd3faaf1f
Merge branch 'v3-definition' into v3-definition-wip
2025-07-24 16:00:58 -07:00
Jedrzej Kosinski
3a8286b034
Refactored io.py, ui.py, and resources.py to expose themselves on v3/__init__.py on _IO, _UI, and _RESOURCES classes such that the v3 schema can be iterated upon on versioned Core API soon
2025-07-24 16:00:27 -07:00
bigcat88
c3d9243915
adjusted input parameters of ui.PreviewUI3D
2025-07-24 22:10:35 +03:00
bigcat88
991de5fc81
converted nodes files starting with "l" letter
2025-07-24 10:19:43 +03:00
Jedrzej Kosinski
7d710727a9
Begin porting io, ui, and resources to be compatible with versioned Core API
2025-07-23 20:52:05 -07:00
Jedrzej Kosinski
2e6ed6a10f
Added enable_expand toggle on Schema and corresponding enforcement in EXECUTE_NORMALIZED* functions
2025-07-23 16:18:03 -07:00
Jedrzej Kosinski
ddb84a3991
Renamed IO_V3 to _IO_V3
2025-07-23 15:37:43 -07:00
Jedrzej Kosinski
6adaf6c776
Renamed ComfyType to _ComfyType
2025-07-23 15:09:22 -07:00
Jedrzej Kosinski
d984cee318
Renamed ComfyNodeV3 to ComfyNode, renamed ComfyNodeInternal to _ComfyNodeInternal
2025-07-23 15:05:58 -07:00
Jedrzej Kosinski
b0f73174b2
Renamed SchemaV3 to Schema
2025-07-23 14:55:53 -07:00
Jedrzej Kosinski
a9f5554342
Remove unnecessary **kwargs in io.py
2025-07-23 14:46:56 -07:00
Jedrzej Kosinski
b561dfe8b2
Removed NumberDisplay.color, as it does not exist in the frontend
2025-07-23 14:38:33 -07:00
Jedrzej Kosinski
ce1d30e9c3
Merge pull request #9019 from bigcat88/v3/nodes/extras-8-files
...
[V3] next 8 converted files
2025-07-23 14:26:30 -07:00
bigcat88
9208b4a7c1
converted to V3 schema
2025-07-23 16:59:05 +03:00
bigcat88
bed60d6ed9
refactored Preview/Save of audios
2025-07-23 10:16:15 +03:00
bigcat88
333d942f30
refactored Preview/Save of images
2025-07-23 06:54:15 +03:00
Jedrzej Kosinski
8c03ff085d
Fixed super() calls not working from within v3's execute function due to shallow_clone_class not accounting for bases properly
2025-07-22 16:33:58 -07:00
Jedrzej Kosinski
6a77eb15bc
Merge pull request #8964 from bigcat88/v3/nodes/video-save
...
[V3] SaveVideo, LoadVideo, SaveWEBM, WAN nodes
2025-07-22 12:57:26 -07:00
bigcat88
aae60881de
v3: refactoring of image saving code
2025-07-20 11:28:13 +03:00
Jedrzej Kosinski
a7c59dc3d6
Removed state from ComfyNodeV3
2025-07-19 20:45:54 -07:00
bigcat88
36e8277724
v3: converted nodes_video
2025-07-19 07:47:09 +03:00
Jedrzej Kosinski
b6a4a4c664
Support async for v3's execute function, still need to test validate_inputs, fingerprint_inputs, and check_lazy_status, fix Any type for v3 by introducing __ne__ trick from comfy_api's typing.py
2025-07-18 15:50:42 -07:00
Jedrzej Kosinski
fd9c34a3eb
Merge branch 'master' into v3-definition - async v3 nodes do not currently work, but I will fix that in the next v3 PR
2025-07-18 14:14:02 -07:00
bigcat88
9eda706e64
V3: 7 more nodes
2025-07-18 06:23:13 +03:00
Jedrzej Kosinski
e431868c0d
Satisfy ruff
2025-07-17 17:34:29 -07:00
Jedrzej Kosinski
95289b3952
Moved helper functions into internal.__init__.py instead of in io.helpers.py as the functions will likely stay the same across different revisions of v3, move helper functions out of io.py to clean up the file a bit, remove Serialization class as not needed at the moment, fix ComfyNodeInternal inherting from ABC breaking lock_class function by removing ABC parent; will need better solution later
2025-07-17 17:32:41 -07:00
Jedrzej Kosinski
ab98b65226
Separate ComfyNodeV3 into an internal base class and one that only has the functions defined that a developer cares about overriding, reference ComfyNodeInternal in execution.py/server.py instead of ComfyNodeV3 to make the code not bound to a particular version of v3 schema (once placed on api)
2025-07-17 16:09:18 -07:00
Jedrzej Kosinski
b99e3d1336
Removed V1/V3 from as_dict and get_io_type functions on Inputs/Outputs, refactor GET_NODE_INFO_V1/V3 to use a function on SchemaV3 instead, add optional key to as_dict for inputs but remove it when dealing with v1 in add_to_dict_v1, cleanup of old test code in io.py, renamed widgetType to widget_type in WidgetInputV3 definition for consistency
2025-07-17 15:29:43 -07:00
bigcat88
326a2593e0
V3: 4 more converted files (starting with A)
2025-07-17 11:22:11 +03:00
bigcat88
5c94199b04
V3: Mask nodes
2025-07-16 21:12:40 +03:00
bigcat88
d703ba9633
V3: AceStepAudio nodes
2025-07-16 15:42:14 +03:00
bigcat88
c3334ae813
V3: renamed DEFINE_SCHEMA to define_schema
2025-07-16 11:24:46 +03:00
kosinkadink1@gmail.com
4263d6feca
Add dynamicPrompts to String.Input
2025-07-16 02:23:08 -05:00
kosinkadink1@gmail.com
59e2d47cfc
Merge branch 'v3-definition' into v3-definition-wip
2025-07-15 14:30:29 -05:00
kosinkadink1@gmail.com
d99f778982
Added ComfyNodeInternal to comfy_api.internal that will contain classes intended to be used by all V3 schema iterations going forward
2025-07-15 14:27:39 -05:00
bigcat88
b17cc99c1e
V3 Nodes: Load,Save,Vae audio nodes; sort imports; ruff
2025-07-15 13:11:50 +03:00
bigcat88
ac05d9a5fa
V3 Nodes: LoadAudio and PreviewAudio
2025-07-15 09:46:46 +03:00
bigcat88
79098e9fc8
V3 Nodes: refactor check for fingerprint_inputs and check_lazy_status
2025-07-14 17:59:34 +03:00
bigcat88
a580176735
V3 Nodes: refactor ComfyNodeV3 class; use of ui.SavedResult; ported SaveAnimatedPNG and SaveAnimatedWEBP nodes
2025-07-14 16:35:25 +03:00
kosinkadink1@gmail.com
a19ca62354
Renamed prepare_class_clone to PREPARE_CLASS_CLONE
2025-07-14 02:59:59 -05:00
kosinkadink1@gmail.com
c9e03684d6
Changed how a node class is cloned and locked for execution, added EXECUTE_NORMALIZED to wrap around execute function so that a NodeOutput is always returned
2025-07-14 02:55:07 -05:00
kosinkadink1@gmail.com
139025f0fd
Create ComfyTypeI that only has as an input, improved hints on Boolean, Int, and Combos
2025-07-14 01:03:21 -05:00
bigcat88
1e36e7ff8b
V3 Nodes: make generic upload parameters for io.Combo.Input
2025-07-12 17:57:29 +03:00
guill
2b653e8c18
Support for async node functions ( #8830 )
...
* Support for async execution functions
This commit adds support for node execution functions defined as async. When
a node's execution function is defined as async, we can continue
executing other nodes while it is processing.
Standard uses of `await` should "just work", but people will still have
to be careful if they spawn actual threads. Because torch doesn't really
have async/await versions of functions, this won't particularly help
with most locally-executing nodes, but it does work for e.g. web
requests to other machines.
In addition to the execute function, the `VALIDATE_INPUTS` and
`check_lazy_status` functions can also be defined as async, though we'll
only resolve one node at a time right now for those.
* Add the execution model tests to CI
* Add a missing file
It looks like this got caught by .gitignore? There's probably a better
place to put it, but I'm not sure what that is.
* Add the websocket library for automated tests
* Add additional tests for async error cases
Also fixes one bug that was found when an async function throws an error
after being scheduled on a task.
* Add a feature flags message to reduce bandwidth
We now only send 1 preview message of the latest type the client can
support.
We'll add a console warning when the client fails to send a feature
flags message at some point in the future.
* Add async tests to CI
* Don't actually add new tests in this PR
Will do it in a separate PR
* Resolve unit test in GPU-less runner
* Just remove the tests that GHA can't handle
* Change line endings to UNIX-style
* Avoid loading model_management.py so early
Because model_management.py has a top-level `logging.info`, we have to
be careful not to import that file before we call `setup_logging`. If we
do, we end up having the default logging handler registered in addition
to our custom one.
2025-07-10 14:46:19 -04:00
kosinkadink1@gmail.com
5ee63e284b
Renamed 'node' to 'cls' in PreviewImage/Mask
2025-07-10 01:53:27 -05:00