-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy pathnodes.py
116 lines (96 loc) · 4.57 KB
/
nodes.py
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
from .adv_encode import advanced_encode, advanced_encode_XL
from nodes import MAX_RESOLUTION
class AdvancedCLIPTextEncode:
@classmethod
def INPUT_TYPES(s):
return {"required": {
"text": ("STRING", {"multiline": True}),
"clip": ("CLIP", ),
"token_normalization": (["none", "mean", "length", "length+mean"],),
"weight_interpretation": (["comfy", "A1111", "compel", "comfy++" ,"down_weight"],),
#"affect_pooled": (["disable", "enable"],),
}}
RETURN_TYPES = ("CONDITIONING",)
FUNCTION = "encode"
CATEGORY = "conditioning/advanced"
def encode(self, clip, text, token_normalization, weight_interpretation, affect_pooled='disable'):
embeddings_final, pooled = advanced_encode(clip, text, token_normalization, weight_interpretation, w_max=1.0, apply_to_pooled=affect_pooled=='enable')
return ([[embeddings_final, {"pooled_output": pooled}]], )
class AddCLIPSDXLParams:
@classmethod
def INPUT_TYPES(s):
return {"required": {
"conditioning": ("CONDITIONING", ),
"width": ("INT", {"default": 1024.0, "min": 0, "max": MAX_RESOLUTION}),
"height": ("INT", {"default": 1024.0, "min": 0, "max": MAX_RESOLUTION}),
"crop_w": ("INT", {"default": 0, "min": 0, "max": MAX_RESOLUTION}),
"crop_h": ("INT", {"default": 0, "min": 0, "max": MAX_RESOLUTION}),
"target_width": ("INT", {"default": 1024.0, "min": 0, "max": MAX_RESOLUTION}),
"target_height": ("INT", {"default": 1024.0, "min": 0, "max": MAX_RESOLUTION}),
}}
RETURN_TYPES = ("CONDITIONING",)
FUNCTION = "encode"
CATEGORY = "conditioning/advanced"
def encode(self, conditioning, width, height, crop_w, crop_h, target_width, target_height):
c = []
for t in conditioning:
n = [t[0], t[1].copy()]
n[1]['width'] = width
n[1]['height'] = height
n[1]['crop_w'] = crop_w
n[1]['crop_h'] = crop_h
n[1]['target_width'] = target_width
n[1]['target_height'] = target_height
c.append(n)
return (c,)
class AddCLIPSDXLRParams:
@classmethod
def INPUT_TYPES(s):
return {"required": {
"conditioning": ("CONDITIONING", ),
"width": ("INT", {"default": 1024.0, "min": 0, "max": MAX_RESOLUTION}),
"height": ("INT", {"default": 1024.0, "min": 0, "max": MAX_RESOLUTION}),
"ascore": ("FLOAT", {"default": 6.0, "min": 0.0, "max": 1000.0, "step": 0.01}),
}}
RETURN_TYPES = ("CONDITIONING",)
FUNCTION = "encode"
CATEGORY = "conditioning/advanced"
def encode(self, conditioning, width, height, ascore):
c = []
for t in conditioning:
n = [t[0], t[1].copy()]
n[1]['width'] = width
n[1]['height'] = height
n[1]['aesthetic_score'] = ascore
c.append(n)
return (c,)
class AdvancedCLIPTextEncodeSDXL:
@classmethod
def INPUT_TYPES(s):
return {"required": {
"text_l": ("STRING", {"multiline": True}),
"text_g": ("STRING", {"multiline": True}),
"clip": ("CLIP", ),
"token_normalization": (["none", "mean", "length", "length+mean"],),
"weight_interpretation": (["comfy", "A1111", "compel", "comfy++", "down_weight"],),
#"affect_pooled": (["disable", "enable"],),
"balance": ("FLOAT", {"default": .5, "min": 0.0, "max": 1.0, "step": 0.01}),
}}
RETURN_TYPES = ("CONDITIONING",)
FUNCTION = "encode"
CATEGORY = "conditioning/advanced"
def encode(self, clip, text_l, text_g, token_normalization, weight_interpretation, balance, affect_pooled='disable'):
embeddings_final, pooled = advanced_encode_XL(clip, text_l, text_g, token_normalization, weight_interpretation, w_max=1.0, clip_balance=balance, apply_to_pooled=affect_pooled == "enable")
return ([[embeddings_final, {"pooled_output": pooled}]], )
NODE_CLASS_MAPPINGS = {
"BNK_CLIPTextEncodeAdvanced": AdvancedCLIPTextEncode,
"BNK_CLIPTextEncodeSDXLAdvanced": AdvancedCLIPTextEncodeSDXL,
"BNK_AddCLIPSDXLParams": AddCLIPSDXLParams,
"BNK_AddCLIPSDXLRParams": AddCLIPSDXLRParams,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"BNK_CLIPTextEncodeAdvanced" : "CLIP Text Encode (Advanced)",
"BNK_CLIPTextEncodeSDXLAdvanced": "CLIP Text Encode SDXL (Advanced)",
"BNK_AddCLIPSDXLParams" : "Add CLIP SDXL Params",
"BNK_AddCLIPSDXLRParams" : "Add CLIP SDXL Refiner Params",
}