from __future__ import annotations from PIL import Image import numpy as np from server import PromptServer, BinaryEventTypes class SendImageOnWebSocket: @classmethod def INPUT_TYPES(s): return {"required": {"event": ("STRING", {"multiline": False}), "images": ("IMAGE",)}} RETURN_TYPES = () FUNCTION = "send_images" OUTPUT_NODE = True CATEGORY = "tensorops" def send_images(self, event, images): for tensor in images: array = 255.0 * tensor.cpu().numpy() image = Image.fromarray(np.clip(array, 0, 255).astype(np.uint8)) server = PromptServer.instance server.send_sync( BinaryEventTypes.UNENCODED_PREVIEW_IMAGE, ["PNG", image, event], server.client_id, ) return () class SendJsonOnWebSocket: @classmethod def INPUT_TYPES(s): return {"required": {"event": ("STRING", {"multiline": False}), "json": ("JSON",)}} RETURN_TYPES = () FUNCTION = "send_json" OUTPUT_NODE = True CATEGORY = "tensorops" def send_json(self, event, json): server = PromptServer.instance server.send_sync( event, json, server.client_id, ) return ()