nodes_controlnet.py 1.18 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

UNION_CONTROLNET_TYPES = {"auto": -1,
                          "openpose": 0,
                          "depth": 1,
                          "hed/pidi/scribble/ted": 2,
                          "canny/lineart/anime_lineart/mlsd": 3,
                          "normal": 4,
                          "segment": 5,
                          "tile": 6,
                          "repaint": 7,
                        }

class SetUnionControlNetType:
    @classmethod
    def INPUT_TYPES(s):
        return {"required": {"control_net": ("CONTROL_NET", ),
                             "type": (list(UNION_CONTROLNET_TYPES.keys()),)
                             }}

20
    CATEGORY = "conditioning/controlnet"
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    RETURN_TYPES = ("CONTROL_NET",)

    FUNCTION = "set_controlnet_type"

    def set_controlnet_type(self, control_net, type):
        control_net = control_net.copy()
        type_number = UNION_CONTROLNET_TYPES[type]
        if type_number >= 0:
            control_net.set_extra_arg("control_type", [type_number])
        else:
            control_net.set_extra_arg("control_type", [])

        return (control_net,)

NODE_CLASS_MAPPINGS = {
    "SetUnionControlNetType": SetUnionControlNetType,
}