diff --git a/__init__.py b/__init__.py index dc2edfd..af847ed 100644 --- a/__init__.py +++ b/__init__.py @@ -2,16 +2,38 @@ import sys import os repo_dir = os.path.dirname(os.path.realpath(__file__)) sys.path.insert(0, repo_dir) -modules = sys.modules.copy() -from .nodes import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS +original_modules = sys.modules.copy() +# Place aside existing modules if using a1111 web ui +modules_used = [ + "modules", + "modules.face_restoration", + "modules.images", + "modules.processing", + "modules.scripts_postprocessing", + "modules.scripts", + "modules.shared", + "modules.upscaler" +] +original_webui_modules = {} +for module in modules_used: + if module in sys.modules: + original_webui_modules[module] = sys.modules.pop(module) + +# Proceed with node setup +from .nodes import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS __all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"] # Clean up imports +# Remove repo directory from path sys.path.remove(repo_dir) +# Remove any new modules modules_to_remove = [] for module in sys.modules: - if module not in modules: + if module not in original_modules: modules_to_remove.append(module) for module in modules_to_remove: del sys.modules[module] + +# Restore original modules +sys.modules.update(original_webui_modules)