Files
2025-06-11 18:21:42 +08:00

110 lines
3.2 KiB
Python

"""
ComfyUI DCI Extension
A comprehensive ComfyUI extension for creating, previewing, and analyzing
DCI (DSG Combined Icons) format files.
This extension provides complete DCI specification support including:
- Multi-state icons (normal, hover, pressed, disabled)
- Multi-tone support (light and dark)
- Multiple scale factors and advanced metadata analysis
- Binary data handling and file operations
"""
# Try relative imports first, fall back to absolute imports
try:
from .py.nodes import (
DCIPreviewNode,
DCIImage,
DCISampleImage,
DCIImagePreview,
DCIFileNode,
BinaryFileLoader,
BinaryFileSaver,
Base64Decoder,
Base64Encoder,
DCIFileSaver,
DCIAnalysis,
DirectoryLoader,
DebPackager,
DebLoader
)
from .py.utils.i18n import t
except ImportError:
# Fallback for when module is loaded directly
import sys
import os
current_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, current_dir)
from py.nodes import (
DCIPreviewNode,
DCIImage,
DCISampleImage,
DCIImagePreview,
DCIFileNode,
BinaryFileLoader,
BinaryFileSaver,
Base64Decoder,
Base64Encoder,
DCIFileSaver,
DCIAnalysis,
DirectoryLoader,
DebPackager,
DebLoader
)
from py.utils.i18n import t
# ComfyUI Node Registration
# Using DCI prefix to ensure unique node names and avoid conflicts
NODE_CLASS_MAPPINGS = {
"DCI_PreviewNode": DCIPreviewNode,
"DCI_Image": DCIImage,
"DCI_SampleImage": DCISampleImage,
"DCI_ImagePreview": DCIImagePreview,
"DCI_FileNode": DCIFileNode,
"DCI_BinaryFileLoader": BinaryFileLoader,
"DCI_BinaryFileSaver": BinaryFileSaver,
"DCI_Base64Decoder": Base64Decoder,
"DCI_Base64Encoder": Base64Encoder,
"DCI_FileSaver": DCIFileSaver,
"DCI_Analysis": DCIAnalysis,
"DCI_DirectoryLoader": DirectoryLoader,
"DCI_DebPackager": DebPackager,
"DCI_DebLoader": DebLoader,
}
# Display names for ComfyUI interface
NODE_DISPLAY_NAME_MAPPINGS = {
"DCI_PreviewNode": t("DCI Preview"),
"DCI_Image": t("DCI Image"),
"DCI_SampleImage": t("DCI Sample Image"),
"DCI_ImagePreview": t("DCI Image Preview"),
"DCI_FileNode": t("DCI File"),
"DCI_BinaryFileLoader": t("Binary File Loader"),
"DCI_BinaryFileSaver": t("Binary File Saver"),
"DCI_Base64Decoder": t("Base64 Decoder"),
"DCI_Base64Encoder": t("Base64 Encoder"),
"DCI_FileSaver": t("DCI File Saver"),
"DCI_Analysis": t("DCI Analysis"),
"DCI_DirectoryLoader": t("Directory Loader"),
"DCI_DebPackager": t("Deb Packager"),
"DCI_DebLoader": t("Deb Loader"),
}
# Extension metadata
__version__ = "1.0.0"
__author__ = "ComfyUI DCI Team"
__description__ = "DCI (DSG Combined Icons) format support for ComfyUI"
# Custom data types for ComfyUI
# These types are used for passing structured data between nodes
# ComfyUI will treat them as opaque data that can be passed between nodes
# but won't be displayed in the UI
CUSTOM_DATA_TYPES = {
"DCI_IMAGE_DATA": "DCI_IMAGE_DATA",
"BINARY_DATA": "BINARY_DATA"
}
# Export for ComfyUI
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS']