diff --git a/__init__.py b/__init__.py index 132f4a6..9f0ded5 100644 --- a/__init__.py +++ b/__init__.py @@ -1,13 +1,43 @@ -from .sharp_node import SharpnessAnalyzer, SharpFrameSelector +import importlib +import os +import sys +import glob -NODE_CLASS_MAPPINGS = { - "SharpnessAnalyzer": SharpnessAnalyzer, - "SharpFrameSelector": SharpFrameSelector -} +# Get the path of the current directory +node_path = os.path.dirname(os.path.realpath(__file__)) +node_dir = os.path.basename(node_path) -NODE_DISPLAY_NAME_MAPPINGS = { - "SharpnessAnalyzer": "1. Sharpness Analyzer", - "SharpFrameSelector": "2. Sharp Frame Selector" -} +# Initialize global mappings +NODE_CLASS_MAPPINGS = {} +NODE_DISPLAY_NAME_MAPPINGS = {} +# Scan for all .py files in this folder +files = glob.glob(os.path.join(node_path, "*.py")) + +for file in files: + # Get just the filename without extension + module_name = os.path.basename(file).split(".")[0] + + # Skip this __init__.py file to avoid infinite loops + if module_name == "__init__": + continue + + try: + # Dynamically import the module + module = importlib.import_module(f".{module_name}", package=node_dir) + + # Look for NODE_CLASS_MAPPINGS in the module + if hasattr(module, "NODE_CLASS_MAPPINGS"): + NODE_CLASS_MAPPINGS.update(module.NODE_CLASS_MAPPINGS) + + # Look for NODE_DISPLAY_NAME_MAPPINGS in the module + if hasattr(module, "NODE_DISPLAY_NAME_MAPPINGS"): + NODE_DISPLAY_NAME_MAPPINGS.update(module.NODE_DISPLAY_NAME_MAPPINGS) + + print(f"Loaded module: {module_name}") + + except Exception as e: + print(f"Error loading module {module_name}: {e}") + +# Export the mappings so ComfyUI sees them __all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"] \ No newline at end of file