Files
Claude 184f330fdf Remove Categorizer from the node loader
Categorizer.py was deleted, but __init__.py still listed it, so every
ComfyUI startup printed an import traceback and "Could not load
Categorizer". Also drops it from docs/ai_agents.md and syncs __version__.

Version 2.10.3.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013Lm4YDXhwj49hAA1RKS58Q
2026-10-22 13:26:06 +00:00

90 lines
2.6 KiB
Python

import importlib
import traceback
# --- ALL NODE MODULES IN assets/nodes ---
# Add new node files here. Each module must define NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS.
NODE_MODULES = [
"Modelswitch",
"VAESwitch",
"CLIPSwitch",
"DynamicModelswitch",
"DynamicClipswitch",
"Textswitch",
"DynamicConditioning",
"DynamicLatentSwitch",
"DynamicVAESwitch",
"SystemPromp",
"DelayNode",
"DelayTextNode",
"SanitizeFilename",
"DynamicImageSwitch",
"EvaluaterNode",
"PeopleEvaluationNode",
"QWENPrompt",
"Creepy_directors_slate",
"CustomNodeManager",
"DynamicDelayText",
"CollectAndDistributeText",
"KeywordExtractor",
"SummaryWriter",
"FilterImages",
"LoadBatchImagesDir",
"RandomAudioSegment",
"AudioKeywordExtractor",
"IMGToIMGConditioning",
"LoadBatchFromDir",
"Conditional_lora_selector",
"WanPrompter",
"MasterKey",
"ArtAnalyst",
"SceneDirector",
"DynamicStartIndex",
"FallbackTextSwitch",
"latent",
"QwenAspectRatio",
"LoraTriggerLookup",
"LoraDBBuilder",
"MediaMigratorNode",
"EmptyFolderCleanerNode",
"FileSorterNode",
"ImageFormatConverter",
"CharacterVault",
"CharacterSelect",
"WorldWeaverPrompt",
"TriggerNextWorkflow",
"RandomScriptureNode",
"RandomGreekMythNode",
"GeminiAPI",
"GeminiAudioAnalyzer",
]
# --- CONSOLIDATE ALL NODE MAPPINGS ---
NODE_CLASS_MAPPINGS = {}
NODE_DISPLAY_NAME_MAPPINGS = {}
FAILED_MODULES = {}
for module_name in NODE_MODULES:
try:
module = importlib.import_module(f".assets.nodes.{module_name}", __name__)
except Exception as e:
# One node with a missing dependency (e.g. google-genai) shouldn't take down the whole pack.
FAILED_MODULES[module_name] = e
traceback.print_exc()
continue
NODE_CLASS_MAPPINGS.update(module.NODE_CLASS_MAPPINGS)
NODE_DISPLAY_NAME_MAPPINGS.update(module.NODE_DISPLAY_NAME_MAPPINGS)
__version__ = "2.10.3"
WEB_DIRECTORY = "./web"
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS', 'WEB_DIRECTORY']
print("-------------------------------------------------------------------")
print("Thank you for using Creepybits Custom Nodes! - Nova was here, probably looking for snacks.")
print(f"Loaded {len(NODE_CLASS_MAPPINGS)} nodes.")
for module_name, error in FAILED_MODULES.items():
print(f" ! Could not load {module_name}: {error}")
print("-------------------------------------------------------------------")