File size: 1,341 Bytes
70ceb8b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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 ()