bizyengine 1.2.36__py3-none-any.whl → 1.2.38__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,6 +17,7 @@ from .nodes_janus_pro import *
17
17
  from .nodes_kolors_mz import *
18
18
  from .nodes_model_advanced import *
19
19
  from .nodes_nunchaku import *
20
+ from .nodes_reactor import *
20
21
  from .nodes_sam2 import *
21
22
  from .nodes_sd3 import *
22
23
  from .nodes_segment_anything import *
@@ -0,0 +1,246 @@
1
+ from bizyengine.core import BizyAirBaseNode, pop_api_key_and_prompt_id
2
+
3
+ _FACERESTORE_MODELS = [
4
+ "none",
5
+ "codeformer-v0.1.0.pth",
6
+ # "GFPGANv1.3.onnx",
7
+ # "GFPGANv1.3.pth",
8
+ "GFPGANv1.4.onnx",
9
+ # "GFPGANv1.4.pth",
10
+ # "GPEN-BFR-512.onnx",
11
+ # "GPEN-BFR-1024.onnx",
12
+ "GPEN-BFR-2048.onnx",
13
+ "RestoreFormer_PP.onnx",
14
+ ]
15
+
16
+
17
+ class reactor(BizyAirBaseNode):
18
+ @classmethod
19
+ def INPUT_TYPES(s):
20
+ return {
21
+ "required": {
22
+ "enabled": (
23
+ "BOOLEAN",
24
+ {"default": True, "label_off": "OFF", "label_on": "ON"},
25
+ ),
26
+ "input_image": ("IMAGE",),
27
+ "swap_model": (["inswapper_128.onnx"],),
28
+ "facedetection": (
29
+ [
30
+ "retinaface_resnet50",
31
+ "retinaface_mobile0.25",
32
+ "YOLOv5l",
33
+ "YOLOv5n",
34
+ ],
35
+ ),
36
+ "face_restore_model": (_FACERESTORE_MODELS,),
37
+ "face_restore_visibility": (
38
+ "FLOAT",
39
+ {"default": 1, "min": 0.1, "max": 1, "step": 0.05},
40
+ ),
41
+ "codeformer_weight": (
42
+ "FLOAT",
43
+ {"default": 0.5, "min": 0.0, "max": 1, "step": 0.05},
44
+ ),
45
+ "detect_gender_input": (["no", "female", "male"], {"default": "no"}),
46
+ "detect_gender_source": (["no", "female", "male"], {"default": "no"}),
47
+ "input_faces_index": ("STRING", {"default": "0"}),
48
+ "source_faces_index": ("STRING", {"default": "0"}),
49
+ "console_log_level": ([0, 1, 2], {"default": 1}),
50
+ },
51
+ "optional": {
52
+ "source_image": ("IMAGE",),
53
+ # "face_model": ("FACE_MODEL",),
54
+ "face_boost": ("FACE_BOOST",),
55
+ },
56
+ "hidden": {"faces_order": "FACES_ORDER"},
57
+ }
58
+
59
+ RETURN_TYPES = (
60
+ "IMAGE",
61
+ # "FACE_MODEL",
62
+ "BIZYAIR_PLACEHOLDER",
63
+ "IMAGE",
64
+ )
65
+ RETURN_NAMES = (
66
+ "SWAPPED_IMAGE",
67
+ # "FACE_MODEL",
68
+ "BIZYAIR_PLACEHOLDER",
69
+ "ORIGINAL_IMAGE",
70
+ )
71
+ CATEGORY = "🌌 ReActor"
72
+ CLASS_TYPE_NAME = "ReActorFaceSwap"
73
+ NODE_DISPLAY_NAME = "ReActor 🌌 Fast Face Swap"
74
+ FUNCTION = "execute"
75
+
76
+ def execute(self, **kwargs):
77
+ extra_data = pop_api_key_and_prompt_id(kwargs)
78
+ class_type = self._determine_class_type()
79
+ node_ios = self._process_non_send_request_types(class_type, kwargs)
80
+ return self._process_all_send_request_types(node_ios, **extra_data)
81
+
82
+
83
+ class ReActorPlusOpt(BizyAirBaseNode):
84
+ @classmethod
85
+ def INPUT_TYPES(s):
86
+ return {
87
+ "required": {
88
+ "enabled": (
89
+ "BOOLEAN",
90
+ {"default": True, "label_off": "OFF", "label_on": "ON"},
91
+ ),
92
+ "input_image": ("IMAGE",),
93
+ "swap_model": (["inswapper_128.onnx"],),
94
+ "facedetection": (
95
+ [
96
+ "retinaface_resnet50",
97
+ "retinaface_mobile0.25",
98
+ "YOLOv5l",
99
+ "YOLOv5n",
100
+ ],
101
+ ),
102
+ "face_restore_model": (_FACERESTORE_MODELS,),
103
+ "face_restore_visibility": (
104
+ "FLOAT",
105
+ {"default": 1, "min": 0.1, "max": 1, "step": 0.05},
106
+ ),
107
+ "codeformer_weight": (
108
+ "FLOAT",
109
+ {"default": 0.5, "min": 0.0, "max": 1, "step": 0.05},
110
+ ),
111
+ },
112
+ "optional": {
113
+ "source_image": ("IMAGE",),
114
+ # "face_model": ("FACE_MODEL",),
115
+ "options": ("OPTIONS",),
116
+ "face_boost": ("FACE_BOOST",),
117
+ },
118
+ }
119
+
120
+ RETURN_TYPES = (
121
+ "IMAGE",
122
+ # "FACE_MODEL",
123
+ "BIZYAIR_PLACEHOLDER",
124
+ "IMAGE",
125
+ )
126
+ RETURN_NAMES = (
127
+ "SWAPPED_IMAGE",
128
+ # "FACE_MODEL",
129
+ "BIZYAIR_PLACEHOLDER",
130
+ "ORIGINAL_IMAGE",
131
+ )
132
+ CATEGORY = "🌌 ReActor"
133
+ NODE_DISPLAY_NAME = "ReActor 🌌 Fast Face Swap [OPTIONS]"
134
+ CLASS_TYPE_NAME = "ReActorFaceSwapOpt"
135
+ FUNCTION = "execute"
136
+
137
+ def execute(self, **kwargs):
138
+ extra_data = pop_api_key_and_prompt_id(kwargs)
139
+ class_type = self._determine_class_type()
140
+ node_ios = self._process_non_send_request_types(class_type, kwargs)
141
+ return self._process_all_send_request_types(node_ios, **extra_data)
142
+
143
+
144
+ class RestoreFace(BizyAirBaseNode):
145
+ @classmethod
146
+ def INPUT_TYPES(s):
147
+ return {
148
+ "required": {
149
+ "image": ("IMAGE",),
150
+ "facedetection": (
151
+ [
152
+ "retinaface_resnet50",
153
+ "retinaface_mobile0.25",
154
+ "YOLOv5l",
155
+ "YOLOv5n",
156
+ ],
157
+ ),
158
+ "model": (_FACERESTORE_MODELS,),
159
+ "visibility": (
160
+ "FLOAT",
161
+ {"default": 1, "min": 0.0, "max": 1, "step": 0.05},
162
+ ),
163
+ "codeformer_weight": (
164
+ "FLOAT",
165
+ {"default": 0.5, "min": 0.0, "max": 1, "step": 0.05},
166
+ ),
167
+ },
168
+ }
169
+
170
+ RETURN_TYPES = ("IMAGE",)
171
+ CATEGORY = "🌌 ReActor"
172
+ CLASS_TYPE_NAME = "ReActorRestoreFace"
173
+ NODE_DISPLAY_NAME = "Restore Face 🌌 ReActor"
174
+
175
+
176
+ class ReActorOptions(BizyAirBaseNode):
177
+ @classmethod
178
+ def INPUT_TYPES(s):
179
+ return {
180
+ "required": {
181
+ "input_faces_order": (
182
+ [
183
+ "left-right",
184
+ "right-left",
185
+ "top-bottom",
186
+ "bottom-top",
187
+ "small-large",
188
+ "large-small",
189
+ ],
190
+ {"default": "large-small"},
191
+ ),
192
+ "input_faces_index": ("STRING", {"default": "0"}),
193
+ "detect_gender_input": (["no", "female", "male"], {"default": "no"}),
194
+ "source_faces_order": (
195
+ [
196
+ "left-right",
197
+ "right-left",
198
+ "top-bottom",
199
+ "bottom-top",
200
+ "small-large",
201
+ "large-small",
202
+ ],
203
+ {"default": "large-small"},
204
+ ),
205
+ "source_faces_index": ("STRING", {"default": "0"}),
206
+ "detect_gender_source": (["no", "female", "male"], {"default": "no"}),
207
+ "console_log_level": ([0, 1, 2], {"default": 1}),
208
+ }
209
+ }
210
+
211
+ RETURN_TYPES = ("OPTIONS",)
212
+ CATEGORY = "🌌 ReActor"
213
+ CLASS_TYPE_NAME = "ReActorOptions"
214
+ NODE_DISPLAY_NAME = "ReActor 🌌 Options"
215
+
216
+
217
+ class ReActorFaceBoost(BizyAirBaseNode):
218
+ @classmethod
219
+ def INPUT_TYPES(s):
220
+ return {
221
+ "required": {
222
+ "enabled": (
223
+ "BOOLEAN",
224
+ {"default": True, "label_off": "OFF", "label_on": "ON"},
225
+ ),
226
+ "boost_model": (_FACERESTORE_MODELS,),
227
+ "interpolation": (
228
+ ["Nearest", "Bilinear", "Bicubic", "Lanczos"],
229
+ {"default": "Bicubic"},
230
+ ),
231
+ "visibility": (
232
+ "FLOAT",
233
+ {"default": 1, "min": 0.1, "max": 1, "step": 0.05},
234
+ ),
235
+ "codeformer_weight": (
236
+ "FLOAT",
237
+ {"default": 0.5, "min": 0.0, "max": 1, "step": 0.05},
238
+ ),
239
+ "restore_with_main_after": ("BOOLEAN", {"default": False}),
240
+ }
241
+ }
242
+
243
+ RETURN_TYPES = ("FACE_BOOST",)
244
+ CATEGORY = "🌌 ReActor"
245
+ CLASS_TYPE_NAME = "ReActorFaceBoost"
246
+ NODE_DISPLAY_NAME = "ReActor 🌌 Face Booster"
@@ -426,3 +426,13 @@ model_rules:
426
426
  - class_type: "LayerMask: SAM2Ultra"
427
427
  - class_type: "LayerMask: SAM2UltraV2"
428
428
  - class_type: "LayerMask: SAM2VideoUltra"
429
+
430
+ - mode_type: reactor
431
+ base_model: ReActor
432
+ describe: ReActor
433
+ score: 1
434
+ route: /supernode/bizyair-reactor
435
+ nodes:
436
+ - class_type: "ReActorFaceSwap"
437
+ - class_type: "ReActorFaceSwapOpt"
438
+ - class_type: "ReActorRestoreFace"
@@ -195,11 +195,15 @@ def decode_data(input, old_version=False):
195
195
  @decode_data.register(int)
196
196
  @decode_data.register(float)
197
197
  @decode_data.register(bool)
198
- @decode_data.register(type(None))
199
198
  def _(input, **kwargs):
200
199
  return input
201
200
 
202
201
 
202
+ @decode_data.register(type(None))
203
+ def _(input, **kwargs):
204
+ return [None]
205
+
206
+
203
207
  @decode_data.register(dict)
204
208
  def _(input, **kwargs):
205
209
  return {k: decode_data(v, **kwargs) for k, v in input.items()}
bizyengine/version.txt CHANGED
@@ -1 +1 @@
1
- 1.2.36
1
+ 1.2.38
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bizyengine
3
- Version: 1.2.36
3
+ Version: 1.2.38
4
4
  Summary: [a/BizyAir](https://github.com/siliconflow/BizyAir) Comfy Nodes that can run in any environment.
5
5
  Author-email: SiliconFlow <yaochi@siliconflow.cn>
6
6
  Project-URL: Repository, https://github.com/siliconflow/BizyAir
@@ -1,5 +1,5 @@
1
1
  bizyengine/__init__.py,sha256=GP9V-JM07fz7uv_qTB43QEA2rKdrVJxi5I7LRnn_3ZQ,914
2
- bizyengine/version.txt,sha256=rEaIA_r7VYxwNTJ-9S1wV6daIJ7VN3Xm3SSm6MQ5kms,7
2
+ bizyengine/version.txt,sha256=hX7Z4r5S6GwxvrvN_CprJAnYh20TMy3LxcCF9L-kRwQ,7
3
3
  bizyengine/bizy_server/__init__.py,sha256=SP9oSblnPo4KQyh7yOGD26YCskFAcQHAZy04nQBNRIw,200
4
4
  bizyengine/bizy_server/api_client.py,sha256=t6cwob7hs993oy5WdFcjKtIzfi3S_eUhODdDVv_Hedo,43822
5
5
  bizyengine/bizy_server/errno.py,sha256=1UiFmE2U7r7hCHgsw4-p_YL0VCmTJc9NyYDEbhkanaY,16336
@@ -10,7 +10,7 @@ bizyengine/bizy_server/resp.py,sha256=iOFT5Ud7VJBP2uqkojJIgc3y2ifMjjEXoj0ewneL9l
10
10
  bizyengine/bizy_server/server.py,sha256=M9P0oungSiUFGRxev3jJxhUTvjm8ixREQ-DCoyzU0gA,58617
11
11
  bizyengine/bizy_server/stream_response.py,sha256=H2XHqlVRtQMhgdztAuG7l8-iV_Pm42u2x6WJ0gNVIW0,9654
12
12
  bizyengine/bizy_server/utils.py,sha256=z8Dd2GKvaBNt7nSnphVwPeyGwvHYDzIl-EOazA2LNWA,3843
13
- bizyengine/bizyair_extras/__init__.py,sha256=NKC9MOSeRJW1FrQMf4KXUb8ogwrSGhVyCPA4rSULd-I,1035
13
+ bizyengine/bizyair_extras/__init__.py,sha256=zzqOeOnd6uyyopeNFPa7asfG-sI4r3SSrKJkHGF4iGI,1064
14
14
  bizyengine/bizyair_extras/nodes_advanced_refluxcontrol.py,sha256=cecfjrtnjJAty9aNkhz8BlmHUC1NImkFlUDiA0COEa4,2242
15
15
  bizyengine/bizyair_extras/nodes_cogview4.py,sha256=Ni0TDOycczyDhYPvSR68TxGV_wE2uhaxd8MIj-J4-3o,2031
16
16
  bizyengine/bizyair_extras/nodes_comfyui_detail_daemon.py,sha256=i71it24tiGvZ3h-XFWISr4CpZszUtPuz3UrZARYluLk,6169
@@ -28,6 +28,7 @@ bizyengine/bizyair_extras/nodes_ip2p.py,sha256=GSEFJvrs4f2tv0xwYkWqc8uhsXrzAJVPv
28
28
  bizyengine/bizyair_extras/nodes_janus_pro.py,sha256=hAdMsS09RkRHZn9cNwpmyOaH7ODOMjVt9SbBsD-UvbM,2665
29
29
  bizyengine/bizyair_extras/nodes_model_advanced.py,sha256=RR2pzvlNW7NEcgtRcQSLZ8Vy7_ygA0NOZDjd7ZfzX5k,1756
30
30
  bizyengine/bizyair_extras/nodes_nunchaku.py,sha256=E0E8f9LmEzfn4a_LdWIUBatV9n-8RFLSYlPb90SKKxs,8222
31
+ bizyengine/bizyair_extras/nodes_reactor.py,sha256=hbm0HGQWAr_qMcWjp0nMZMtF4mUjTfPw8yK1rq1miAI,8157
31
32
  bizyengine/bizyair_extras/nodes_sam2.py,sha256=JTrB7ELwhw6_uOjykRWK9KyOqpYoOtJiGKMxFUbHnNQ,10554
32
33
  bizyengine/bizyair_extras/nodes_sd3.py,sha256=lZCxj0IFmuxk1fZTDcRKgVV5QWHjkUdpR4w9-DZbMf4,1727
33
34
  bizyengine/bizyair_extras/nodes_segment_anything.py,sha256=x1ei2UggHnB8T6aUtK_ZcUehMALEyLUnDoD5SNJCbFU,7249
@@ -46,7 +47,7 @@ bizyengine/bizyair_extras/nodes_kolors_mz/__init__.py,sha256=HsCCCphW8q0SrWEiFlZ
46
47
  bizyengine/bizyair_extras/oauth_callback/main.py,sha256=KQOZWor3kyNx8xvUNHYNMoHfCF9g_ht13_iPk4K_5YM,3633
47
48
  bizyengine/core/__init__.py,sha256=EV9ZtTwOHC0S_eNvCu-tltIydfxfMsH59LbgVX4e_1c,359
48
49
  bizyengine/core/data_types.py,sha256=2f7QqqZvhKmXw3kZV1AvXuPTda34b4wXQE9tyO8nUSM,1595
49
- bizyengine/core/image_utils.py,sha256=--DmQb3R9Ev21MfZG9rfgOGsU2zRywJ-hpiNNN0N8p8,8586
50
+ bizyengine/core/image_utils.py,sha256=8pJncmVPCUm-_S8Tu7gvESVmSDNp7Ok3M4RXNy_2rRA,8630
50
51
  bizyengine/core/nodes_base.py,sha256=h2f_FWTWj6lpdKjwHRuOmoRifqwkV59ovM2ZxPK4h9c,9019
51
52
  bizyengine/core/nodes_io.py,sha256=VhwRwYkGp0g3Mh0hx1OSwNZbV06NEV13w2aODSiAm5M,2832
52
53
  bizyengine/core/commands/__init__.py,sha256=82yRdMT23RTiZPkFW_G3fVa-fj3-TUAXnj6cnGA3xRA,22
@@ -63,7 +64,7 @@ bizyengine/core/common/env_var.py,sha256=1EAW3gOXY2bKouCqrGa583vTJRdDasQ1IsFTnzD
63
64
  bizyengine/core/common/utils.py,sha256=bm-XmSPy83AyjD0v5EfWp6jiO6_5p7rkZ_HQAuVmgmo,3086
64
65
  bizyengine/core/configs/conf.py,sha256=D_UWG9SSJnK5EhbrfNFryJQ8hUwwdvhOGlq1TielwpI,3830
65
66
  bizyengine/core/configs/models.json,sha256=NqYVmp-ICpr1vFgafWjJMu5dyuRt9ffVUJmov3_-xRY,2746
66
- bizyengine/core/configs/models.yaml,sha256=z51inNcqTWRJsaxyaD7_H11_H5ubc8KWOx5OIXuthdQ,10416
67
+ bizyengine/core/configs/models.yaml,sha256=0fNJo2VsAaEonhPpUdKesP1hiKkjMs-DrkuvmkBB8es,10668
67
68
  bizyengine/core/path_utils/__init__.py,sha256=JVpqNHgaKiEtTI8_r47af8GtWHxrtOockQ6Qpzp9_MQ,260
68
69
  bizyengine/core/path_utils/path_manager.py,sha256=tRVAcpsYvfWD-tK7khLvNCZayB0wpU9L0tRTH4ZESzM,10549
69
70
  bizyengine/core/path_utils/utils.py,sha256=kQfPQjGU27qF9iyzRxLSRg5cMsd-VixuCUldART7cgY,2394
@@ -78,7 +79,7 @@ bizyengine/misc/route_sam.py,sha256=-bMIR2QalfnszipGxSxvDAHGJa5gPSrjkYPb5baaRg4,
78
79
  bizyengine/misc/segment_anything.py,sha256=wNKYwlYPMszfwj23524geFZJjZaG4eye65SGaUnh77I,8941
79
80
  bizyengine/misc/supernode.py,sha256=STN9gaxfTSErH8OiHeZa47d8z-G9S0I7fXuJvHQOBFM,4532
80
81
  bizyengine/misc/utils.py,sha256=deQjBgLAkxIr-NaOMm77TcgBT3ExAp0MFm5ehUJ3CGs,6829
81
- bizyengine-1.2.36.dist-info/METADATA,sha256=JAtf6MYW_2xsw71PBQaznSm562Ib1LmP-1jURA0-LQ8,675
82
- bizyengine-1.2.36.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
83
- bizyengine-1.2.36.dist-info/top_level.txt,sha256=2zapzqxX-we5cRyJkGf9bd5JinRtXp3-_uDI-xCAnc0,11
84
- bizyengine-1.2.36.dist-info/RECORD,,
82
+ bizyengine-1.2.38.dist-info/METADATA,sha256=pMTJfTVSnAucVRYkvDob7EDJVQPm5cgxctPVmdGJv38,675
83
+ bizyengine-1.2.38.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
84
+ bizyengine-1.2.38.dist-info/top_level.txt,sha256=2zapzqxX-we5cRyJkGf9bd5JinRtXp3-_uDI-xCAnc0,11
85
+ bizyengine-1.2.38.dist-info/RECORD,,