from __future__ import annotations from backend.node_registry import register_node from backend.data_types import COLORMAPS from backend.nodes.helpers import DEMO_DIR, _list_demo_files @register_node(display_name="Image (Demo)") class ImageDemo: @classmethod def INPUT_TYPES(cls): choices = _list_demo_files() or ["(no demo files found)"] return { "required": { "name": (choices,), "colormap": (list(COLORMAPS), {"hide_when_input_connected": "colormap_map"}), }, "optional": { "colormap_map": ("COLORMAP", {"label": "colormap"}), }, } RETURN_TYPES = ("DATA_FIELD",) RETURN_NAMES = ("field",) FUNCTION = "load" DESCRIPTION = "Load a bundled demo file so you can try the app without providing your own data." _broadcast_warning_fn = None _current_node_id = None def load(self, name: str = "", colormap: str = "viridis", colormap_map=None): from backend.nodes.image import Image loader = Image() demo_path = DEMO_DIR / name if not demo_path.exists(): raise FileNotFoundError(f"Demo file not found: {name}") return loader.load(filename=str(demo_path), colormap=colormap, colormap_map=colormap_map)