| | 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.""" |
| |
|
| | @classmethod |
| | 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.""" |
| |
|
| | @classmethod |
| | 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", |
| | } |
| |
|