-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path__init__.py
137 lines (112 loc) · 4.16 KB
/
__init__.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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
import torch
from .sd import folder_paths, load_diffusion_model, load_clip
from bizyairenhancer import fp8_quantize_ops
from .sd import CLIPType
class BizyAirFluxLoaderOnline:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"unet_name": (folder_paths.get_filename_list("diffusion_models"),),
"weight_dtype": (
[
"default",
],
),
}
}
RETURN_TYPES = ("MODEL",)
FUNCTION = "load_unet"
CATEGORY = "advanced/loaders"
def load_unet(self, unet_name, weight_dtype):
model_options = {}
model_options["custom_operations"] = fp8_quantize_ops
unet_path = folder_paths.get_full_path("diffusion_models", unet_name)
model = load_diffusion_model(unet_path, model_options=model_options)
return (model,)
class BizyAirFluxLoaderOffline:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"unet_name": (folder_paths.get_filename_list("diffusion_models"),),
"weight_dtype": (
[
"fp8_e4m3fn",
],
),
}
}
RETURN_TYPES = ("MODEL",)
FUNCTION = "load_unet"
CATEGORY = "advanced/loaders"
def load_unet(self, unet_name, weight_dtype):
model_options = {}
unet_path = folder_paths.get_full_path("diffusion_models", unet_name)
model_options["custom_operations"] = fp8_quantize_ops
model = load_diffusion_model(
unet_path, model_options=model_options, is_online_quantize=False
)
return (model,)
class QuantizeDualCLIPLoaderOnline:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"clip_name1": (folder_paths.get_filename_list("clip"),),
"clip_name2": (folder_paths.get_filename_list("clip"),),
"type": (["flux"],),
}
}
RETURN_TYPES = ("CLIP",)
FUNCTION = "load_clip"
CATEGORY = "advanced/loaders"
def load_clip(self, clip_name1, clip_name2, type):
clip_path1 = folder_paths.get_full_path("clip", clip_name1)
clip_path2 = folder_paths.get_full_path("clip", clip_name2)
model_options = {}
model_options["is_online"] = True
clip = load_clip(
ckpt_paths=[clip_path1, clip_path2],
embedding_directory=folder_paths.get_folder_paths("embeddings"),
clip_type=CLIPType.FLUX,
model_options=model_options,
)
return (clip,)
class QuantizeDualCLIPLoaderOffline:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"clip_name1": (folder_paths.get_filename_list("clip"),),
"clip_name2": (folder_paths.get_filename_list("clip"),),
"type": (["flux"],),
}
}
RETURN_TYPES = ("CLIP",)
FUNCTION = "load_clip"
CATEGORY = "advanced/loaders"
def load_clip(self, clip_name1, clip_name2, type):
clip_path1 = folder_paths.get_full_path("clip", clip_name1)
clip_path2 = folder_paths.get_full_path("clip", clip_name2)
model_options = {}
model_options = {"is_online": False}
clip = load_clip(
ckpt_paths=[clip_path1, clip_path2],
embedding_directory=folder_paths.get_folder_paths("embeddings"),
clip_type=CLIPType.FLUX,
model_options=model_options,
)
return (clip,)
NODE_CLASS_MAPPINGS = {
"BizyAirFluxLoaderOffLine": BizyAirFluxLoaderOffline,
"BizyAirFluxLoaderOnline": BizyAirFluxLoaderOnline,
"QuantizeDualCLIPLoaderOnline": QuantizeDualCLIPLoaderOnline,
"QuantizeDualCLIPLoaderOffline": QuantizeDualCLIPLoaderOffline,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"BizyAirFluxLoaderOffLine": "BizyAir Flux Loader - Quantize Offline",
"BizyAirFluxLoaderOnline": "BizyAir Flux Loader - Quantize Online",
"QuantizeDualCLIPLoaderOnline": "BizyAir Flux CLIP Loader - Quantize Online",
"QuantizeDualCLIPLoaderOffline": "BizyAir Flux CLIP Loader - Quantize Offline",
}