Files
rsloschandClaude Sonnet 4.6 98d602234c add LoadImageSetFromOutputFolderSortedNode for output folder loading
Mirrors LoadImageSetFromFolderSortedNode but targets the ComfyUI output
directory instead of input. Includes a local _get_output_subfolders()
helper (no equivalent exists in folder_paths) and supports '.' for the
root output folder.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 22:54:11 -07:00

46 lines
2.7 KiB
Python

"""
ComfyUI NodeSweet
Custom nodes for batch processing, bbox detection, and audio-reactive transforms.
"""
import logging
logger = logging.getLogger(__name__)
NODE_CLASS_MAPPINGS = {}
NODE_DISPLAY_NAME_MAPPINGS = {}
def _register(class_name, display_name, import_fn):
try:
cls = import_fn()
NODE_CLASS_MAPPINGS[class_name] = cls
NODE_DISPLAY_NAME_MAPPINGS[class_name] = display_name
except Exception as e:
logger.warning(f"[NodeSweet] Failed to load {class_name}: {e}")
_register("BboxDetectorBatch", "BBox Detector (Batch)",
lambda: __import__(".".join([__name__, "nodes", "bbox_batch_detector"]), fromlist=["BboxDetectorBatch"]).BboxDetectorBatch)
_register("BboxDetectorBatchForEach", "BBox Detector (Batch ForEach)",
lambda: __import__(".".join([__name__, "nodes", "bbox_batch_detector_foreach"]), fromlist=["BboxDetectorBatchForEach"]).BboxDetectorBatchForEach)
_register("BboxDetectorBatchChunked", "BBox Detector (Batch Chunked)",
lambda: __import__(".".join([__name__, "nodes", "bbox_batch_detector_chunked"]), fromlist=["BboxDetectorBatchChunked"]).BboxDetectorBatchChunked)
_register("MultilineStringRepeater", "Multiline String Repeater",
lambda: __import__(".".join([__name__, "nodes", "multiline_string_repeater"]), fromlist=["MultilineStringRepeater"]).MultilineStringRepeater)
_register("AudioReactiveTransform", "Audio Reactive Transform",
lambda: __import__(".".join([__name__, "nodes", "audio_reactive_transform"]), fromlist=["AudioReactiveTransform"]).AudioReactiveTransform)
_register("AudioWeightsRemap", "Audio Weights Remap",
lambda: __import__(".".join([__name__, "nodes", "audio_reactive_transform"]), fromlist=["AudioWeightsRemap"]).AudioWeightsRemap)
_register("EaseCurve", "Ease Curve",
lambda: __import__(".".join([__name__, "nodes", "easing_curve"]), fromlist=["EaseCurve"]).EaseCurve)
_register("ApplyEasingToFloats", "Apply Easing to Floats",
lambda: __import__(".".join([__name__, "nodes", "easing_curve"]), fromlist=["ApplyEasingToFloats"]).ApplyEasingToFloats)
_register("LoadImageSetFromFolderSortedNode", "Load Image Dataset from Folder (Sorted)",
lambda: __import__(".".join([__name__, "nodes", "sort_batch_image_loader"]), fromlist=["LoadImageSetFromFolderSortedNode"]).LoadImageSetFromFolderSortedNode)
_register("LoadImageSetFromOutputFolderSortedNode", "Load Image Dataset from Output Folder (Sorted)",
lambda: __import__(".".join([__name__, "nodes", "sort_batch_image_loader_output"]), fromlist=["LoadImageSetFromOutputFolderSortedNode"]).LoadImageSetFromOutputFolderSortedNode)
WEB_DIRECTORY = "./js"
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS", "WEB_DIRECTORY"]
__version__ = "1.1.0"