mirror of
https://github.com/tusharbhutt/Endless-Nodes.git
synced 2026-03-21 20:42:12 -03:00
Add files via upload
Forgot to add javascript web folder location
This commit is contained in:
167
__init__.py
167
__init__.py
@@ -1,10 +1,7 @@
|
|||||||
# nodes/__init__.py
|
# nodes/__init__.py
|
||||||
|
|
||||||
# =========================
|
|
||||||
# 💉 Import Common
|
|
||||||
# =========================
|
|
||||||
|
|
||||||
from .utils.common import inject_descriptions, NODE_DESCRIPTIONS
|
# nodes/__init__.py
|
||||||
|
|
||||||
# =========================
|
# =========================
|
||||||
# 💉 Set JavaScript
|
# 💉 Set JavaScript
|
||||||
@@ -12,51 +9,32 @@ from .utils.common import inject_descriptions, NODE_DESCRIPTIONS
|
|||||||
|
|
||||||
WEB_DIRECTORY = "./web/"
|
WEB_DIRECTORY = "./web/"
|
||||||
|
|
||||||
|
# Import NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS from each submodule if present
|
||||||
# =========================
|
try:
|
||||||
# 🧩 Submodule Imports
|
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:
|
try:
|
||||||
from .image_analysis import NODE_CLASS_MAPPINGS as IMG_ANALYSIS_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as IMG_ANALYSIS_NAMES
|
from .image_analysis import NODE_CLASS_MAPPINGS as IMG_ANALYSIS_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as IMG_ANALYSIS_NAMES
|
||||||
except ImportError:
|
except ImportError:
|
||||||
IMG_ANALYSIS_CLASSES, IMG_ANALYSIS_NAMES = {}, {}
|
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:
|
try:
|
||||||
from .image_scorer import NODE_CLASS_MAPPINGS as IMG_SCORER_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as IMG_SCORER_NAMES
|
from .image_scorer import NODE_CLASS_MAPPINGS as IMG_SCORER_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as IMG_SCORER_NAMES
|
||||||
except ImportError:
|
except ImportError:
|
||||||
IMG_SCORER_CLASSES, IMG_SCORER_NAMES = {}, {}
|
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:
|
try:
|
||||||
from .int_switches import NODE_CLASS_MAPPINGS as INT_SWITCH_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as INT_SWITCH_NAMES
|
from .int_switches import NODE_CLASS_MAPPINGS as INT_SWITCH_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as INT_SWITCH_NAMES
|
||||||
except ImportError:
|
except ImportError:
|
||||||
@@ -68,106 +46,55 @@ except ImportError:
|
|||||||
INT_WIDGET_CLASSES, INT_WIDGET_NAMES = {}, {}
|
INT_WIDGET_CLASSES, INT_WIDGET_NAMES = {}, {}
|
||||||
|
|
||||||
try:
|
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:
|
except ImportError:
|
||||||
TYPE_CLASSES, TYPE_NAMES = {}, {}
|
PROMPT_SELECTOR_CLASSES, PROMPT_SELECTOR_NAMES = {}, {}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from .embedders.endless_embedder_nodes import NODE_CLASS_MAPPINGS as EMBEDDER_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as EMBEDDER_NAMES
|
from .randomizers import NODE_CLASS_MAPPINGS as RANDOMIZER_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as RANDOMIZER_NAMES
|
||||||
except Exception as e:
|
except ImportError:
|
||||||
EMBEDDER_CLASSES, EMBEDDER_NAMES = {}, {}
|
RANDOMIZER_CLASSES, RANDOMIZER_NAMES = {}, {}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from .utils import NODE_CLASS_MAPPINGS as UTILS_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as UTILS_NAMES
|
from .text_switches import NODE_CLASS_MAPPINGS as TEXT_SWITCH_CLASSES, NODE_DISPLAY_NAME_MAPPINGS as TEXT_SWITCH_NAMES
|
||||||
except Exception as e:
|
except ImportError:
|
||||||
UTILS_CLASSES, UTILS_NAMES = {}, {}
|
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 = {}, {}
|
||||||
|
|
||||||
# =====================
|
# Combine all NODE_CLASS_MAPPINGS
|
||||||
# 📦 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
|
|
||||||
# =========================
|
|
||||||
|
|
||||||
NODE_CLASS_MAPPINGS = {}
|
NODE_CLASS_MAPPINGS = {}
|
||||||
|
NODE_CLASS_MAPPINGS.update(BATCH_PROCESSOR_CLASSES)
|
||||||
NODE_CLASS_MAPPINGS.update(IMG_ANALYSIS_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(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_SWITCH_CLASSES)
|
||||||
NODE_CLASS_MAPPINGS.update(INT_WIDGET_CLASSES)
|
NODE_CLASS_MAPPINGS.update(INT_WIDGET_CLASSES)
|
||||||
NODE_CLASS_MAPPINGS.update(TYPE_CLASSES)
|
NODE_CLASS_MAPPINGS.update(PROMPT_SELECTOR_CLASSES)
|
||||||
NODE_CLASS_MAPPINGS.update(EMBEDDER_CLASSES)
|
NODE_CLASS_MAPPINGS.update(RANDOMIZER_CLASSES)
|
||||||
NODE_CLASS_MAPPINGS.update(UTILS_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 = {}
|
||||||
|
NODE_DISPLAY_NAME_MAPPINGS.update(BATCH_PROCESSOR_NAMES)
|
||||||
NODE_DISPLAY_NAME_MAPPINGS.update(IMG_ANALYSIS_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(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_SWITCH_NAMES)
|
||||||
NODE_DISPLAY_NAME_MAPPINGS.update(INT_WIDGET_NAMES)
|
NODE_DISPLAY_NAME_MAPPINGS.update(INT_WIDGET_NAMES)
|
||||||
NODE_DISPLAY_NAME_MAPPINGS.update(TYPE_NAMES)
|
NODE_DISPLAY_NAME_MAPPINGS.update(PROMPT_SELECTOR_NAMES)
|
||||||
NODE_DISPLAY_NAME_MAPPINGS.update(EMBEDDER_NAMES)
|
NODE_DISPLAY_NAME_MAPPINGS.update(RANDOMIZER_NAMES)
|
||||||
NODE_DISPLAY_NAME_MAPPINGS.update(UTILS_NAMES)
|
NODE_DISPLAY_NAME_MAPPINGS.update(TEXT_SWITCH_NAMES)
|
||||||
|
NODE_DISPLAY_NAME_MAPPINGS.update(TYPE_CONVERTER_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()
|
|
||||||
)
|
|
||||||
|
|
||||||
# Version info
|
# 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"Endless Sea of Stars Custom Nodes v{__version__} loaded successfully! 🌠")
|
print("Nodes available under 'Endless 🌊✨' menu")
|
||||||
print(f"{visible_node_count} nodes available under the 'Endless 🌊✨' menu")
|
|
||||||
print("🔧 If things are missing, try: pip install -r requirements.txt")
|
|
||||||
print("===============================\n")
|
|
||||||
|
|||||||
Reference in New Issue
Block a user