From a82ab2e253e7bf517cc9e24a3e9cc9fd337f4ed0 Mon Sep 17 00:00:00 2001 From: tusharbhutt Date: Sun, 20 Jul 2025 08:50:10 -0600 Subject: [PATCH] Add files via upload Forgot to add javascript web folder location --- __init__.py | 167 +++++++++++++++------------------------------------- 1 file changed, 47 insertions(+), 120 deletions(-) diff --git a/__init__.py b/__init__.py index dc1233b..683ffab 100644 --- a/__init__.py +++ b/__init__.py @@ -1,10 +1,7 @@ # nodes/__init__.py -# ========================= -# 💉 Import Common -# ========================= -from .utils.common import inject_descriptions, NODE_DESCRIPTIONS +# nodes/__init__.py # ========================= # 💉 Set JavaScript @@ -12,51 +9,32 @@ from .utils.common import inject_descriptions, NODE_DESCRIPTIONS WEB_DIRECTORY = "./web/" - -# ========================= -# 🧩 Submodule Imports -# ========================= +# Import NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS from each submodule if present +try: + from .batchers import NODE_CLASS_MAPPINGS as BATCH_PROCESSOR_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as BATCH_PROCESSOR_NAMES +except ImportError: + BATCH_PROCESSOR_CLASSES, BATCH_PROCESSOR_NAMES = {}, {} try: from .image_analysis import NODE_CLASS_MAPPINGS as IMG_ANALYSIS_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as IMG_ANALYSIS_NAMES except ImportError: IMG_ANALYSIS_CLASSES, IMG_ANALYSIS_NAMES = {}, {} +try: + from .image_loader import NODE_CLASS_MAPPINGS as IMAGE_LOADER_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as IMAGE_LOADER_NAMES +except ImportError: + IMAGE_LOADER_CLASSES, IMAGE_LOADER_NAMES = {}, {} + +try: + from .image_saver import NODE_CLASS_MAPPINGS as IMG_SAVER_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as IMG_SAVER_NAMES +except ImportError: + IMG_SAVER_CLASSES, IMG_SAVER_NAMES = {}, {} + try: from .image_scorer import NODE_CLASS_MAPPINGS as IMG_SCORER_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as IMG_SCORER_NAMES except ImportError: IMG_SCORER_CLASSES, IMG_SCORER_NAMES = {}, {} -try: - from .batchers import NODE_CLASS_MAPPINGS as BATCH_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as BATCH_NAMES -except ImportError: - BATCH_CLASSES, BATCH_NAMES = {}, {} - -try: - from .randomizers import NODE_CLASS_MAPPINGS as RANDOMIZER_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as RANDOMIZER_NAMES -except ImportError: - RANDOMIZER_CLASSES, RANDOMIZER_NAMES = {}, {} - -try: - from .random_prompt_selectors import NODE_CLASS_MAPPINGS as PROMPT_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as PROMPT_NAMES -except ImportError: - PROMPT_CLASSES, PROMPT_NAMES = {}, {} - -try: - from .image_saver import NODE_CLASS_MAPPINGS as SAVER_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as SAVER_NAMES -except ImportError: - SAVER_CLASSES, SAVER_NAMES = {}, {} - -try: - from .image_loader import NODE_CLASS_MAPPINGS as LOADER_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as LOADER_NAMES -except ImportError: - LOADER_CLASSES, LOADER_NAMES = {}, {} - -try: - from .text_switches import NODE_CLASS_MAPPINGS as TEXT_SWITCH_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as TEXT_SWITCH_NAMES -except ImportError: - TEXT_SWITCH_CLASSES, TEXT_SWITCH_NAMES = {}, {} - try: from .int_switches import NODE_CLASS_MAPPINGS as INT_SWITCH_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as INT_SWITCH_NAMES except ImportError: @@ -68,106 +46,55 @@ except ImportError: INT_WIDGET_CLASSES, INT_WIDGET_NAMES = {}, {} try: - from .type_converter import NODE_CLASS_MAPPINGS as TYPE_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as TYPE_NAMES + from .random_prompt_selectors import NODE_CLASS_MAPPINGS as PROMPT_SELECTOR_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as PROMPT_SELECTOR_NAMES except ImportError: - TYPE_CLASSES, TYPE_NAMES = {}, {} + PROMPT_SELECTOR_CLASSES, PROMPT_SELECTOR_NAMES = {}, {} try: - from .embedders.endless_embedder_nodes import NODE_CLASS_MAPPINGS as EMBEDDER_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as EMBEDDER_NAMES -except Exception as e: - EMBEDDER_CLASSES, EMBEDDER_NAMES = {}, {} + from .randomizers import NODE_CLASS_MAPPINGS as RANDOMIZER_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as RANDOMIZER_NAMES +except ImportError: + RANDOMIZER_CLASSES, RANDOMIZER_NAMES = {}, {} try: - from .utils import NODE_CLASS_MAPPINGS as UTILS_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as UTILS_NAMES -except Exception as e: - UTILS_CLASSES, UTILS_NAMES = {}, {} + from .text_switches import NODE_CLASS_MAPPINGS as TEXT_SWITCH_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as TEXT_SWITCH_NAMES +except ImportError: + TEXT_SWITCH_CLASSES, TEXT_SWITCH_NAMES = {}, {} +try: + from .type_converter import NODE_CLASS_MAPPINGS as TYPE_CONVERTER_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as TYPE_CONVERTER_NAMES +except ImportError: + TYPE_CONVERTER_CLASSES, TYPE_CONVERTER_NAMES = {}, {} -# ===================== -# 📦 Dependency Check (v1.3+) -# ===================== - - -_missing = [] -_required = { - "clip": "CLIP embeddings", - "ftfy": "CLIP text cleanup", - "imagehash": "Legacy image hashing", - "scipy": "Saliency / Structural analysis", - "sentencepiece": "Tokenizer backend for T5 models", - "skimage": "Statistical image metrics", - "transformers": "T5 / HuggingFace model support", -} - - -for lib, purpose in _required.items(): - try: - __import__(lib) - except ImportError: - _missing.append(f"{lib} ({purpose})") - -if _missing: - print("⚠️ [Endless 🌊✨] Missing dependencies detected:") - for m in _missing: - print(f" ⛔ {m}") - print("👉 Run this to fix: pip install -r requirements.txt\n") -else: - print("✅ [Endless 🌊✨] All runtime dependencies detected.") - - -# ========================= -# 🧠 Compose Mappings -# ========================= - +# Combine all NODE_CLASS_MAPPINGS NODE_CLASS_MAPPINGS = {} +NODE_CLASS_MAPPINGS.update(BATCH_PROCESSOR_CLASSES) NODE_CLASS_MAPPINGS.update(IMG_ANALYSIS_CLASSES) +NODE_CLASS_MAPPINGS.update(IMAGE_LOADER_CLASSES) +NODE_CLASS_MAPPINGS.update(IMG_SAVER_CLASSES) NODE_CLASS_MAPPINGS.update(IMG_SCORER_CLASSES) -NODE_CLASS_MAPPINGS.update(BATCH_CLASSES) -NODE_CLASS_MAPPINGS.update(RANDOMIZER_CLASSES) -NODE_CLASS_MAPPINGS.update(PROMPT_CLASSES) -NODE_CLASS_MAPPINGS.update(SAVER_CLASSES) -NODE_CLASS_MAPPINGS.update(LOADER_CLASSES) -NODE_CLASS_MAPPINGS.update(TEXT_SWITCH_CLASSES) NODE_CLASS_MAPPINGS.update(INT_SWITCH_CLASSES) NODE_CLASS_MAPPINGS.update(INT_WIDGET_CLASSES) -NODE_CLASS_MAPPINGS.update(TYPE_CLASSES) -NODE_CLASS_MAPPINGS.update(EMBEDDER_CLASSES) -NODE_CLASS_MAPPINGS.update(UTILS_CLASSES) +NODE_CLASS_MAPPINGS.update(PROMPT_SELECTOR_CLASSES) +NODE_CLASS_MAPPINGS.update(RANDOMIZER_CLASSES) +NODE_CLASS_MAPPINGS.update(TEXT_SWITCH_CLASSES) +NODE_CLASS_MAPPINGS.update(TYPE_CONVERTER_CLASSES) +# Combine all NODE_DISPLAY_NAME_MAPPINGS NODE_DISPLAY_NAME_MAPPINGS = {} +NODE_DISPLAY_NAME_MAPPINGS.update(BATCH_PROCESSOR_NAMES) NODE_DISPLAY_NAME_MAPPINGS.update(IMG_ANALYSIS_NAMES) +NODE_DISPLAY_NAME_MAPPINGS.update(IMAGE_LOADER_NAMES) +NODE_DISPLAY_NAME_MAPPINGS.update(IMG_SAVER_NAMES) NODE_DISPLAY_NAME_MAPPINGS.update(IMG_SCORER_NAMES) -NODE_DISPLAY_NAME_MAPPINGS.update(BATCH_NAMES) -NODE_DISPLAY_NAME_MAPPINGS.update(RANDOMIZER_NAMES) -NODE_DISPLAY_NAME_MAPPINGS.update(PROMPT_NAMES) -NODE_DISPLAY_NAME_MAPPINGS.update(SAVER_NAMES) -NODE_DISPLAY_NAME_MAPPINGS.update(LOADER_NAMES) -NODE_DISPLAY_NAME_MAPPINGS.update(TEXT_SWITCH_NAMES) NODE_DISPLAY_NAME_MAPPINGS.update(INT_SWITCH_NAMES) NODE_DISPLAY_NAME_MAPPINGS.update(INT_WIDGET_NAMES) -NODE_DISPLAY_NAME_MAPPINGS.update(TYPE_NAMES) -NODE_DISPLAY_NAME_MAPPINGS.update(EMBEDDER_NAMES) -NODE_DISPLAY_NAME_MAPPINGS.update(UTILS_NAMES) - -# ===================== -# ✅ Finalization -# ===================== - -# Inject tooltip descriptions for display names -for cls in NODE_CLASS_MAPPINGS.values(): - inject_descriptions(cls, NODE_DESCRIPTIONS) - -# Count only nodes that are meant to be shown (have display names) -visible_node_count = sum( - 1 for k in NODE_CLASS_MAPPINGS - if NODE_DISPLAY_NAME_MAPPINGS.get(k, "").strip() -) +NODE_DISPLAY_NAME_MAPPINGS.update(PROMPT_SELECTOR_NAMES) +NODE_DISPLAY_NAME_MAPPINGS.update(RANDOMIZER_NAMES) +NODE_DISPLAY_NAME_MAPPINGS.update(TEXT_SWITCH_NAMES) +NODE_DISPLAY_NAME_MAPPINGS.update(TYPE_CONVERTER_NAMES) # Version info -__version__ = "1.3.0" +__version__ = "1.2.2" -print("\n===============================") -print(f"Endless Sea of Stars Custom Nodes v{__version__} loaded successfully! 🌠") -print(f"{visible_node_count} nodes available under the 'Endless 🌊✨' menu") -print("🔧 If things are missing, try: pip install -r requirements.txt") -print("===============================\n") \ No newline at end of file +print(f"Endless Sea of Stars Custom Nodes v{__version__} loaded successfully!") +print("Nodes available under 'Endless 🌊✨' menu")