import traceback NODE_CLASS_MAPPINGS = {} NODE_DISPLAY_NAME_MAPPINGS = {} def register_node(class_name, node_class, display_name): NODE_CLASS_MAPPINGS[class_name] = node_class NODE_DISPLAY_NAME_MAPPINGS[class_name] = display_name # 1. Wan Native Resize (이미지 -> WAN 해상도 리사이즈, 비율 유지 + 정렬) try: from .wan_resizer import WanNativeResize_Dolphin register_node("WanNativeResize_Dolphin", WanNativeResize_Dolphin, "🐬 Wan Native Resize (Dolphin)") except Exception: print(f"\n❌ [Dolphin] Wan Resize 로드 실패:\n{traceback.format_exc()}") # 2. Story Splitter V32 (텍스트 서사 -> 4샷 프롬프트 분배) try: from .promp_logic_v32_story import DolphinMultiActionPromptNode_V32 register_node("DolphinMultiActionPromptNode_V32", DolphinMultiActionPromptNode_V32, "🐬 Dolphin Story Splitter V32") except Exception: print(f"\n❌ [Dolphin] V32 Story Splitter 로드 실패:\n{traceback.format_exc()}") # 3. Architect V16 (클립별 LoRA -> TripleKSampler, model-only) try: from .arch_logic_v16 import DolphinTripleLoraMatrix as DolphinArchitectV16 register_node("DolphinArchitectV16", DolphinArchitectV16, "🐬 Dolphin Architect V16") except Exception: print(f"\n❌ [Dolphin] Architect V16 로드 실패:\n{traceback.format_exc()}") # 4. Cinematic Director (올인원: 스토리 분배 + 클립별 로라 + 트리거 주입) try: from .dolphin_director import DolphinCinematicDirector register_node("DolphinCinematicDirector", DolphinCinematicDirector, "🎬 Dolphin Cinematic Director (All-in-One)") except Exception: print(f"\n❌ [Dolphin] Cinematic Director 로드 실패:\n{traceback.format_exc()}") # 5. Vision Director (이미지 인식 + 필수동작 + 클립당 로라 4개) try: from .dolphin_vision_director import DolphinVisionDirector register_node("DolphinVisionDirector", DolphinVisionDirector, "🎬👁 Dolphin Vision Director (Image→4Clips)") except Exception: print(f"\n❌ [Dolphin] Vision Director 로드 실패:\n{traceback.format_exc()}") __all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS']