From 3edb87c1c32297e0eb64e6152ebc35c45ec554a9 Mon Sep 17 00:00:00 2001 From: Albert Trott Date: Fri, 26 Jul 2024 09:27:15 +0200 Subject: [PATCH] init commit --- .gitignore | 2 ++ __init__.py | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 12 +++++++++++ requirements.txt | 1 + watcher.py | 39 +++++++++++++++++++++++++++++++++++ 5 files changed, 107 insertions(+) create mode 100644 .gitignore create mode 100644 __init__.py create mode 100644 package.json create mode 100644 requirements.txt create mode 100644 watcher.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c077809 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.log +__pycache__/* \ No newline at end of file diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..01743d4 --- /dev/null +++ b/__init__.py @@ -0,0 +1,53 @@ +class ImageBlender: + def __init__(self): + pass + + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "image_1": ("IMAGE",), + "image_2": ("IMAGE",), + "blend_modes": ( + [ + "darken", + "multiply", + "color burn", + "linear burn", + "lighten", + "screen", + "color dodge", + "linear dodge", + "overlay", + "soft light", + "hard light", + "vivid light", + "linear light", + "pin light", + "hard mix", + ], + { + "default": "darken", + } + ), + } + } + + RETURN_TYPES = ("IMAGE",) + + FUNCTION = "blend" + + CATEGORY = "ImageBlender" + + def blend(self, image_1, image_2, blend_modes): + image = 1.0 - image_1 + return (image,) + + +NODE_CLASS_MAPPINGS = { + "ImageBlender": ImageBlender +} + +NODE_DISPLAY_NAME_MAPPINGS = { + "ImageBlender": "ImageBlender" +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..44ef516 --- /dev/null +++ b/package.json @@ -0,0 +1,12 @@ +{ + "name": "custom-node-boilerplate", + "version": "1.0.0", + "scripts": { + "start": "cd ..\\..\\.. && python_embeded\\python.exe ComfyUI\\main.py", + "install": "..\\..\\..\\python_embeded\\python.exe -m pip install -r requirements.txt", + "dev": "cd ..\\..\\.. && python_embeded\\python.exe ComfyUI\\custom_nodes\\custom-node-boilerplate\\watcher.py" + }, + "author": "", + "license": "ISC", + "description": "" +} diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..c1cb094 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +watchdog \ No newline at end of file diff --git a/watcher.py b/watcher.py new file mode 100644 index 0000000..6930544 --- /dev/null +++ b/watcher.py @@ -0,0 +1,39 @@ +import sys +import time +from watchdog.observers import Observer +from watchdog.events import PatternMatchingEventHandler +import subprocess + +class MyHandler(PatternMatchingEventHandler): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.process = None + self.restart_process() + + def restart_process(self): + if self.process: + self.process.terminate() + self.process = subprocess.Popen([sys.executable, 'ComfyUI\\main.py']) + + def on_modified(self, event): + self.restart_process() + +if __name__ == "__main__": + patterns = ["*.py"] + ignore_patterns = None + ignore_directories = False + case_sensitive = True + my_event_handler = MyHandler(patterns=patterns, ignore_patterns=ignore_patterns, ignore_directories=ignore_directories, case_sensitive=case_sensitive) + + path = ".\\custom_nodes\\image-enchanser" + go_recursively = True + my_observer = Observer() + my_observer.schedule(my_event_handler, path, recursive=go_recursively) + + my_observer.start() + try: + while True: + time.sleep(1) + except KeyboardInterrupt: + my_observer.stop() + my_observer.join() \ No newline at end of file