98 lines
3.9 KiB
Python
98 lines
3.9 KiB
Python
"""
|
|
Isekai ComfyUI Custom Node
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
|
|
print("[Isekai] Loading __init__.py...")
|
|
|
|
# Add current directory to path for imports
|
|
current_dir = os.path.dirname(os.path.abspath(__file__))
|
|
if current_dir not in sys.path:
|
|
sys.path.insert(0, current_dir)
|
|
|
|
print(f"[Isekai] current_dir: {current_dir}")
|
|
|
|
# Import nodes module
|
|
# Note: We use a try-except to handle both package imports and direct imports
|
|
try:
|
|
print("[Isekai] Attempting relative import...")
|
|
from . import nodes
|
|
print("[Isekai] Relative import succeeded")
|
|
except ImportError as e:
|
|
print(f"[Isekai] Relative import failed: {e}")
|
|
print("[Isekai] Attempting absolute import...")
|
|
# Fallback for direct execution
|
|
import nodes
|
|
print("[Isekai] Absolute import succeeded")
|
|
|
|
print(f"[Isekai] nodes module loaded, __all__ has {len(nodes.__all__)} items")
|
|
|
|
# Build node mappings dynamically based on what successfully imported
|
|
NODE_CLASS_MAPPINGS = {}
|
|
NODE_DISPLAY_NAME_MAPPINGS = {}
|
|
|
|
# Define all possible nodes and their display names
|
|
# Organized by category: Dataset -> Image -> IO -> LLMs -> Upload
|
|
_NODE_DEFINITIONS = {
|
|
# Dataset nodes
|
|
"IsekaiConcatenateString": ("IsekaiConcatenateString", "Concatenate String"),
|
|
"IsekaiDynamicString": ("IsekaiDynamicString", "Dynamic String"),
|
|
"IsekaiRoundRobin": ("IsekaiRoundRobin", "Round Robin"),
|
|
"IsekaiTagSelector": ("IsekaiTagSelector", "Tag Selector"),
|
|
# Image/Blend nodes
|
|
"IsekaiBlend": ("IsekaiBlend", "Blend Images"),
|
|
"IsekaiColorAdjust": ("IsekaiColorAdjust", "Color Adjust"),
|
|
"IsekaiColorRamp": ("IsekaiColorRamp", "Color Ramp"),
|
|
"IsekaiLevels": ("IsekaiLevels", "Levels"),
|
|
"IsekaiSplitToning": ("IsekaiSplitToning", "Split Toning"),
|
|
# Image/Effects nodes
|
|
"IsekaiBlur": ("IsekaiBlur", "Blur"),
|
|
"IsekaiChromaticAberration": ("IsekaiChromaticAberration", "Chromatic Aberration"),
|
|
"IsekaiColorFilter": ("IsekaiColorFilter", "Color Filter"),
|
|
"IsekaiEdgeEnhance": ("IsekaiEdgeEnhance", "Edge Enhance"),
|
|
"IsekaiGlare": ("IsekaiGlare", "Glare"),
|
|
"IsekaiGrain": ("IsekaiGrain", "Grain"),
|
|
"IsekaiInvert": ("IsekaiInvert", "Invert"),
|
|
"IsekaiPixelate": ("IsekaiPixelate", "Pixelate"),
|
|
"IsekaiPosterize": ("IsekaiPosterize", "Posterize"),
|
|
"IsekaiSharpen": ("IsekaiSharpen", "Sharpen"),
|
|
"IsekaiVignette": ("IsekaiVignette", "Vignette"),
|
|
# Image/Transform nodes
|
|
"IsekaiCrop": ("IsekaiCrop", "Crop"),
|
|
"IsekaiFlip": ("IsekaiFlip", "Flip"),
|
|
"IsekaiRotate": ("IsekaiRotate", "Rotate"),
|
|
"IsekaiScale": ("IsekaiScale", "Scale"),
|
|
"IsekaiTransform": ("IsekaiTransform", "Transform"),
|
|
"IsekaiTranslate": ("IsekaiTranslate", "Translate"),
|
|
# IO nodes
|
|
"IsekaiCompressAndSave": ("IsekaiCompressAndSave", "Compress and Save"),
|
|
"IsekaiLoadText": ("IsekaiLoadText", "Load Text"),
|
|
"IsekaiRandomLineFromFile": ("IsekaiRandomLineFromFile", "Random Line From File"),
|
|
# LLMs nodes
|
|
"IsekaiClaude": ("IsekaiClaude", "Claude"),
|
|
"IsekaiGemini": ("IsekaiGemini", "Gemini"),
|
|
"IsekaiOllamaSummarizer": ("IsekaiOllamaSummarizer", "Ollama"),
|
|
"IsekaiOpenAI": ("IsekaiOpenAI", "OpenAI"),
|
|
"IsekaiVisualQA": ("IsekaiVisualQA", "Isekai Visual QA"),
|
|
# Upload nodes
|
|
"IsekaiS3Upload": ("IsekaiS3Upload", "Upload to S3"),
|
|
"IsekaiUpload": ("IsekaiUploadNode", "Upload to Isekai"),
|
|
}
|
|
|
|
# Register nodes that successfully imported
|
|
print(f"[Isekai] Registering {len(_NODE_DEFINITIONS)} node definitions...")
|
|
for node_key, (class_name, display_name) in _NODE_DEFINITIONS.items():
|
|
node_class = getattr(nodes, class_name, None)
|
|
if node_class is not None:
|
|
NODE_CLASS_MAPPINGS[node_key] = node_class
|
|
NODE_DISPLAY_NAME_MAPPINGS[node_key] = display_name
|
|
|
|
print(f"[Isekai] ✓ Registered {len(NODE_CLASS_MAPPINGS)} nodes successfully!")
|
|
if len(NODE_CLASS_MAPPINGS) == 0:
|
|
print(f"[Isekai] ✗✗✗ WARNING: No nodes were registered!")
|
|
print(f"[Isekai] nodes.__all__ = {nodes.__all__}")
|
|
|
|
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"]
|