65 lines
2.4 KiB
Python
65 lines
2.4 KiB
Python
import os
|
|
import sys
|
|
|
|
# Add the directory to Python path
|
|
sys.path.append(os.path.dirname(__file__))
|
|
|
|
# Patch ComfyUI execution validation for DistributedVideoCollector
|
|
try:
|
|
import execution
|
|
from .distributed import ImageBatchDivider
|
|
|
|
# Store original validate function if it exists
|
|
if hasattr(execution, 'validate_outputs'):
|
|
original_validate_outputs = execution.validate_outputs
|
|
|
|
def patched_validate_outputs(executor, node_id, result, node_class):
|
|
if node_class == ImageBatchDivider:
|
|
return # Skip validation for our dynamic output node
|
|
return original_validate_outputs(executor, node_id, result, node_class)
|
|
|
|
execution.validate_outputs = patched_validate_outputs
|
|
else:
|
|
# Fallback: patch the main execute method if validate_outputs doesn't exist
|
|
if hasattr(execution.PromptExecutor, 'execute'):
|
|
original_execute = execution.PromptExecutor.execute
|
|
|
|
def patched_execute(self, prompt, prompt_id, extra_data={}, execute_outputs=[]):
|
|
# This is a more complex patch - for now just call original
|
|
# The ByPassTypeTuple should handle most validation issues
|
|
return original_execute(self, prompt, prompt_id, extra_data, execute_outputs)
|
|
|
|
execution.PromptExecutor.execute = patched_execute
|
|
|
|
except ImportError:
|
|
pass # ComfyUI execution module not available during import
|
|
|
|
# Import everything needed from the main module
|
|
from .distributed import (
|
|
NODE_CLASS_MAPPINGS as DISTRIBUTED_CLASS_MAPPINGS,
|
|
NODE_DISPLAY_NAME_MAPPINGS as DISTRIBUTED_DISPLAY_NAME_MAPPINGS
|
|
)
|
|
|
|
# Import utilities
|
|
from .utils.config import ensure_config_exists, CONFIG_FILE
|
|
from .utils.logging import debug_log
|
|
|
|
# Import distributed upscale nodes
|
|
from .distributed_upscale import (
|
|
NODE_CLASS_MAPPINGS as UPSCALE_CLASS_MAPPINGS,
|
|
NODE_DISPLAY_NAME_MAPPINGS as UPSCALE_DISPLAY_NAME_MAPPINGS
|
|
)
|
|
|
|
WEB_DIRECTORY = "./web"
|
|
|
|
ensure_config_exists()
|
|
|
|
# Merge node mappings
|
|
NODE_CLASS_MAPPINGS = {**DISTRIBUTED_CLASS_MAPPINGS, **UPSCALE_CLASS_MAPPINGS}
|
|
NODE_DISPLAY_NAME_MAPPINGS = {**DISTRIBUTED_DISPLAY_NAME_MAPPINGS, **UPSCALE_DISPLAY_NAME_MAPPINGS}
|
|
|
|
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS']
|
|
|
|
debug_log("Loaded Distributed nodes.")
|
|
debug_log(f"Config file: {CONFIG_FILE}")
|
|
debug_log(f"Available nodes: {list(NODE_CLASS_MAPPINGS.keys())}") |