Spaces:
Running
on
Zero
Running
on
Zero
| import asyncio | |
| import time | |
| from comfy.comfy_types import IO, ComfyNodeABC, InputTypeDict | |
| from comfy_api.v0_0_2 import ComfyAPI, ComfyAPISync | |
| api = ComfyAPI() | |
| api_sync = ComfyAPISync() | |
| class TestAsyncProgressUpdate(ComfyNodeABC): | |
| """Test node with async VALIDATE_INPUTS.""" | |
| def INPUT_TYPES(cls) -> InputTypeDict: | |
| return { | |
| "required": { | |
| "value": (IO.ANY, {}), | |
| "sleep_seconds": (IO.FLOAT, {"default": 1.0}), | |
| }, | |
| } | |
| RETURN_TYPES = (IO.ANY,) | |
| FUNCTION = "execute" | |
| CATEGORY = "_for_testing/async" | |
| async def execute(self, value, sleep_seconds): | |
| start = time.time() | |
| expiration = start + sleep_seconds | |
| now = start | |
| while now < expiration: | |
| now = time.time() | |
| await api.execution.set_progress( | |
| value=(now - start) / sleep_seconds, | |
| max_value=1.0, | |
| ) | |
| await asyncio.sleep(0.01) | |
| return (value,) | |
| class TestSyncProgressUpdate(ComfyNodeABC): | |
| """Test node with async VALIDATE_INPUTS.""" | |
| def INPUT_TYPES(cls) -> InputTypeDict: | |
| return { | |
| "required": { | |
| "value": (IO.ANY, {}), | |
| "sleep_seconds": (IO.FLOAT, {"default": 1.0}), | |
| }, | |
| } | |
| RETURN_TYPES = (IO.ANY,) | |
| FUNCTION = "execute" | |
| CATEGORY = "_for_testing/async" | |
| def execute(self, value, sleep_seconds): | |
| start = time.time() | |
| expiration = start + sleep_seconds | |
| now = start | |
| while now < expiration: | |
| now = time.time() | |
| api_sync.execution.set_progress( | |
| value=(now - start) / sleep_seconds, | |
| max_value=1.0, | |
| ) | |
| time.sleep(0.01) | |
| return (value,) | |
| API_TEST_NODE_CLASS_MAPPINGS = { | |
| "TestAsyncProgressUpdate": TestAsyncProgressUpdate, | |
| "TestSyncProgressUpdate": TestSyncProgressUpdate, | |
| } | |
| API_TEST_NODE_DISPLAY_NAME_MAPPINGS = { | |
| "TestAsyncProgressUpdate": "Async Progress Update Test Node", | |
| "TestSyncProgressUpdate": "Sync Progress Update Test Node", | |
| } | |