bizyengine 1.2.16__py3-none-any.whl → 1.2.18__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.
- bizyengine/bizy_server/server.py +91 -25
- bizyengine/bizy_server/utils.py +35 -0
- bizyengine/bizyair_extras/nodes_nunchaku.py +45 -0
- bizyengine/bizyair_extras/nodes_wan_i2v.py +16 -10
- bizyengine/core/common/env_var.py +3 -0
- bizyengine/version.txt +1 -1
- {bizyengine-1.2.16.dist-info → bizyengine-1.2.18.dist-info}/METADATA +2 -1
- {bizyengine-1.2.16.dist-info → bizyengine-1.2.18.dist-info}/RECORD +10 -10
- {bizyengine-1.2.16.dist-info → bizyengine-1.2.18.dist-info}/WHEEL +0 -0
- {bizyengine-1.2.16.dist-info → bizyengine-1.2.18.dist-info}/top_level.txt +0 -0
bizyengine/bizy_server/server.py
CHANGED
|
@@ -21,7 +21,14 @@ from .errno import ErrorNo, errnos
|
|
|
21
21
|
from .error_handler import ErrorHandler
|
|
22
22
|
from .profile import user_profile
|
|
23
23
|
from .resp import ErrResponse, OKResponse
|
|
24
|
-
from .utils import
|
|
24
|
+
from .utils import (
|
|
25
|
+
base_model_types,
|
|
26
|
+
check_str_param,
|
|
27
|
+
check_type,
|
|
28
|
+
decrypt_apikey,
|
|
29
|
+
is_string_valid,
|
|
30
|
+
types,
|
|
31
|
+
)
|
|
25
32
|
|
|
26
33
|
API_PREFIX = "bizyair"
|
|
27
34
|
COMMUNITY_API = f"{API_PREFIX}/community"
|
|
@@ -30,13 +37,16 @@ USER_API = f"{API_PREFIX}/user"
|
|
|
30
37
|
INVOICE_API = f"{API_PREFIX}/invoices"
|
|
31
38
|
MODEL_API = f"{API_PREFIX}/model"
|
|
32
39
|
|
|
40
|
+
_SERVER_MODE_HC_FLAG = True
|
|
41
|
+
|
|
33
42
|
logging.basicConfig(level=logging.DEBUG)
|
|
34
43
|
|
|
35
44
|
|
|
36
45
|
def _get_request_api_key(request_headers):
|
|
37
46
|
if BIZYAIR_SERVER_MODE:
|
|
38
|
-
|
|
39
|
-
|
|
47
|
+
encrypted_api_key = request_headers.get("Authorization")
|
|
48
|
+
return decrypt_apikey(encrypted_api_key)
|
|
49
|
+
return None, None
|
|
40
50
|
|
|
41
51
|
|
|
42
52
|
class BizyAirServer:
|
|
@@ -77,7 +87,9 @@ class BizyAirServer:
|
|
|
77
87
|
resp, err = None, None
|
|
78
88
|
|
|
79
89
|
# 调用API查询数据集
|
|
80
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
90
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
91
|
+
if err:
|
|
92
|
+
return ErrResponse(err)
|
|
81
93
|
resp, err = await self.api_client.query_datasets(
|
|
82
94
|
current,
|
|
83
95
|
page_size,
|
|
@@ -102,7 +114,9 @@ class BizyAirServer:
|
|
|
102
114
|
return ErrResponse(errnos.INVALID_DATASET_ID)
|
|
103
115
|
|
|
104
116
|
# 调用API获取数据集详情
|
|
105
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
117
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
118
|
+
if err:
|
|
119
|
+
return ErrResponse(err)
|
|
106
120
|
resp, err = await self.api_client.get_dataset_detail(
|
|
107
121
|
dataset_id, request_api_key=request_api_key
|
|
108
122
|
)
|
|
@@ -127,7 +141,9 @@ class BizyAirServer:
|
|
|
127
141
|
sort = json_data.get("sort", "")
|
|
128
142
|
resp, err = None, None
|
|
129
143
|
|
|
130
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
144
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
145
|
+
if err:
|
|
146
|
+
return ErrResponse(err)
|
|
131
147
|
if mode in ["my", "my_fork"]:
|
|
132
148
|
# 调用API查询模型
|
|
133
149
|
resp, err = await self.api_client.query_models(
|
|
@@ -178,7 +194,9 @@ class BizyAirServer:
|
|
|
178
194
|
source = request.rel_url.query.get("source", "")
|
|
179
195
|
|
|
180
196
|
# 调用API获取模型详情
|
|
181
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
197
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
198
|
+
if err:
|
|
199
|
+
return ErrResponse(err)
|
|
182
200
|
resp, err = await self.api_client.get_model_detail(
|
|
183
201
|
model_id, source, request_api_key=request_api_key
|
|
184
202
|
)
|
|
@@ -197,7 +215,9 @@ class BizyAirServer:
|
|
|
197
215
|
return ErrResponse(errnos.INVALID_MODEL_ID)
|
|
198
216
|
|
|
199
217
|
# 调用API删除模型
|
|
200
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
218
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
219
|
+
if err:
|
|
220
|
+
return ErrResponse(err)
|
|
201
221
|
resp, err = await self.api_client.delete_bizy_model(
|
|
202
222
|
model_id, request_api_key=request_api_key
|
|
203
223
|
)
|
|
@@ -261,7 +281,9 @@ class BizyAirServer:
|
|
|
261
281
|
return ErrResponse(errnos.INVALID_VERSION_FIELD(field))
|
|
262
282
|
|
|
263
283
|
# 调用API更新模型
|
|
264
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
284
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
285
|
+
if err:
|
|
286
|
+
return ErrResponse(err)
|
|
265
287
|
resp, err = await self.api_client.update_model(
|
|
266
288
|
model_id,
|
|
267
289
|
json_data["name"],
|
|
@@ -292,7 +314,9 @@ class BizyAirServer:
|
|
|
292
314
|
return ErrResponse(errnos.INVALID_MODEL_VERSION_ID)
|
|
293
315
|
|
|
294
316
|
# 调用API fork模型版本
|
|
295
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
317
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
318
|
+
if err:
|
|
319
|
+
return ErrResponse(err)
|
|
296
320
|
_, err = await self.api_client.fork_model_version(
|
|
297
321
|
version_id, request_api_key=request_api_key
|
|
298
322
|
)
|
|
@@ -316,7 +340,9 @@ class BizyAirServer:
|
|
|
316
340
|
return ErrResponse(errnos.INVALID_MODEL_VERSION_ID)
|
|
317
341
|
|
|
318
342
|
# 调用API fork模型版本
|
|
319
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
343
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
344
|
+
if err:
|
|
345
|
+
return ErrResponse(err)
|
|
320
346
|
_, err = await self.api_client.unfork_model_version(
|
|
321
347
|
version_id, request_api_key=request_api_key
|
|
322
348
|
)
|
|
@@ -342,7 +368,9 @@ class BizyAirServer:
|
|
|
342
368
|
return ErrResponse(errnos.INVALID_MODEL_VERSION_ID)
|
|
343
369
|
|
|
344
370
|
# 调用API like模型版本
|
|
345
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
371
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
372
|
+
if err:
|
|
373
|
+
return ErrResponse(err)
|
|
346
374
|
_, err = await self.api_client.toggle_user_like(
|
|
347
375
|
"model_version", version_id, request_api_key=request_api_key
|
|
348
376
|
)
|
|
@@ -371,7 +399,9 @@ class BizyAirServer:
|
|
|
371
399
|
return ErrResponse(errnos.INVALID_SIGN)
|
|
372
400
|
|
|
373
401
|
# 获取上传凭证
|
|
374
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
402
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
403
|
+
if err:
|
|
404
|
+
return ErrResponse(err)
|
|
375
405
|
url, err = await self.api_client.get_download_url(
|
|
376
406
|
sign=sign,
|
|
377
407
|
model_version_id=model_version_id,
|
|
@@ -391,7 +421,9 @@ class BizyAirServer:
|
|
|
391
421
|
|
|
392
422
|
@self.prompt_server.routes.get(f"/{API_PREFIX}/dict")
|
|
393
423
|
async def get_data_dict(request):
|
|
394
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
424
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
425
|
+
if err:
|
|
426
|
+
return ErrResponse(err)
|
|
395
427
|
data_dict, err = await self.api_client.get_data_dict(
|
|
396
428
|
request_api_key=request_api_key
|
|
397
429
|
)
|
|
@@ -439,7 +471,9 @@ class BizyAirServer:
|
|
|
439
471
|
version_names.add(version.get("version"))
|
|
440
472
|
|
|
441
473
|
# 调用API提交数据集
|
|
442
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
474
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
475
|
+
if err:
|
|
476
|
+
return ErrResponse(err)
|
|
443
477
|
resp, err = await self.api_client.commit_dataset(
|
|
444
478
|
payload=json_data, request_api_key=request_api_key
|
|
445
479
|
)
|
|
@@ -506,7 +540,9 @@ class BizyAirServer:
|
|
|
506
540
|
version_names.add(version.get("version"))
|
|
507
541
|
|
|
508
542
|
# 调用API更新数据集
|
|
509
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
543
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
544
|
+
if err:
|
|
545
|
+
return ErrResponse(err)
|
|
510
546
|
resp, err = await self.api_client.update_dataset(
|
|
511
547
|
dataset_id, json_data["name"], versions, request_api_key=request_api_key
|
|
512
548
|
)
|
|
@@ -532,7 +568,9 @@ class BizyAirServer:
|
|
|
532
568
|
return ErrResponse(errnos.INVALID_DATASET_ID)
|
|
533
569
|
|
|
534
570
|
# 调用API删除数据集
|
|
535
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
571
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
572
|
+
if err:
|
|
573
|
+
return ErrResponse(err)
|
|
536
574
|
resp, err = await self.api_client.delete_dataset(
|
|
537
575
|
dataset_id, request_api_key=request_api_key
|
|
538
576
|
)
|
|
@@ -559,7 +597,9 @@ class BizyAirServer:
|
|
|
559
597
|
return ErrResponse(errnos.INVALID_SHARE_TYPE)
|
|
560
598
|
|
|
561
599
|
# 调用API提交数据集
|
|
562
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
600
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
601
|
+
if err:
|
|
602
|
+
return ErrResponse(err)
|
|
563
603
|
resp, err = await self.api_client.create_share(
|
|
564
604
|
payload=json_data, request_api_key=request_api_key
|
|
565
605
|
)
|
|
@@ -578,7 +618,9 @@ class BizyAirServer:
|
|
|
578
618
|
return ErrResponse(errnos.INVALID_MODEL_VERSION_ID)
|
|
579
619
|
|
|
580
620
|
# 调用API获取数据集详情
|
|
581
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
621
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
622
|
+
if err:
|
|
623
|
+
return ErrResponse(err)
|
|
582
624
|
resp, err = await self.api_client.get_model_version_detail(
|
|
583
625
|
version_id, request_api_key=request_api_key
|
|
584
626
|
)
|
|
@@ -594,7 +636,9 @@ class BizyAirServer:
|
|
|
594
636
|
return ErrResponse(errnos.EMPTY_SHA256SUM)
|
|
595
637
|
|
|
596
638
|
type = request.rel_url.query.get("type")
|
|
597
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
639
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
640
|
+
if err:
|
|
641
|
+
return ErrResponse(err)
|
|
598
642
|
sign_data, err = await self.api_client.sign(
|
|
599
643
|
sha256sum, type, request_api_key=request_api_key
|
|
600
644
|
)
|
|
@@ -611,7 +655,9 @@ class BizyAirServer:
|
|
|
611
655
|
return ErrResponse(errnos.INVALID_FILENAME)
|
|
612
656
|
|
|
613
657
|
filename = urllib.parse.quote(filename)
|
|
614
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
658
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
659
|
+
if err:
|
|
660
|
+
return ErrResponse(err)
|
|
615
661
|
token, err = await self.api_client.get_upload_token(
|
|
616
662
|
filename=filename, request_api_key=request_api_key
|
|
617
663
|
)
|
|
@@ -639,7 +685,9 @@ class BizyAirServer:
|
|
|
639
685
|
if "md5_hash" in json_data:
|
|
640
686
|
md5_hash = json_data.get("md5_hash")
|
|
641
687
|
|
|
642
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
688
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
689
|
+
if err:
|
|
690
|
+
return ErrResponse(err)
|
|
643
691
|
commit_data, err = await self.api_client.commit_file(
|
|
644
692
|
signature=sha256sum,
|
|
645
693
|
object_key=object_key,
|
|
@@ -656,7 +704,9 @@ class BizyAirServer:
|
|
|
656
704
|
# 由于历史原因,前端请求body里有apikey所以是post
|
|
657
705
|
@self.prompt_server.routes.post(f"/{API_PREFIX}/get_silicon_cloud_llm_models")
|
|
658
706
|
async def get_silicon_cloud_llm_models_endpoint(request):
|
|
659
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
707
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
708
|
+
if err:
|
|
709
|
+
return ErrResponse(err)
|
|
660
710
|
all_models = await self.api_client.fetch_all_llm_models(
|
|
661
711
|
request_api_key=request_api_key
|
|
662
712
|
)
|
|
@@ -667,7 +717,9 @@ class BizyAirServer:
|
|
|
667
717
|
# 由于历史原因,前端请求body里有apikey所以是post
|
|
668
718
|
@self.prompt_server.routes.post(f"/{API_PREFIX}/get_silicon_cloud_vlm_models")
|
|
669
719
|
async def get_silicon_cloud_vlm_models_endpoint(request):
|
|
670
|
-
request_api_key = _get_request_api_key(request.headers)
|
|
720
|
+
request_api_key, err = _get_request_api_key(request.headers)
|
|
721
|
+
if err:
|
|
722
|
+
return ErrResponse(err)
|
|
671
723
|
all_models = await self.api_client.fetch_all_llm_models(
|
|
672
724
|
request_api_key=request_api_key
|
|
673
725
|
)
|
|
@@ -689,10 +741,24 @@ class BizyAirServer:
|
|
|
689
741
|
err.data = {"error": valid[1], "node_errors": valid[3]}
|
|
690
742
|
return ErrResponse(err)
|
|
691
743
|
|
|
692
|
-
#
|
|
744
|
+
# 服务器模式独占
|
|
693
745
|
if BIZYAIR_SERVER_MODE:
|
|
746
|
+
|
|
747
|
+
@self.prompt_server.routes.get(f"/{API_PREFIX}/are_you_alive")
|
|
748
|
+
async def are_you_alive(request):
|
|
749
|
+
if _SERVER_MODE_HC_FLAG:
|
|
750
|
+
return OKResponse(None)
|
|
751
|
+
return ErrResponse(errnos.INTERNAL_ERROR)
|
|
752
|
+
|
|
753
|
+
@self.prompt_server.routes.post(f"/{API_PREFIX}/are_you_alive")
|
|
754
|
+
async def toggle_are_you_alive(request):
|
|
755
|
+
global _SERVER_MODE_HC_FLAG
|
|
756
|
+
_SERVER_MODE_HC_FLAG = not _SERVER_MODE_HC_FLAG
|
|
757
|
+
return OKResponse(None)
|
|
758
|
+
|
|
694
759
|
return
|
|
695
760
|
|
|
761
|
+
# 服务器模式下以下路径不会注册
|
|
696
762
|
@self.prompt_server.routes.get(f"/{MODEL_HOST_API}" + "/{shareId}/models/files")
|
|
697
763
|
async def list_share_model_files(request):
|
|
698
764
|
shareId = request.match_info["shareId"]
|
bizyengine/bizy_server/utils.py
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
import base64
|
|
2
|
+
import json
|
|
1
3
|
import os
|
|
4
|
+
import time
|
|
2
5
|
from pathlib import Path
|
|
3
6
|
|
|
7
|
+
from Crypto.Cipher import PKCS1_v1_5
|
|
8
|
+
from Crypto.PublicKey import RSA
|
|
9
|
+
|
|
10
|
+
from bizyengine.core.common.env_var import (
|
|
11
|
+
BIZYAIR_SERVER_MODE,
|
|
12
|
+
BIZYAIR_SERVER_MODE_RSA_PRIVATE_KEY_PATH,
|
|
13
|
+
)
|
|
14
|
+
|
|
4
15
|
from .errno import errnos
|
|
5
16
|
from .resp import ErrResponse
|
|
6
17
|
|
|
@@ -46,6 +57,8 @@ ALLOW_UPLOADABLE_EXT_NAMES = [
|
|
|
46
57
|
|
|
47
58
|
current_path = os.path.abspath(os.path.dirname(__file__))
|
|
48
59
|
|
|
60
|
+
_RSA_CIPHER = None
|
|
61
|
+
|
|
49
62
|
|
|
50
63
|
def get_html_content(filename: str):
|
|
51
64
|
html_file_path = Path(current_path) / filename
|
|
@@ -103,3 +116,25 @@ def is_allow_ext_name(local_file_name):
|
|
|
103
116
|
return False
|
|
104
117
|
_, ext = os.path.splitext(local_file_name)
|
|
105
118
|
return ext.lower() in ALLOW_UPLOADABLE_EXT_NAMES
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def decrypt_apikey(apikey_ciphertext):
|
|
122
|
+
if not BIZYAIR_SERVER_MODE_RSA_PRIVATE_KEY_PATH:
|
|
123
|
+
return apikey_ciphertext, None
|
|
124
|
+
global _RSA_CIPHER
|
|
125
|
+
if not _RSA_CIPHER:
|
|
126
|
+
with open(BIZYAIR_SERVER_MODE_RSA_PRIVATE_KEY_PATH, "rb") as f:
|
|
127
|
+
private_key_data = f.read()
|
|
128
|
+
private_key = RSA.import_key(private_key_data)
|
|
129
|
+
_RSA_CIPHER = PKCS1_v1_5.new(private_key)
|
|
130
|
+
plaintext = _RSA_CIPHER.decrypt(base64.b64decode(apikey_ciphertext), None)
|
|
131
|
+
if not plaintext:
|
|
132
|
+
return None, errnos.INVALID_API_KEY
|
|
133
|
+
dict = json.loads(plaintext.decode("utf-8"))
|
|
134
|
+
if "timestamp" in dict and "expiresIn" in dict:
|
|
135
|
+
now = time.time_ns() // 1_000_000
|
|
136
|
+
if now - int(dict["timestamp"]) > int(dict["expiresIn"]):
|
|
137
|
+
return None, errnos.INVALID_API_KEY
|
|
138
|
+
else:
|
|
139
|
+
return None, errnos.INVALID_API_KEY
|
|
140
|
+
return dict["data"], None
|
|
@@ -187,3 +187,48 @@ class NunchakuFluxLoraLoader(BizyAirBaseNode):
|
|
|
187
187
|
outputs={"slot_index": 0},
|
|
188
188
|
)
|
|
189
189
|
return (new_model,)
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
class NunchakuPulidApply(BizyAirBaseNode):
|
|
193
|
+
@classmethod
|
|
194
|
+
def INPUT_TYPES(s):
|
|
195
|
+
return {
|
|
196
|
+
"required": {
|
|
197
|
+
"pulid": ("BIZYAIR_PULID", {"tooltip": "from Nunchaku Pulid Loader"}),
|
|
198
|
+
"image": ("IMAGE", {"tooltip": "The image to encode"}),
|
|
199
|
+
"model": (data_types.MODEL, {"tooltip": "The nunchaku model."}),
|
|
200
|
+
"ip_weight": (
|
|
201
|
+
"FLOAT",
|
|
202
|
+
{
|
|
203
|
+
"default": 1.0,
|
|
204
|
+
"min": 0.0,
|
|
205
|
+
"max": 2.0,
|
|
206
|
+
"step": 0.01,
|
|
207
|
+
"tooltip": "ip_weight",
|
|
208
|
+
},
|
|
209
|
+
),
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
RETURN_TYPES = (data_types.MODEL,)
|
|
214
|
+
# FUNCTION = "apply"
|
|
215
|
+
CATEGORY = "Nunchaku"
|
|
216
|
+
TITLE = "Nunchaku Pulid Apply"
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
class NunchakuPulidLoader(BizyAirBaseNode):
|
|
220
|
+
@classmethod
|
|
221
|
+
def INPUT_TYPES(s):
|
|
222
|
+
return {
|
|
223
|
+
"required": {
|
|
224
|
+
"model": (data_types.MODEL, {"tooltip": "The nunchaku model."}),
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
RETURN_TYPES = (
|
|
229
|
+
data_types.MODEL,
|
|
230
|
+
"BIZYAIR_PULID",
|
|
231
|
+
)
|
|
232
|
+
# FUNCTION = "load"
|
|
233
|
+
CATEGORY = "Nunchaku"
|
|
234
|
+
TITLE = "Nunchaku Pulid Loader"
|
|
@@ -17,7 +17,7 @@ except ModuleNotFoundError as e:
|
|
|
17
17
|
|
|
18
18
|
warnings.warn(ERROR_MSG)
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
from ..core import pop_api_key_and_prompt_id
|
|
21
21
|
from ..core.common import client
|
|
22
22
|
from ..core.common.env_var import BIZYAIR_DEBUG
|
|
23
23
|
from ..core.nodes_base import BizyAirBaseNode
|
|
@@ -155,23 +155,26 @@ class Wan_ImageToVideoPipeline(WanApiNodeBase, BizyAirBaseNode):
|
|
|
155
155
|
)
|
|
156
156
|
return base64_str
|
|
157
157
|
|
|
158
|
-
def _prepare_headers(self):
|
|
159
|
-
headers = client._headers()
|
|
158
|
+
def _prepare_headers(self, api_key):
|
|
159
|
+
headers = client._headers(api_key=api_key)
|
|
160
160
|
headers["X-Fn-Task-Mode"] = "non-blocking"
|
|
161
161
|
return headers
|
|
162
162
|
|
|
163
|
-
def _send_initial_request(self, endpoint, request_data):
|
|
164
|
-
headers = self._prepare_headers()
|
|
163
|
+
def _send_initial_request(self, endpoint, request_data, **kwargs):
|
|
164
|
+
headers = self._prepare_headers(api_key=kwargs["api_key"])
|
|
165
|
+
payload = {"prompt": request_data}
|
|
166
|
+
if "prompt_id" in kwargs:
|
|
167
|
+
payload["prompt_id"] = kwargs["prompt_id"]
|
|
165
168
|
response = client.send_request(
|
|
166
169
|
url=endpoint,
|
|
167
|
-
data=json.dumps(
|
|
170
|
+
data=json.dumps(payload).encode(),
|
|
168
171
|
headers=headers,
|
|
169
172
|
)
|
|
170
173
|
return response["query_url"]
|
|
171
174
|
|
|
172
|
-
def _poll_for_completion(self, query_url):
|
|
175
|
+
def _poll_for_completion(self, query_url, **kwargs):
|
|
173
176
|
start_time = time.time()
|
|
174
|
-
headers = self._prepare_headers()
|
|
177
|
+
headers = self._prepare_headers(api_key=kwargs["api_key"])
|
|
175
178
|
|
|
176
179
|
while time.time() - start_time < self.MAX_POLLING_TIME:
|
|
177
180
|
response = requests.get(query_url, headers=headers)
|
|
@@ -227,8 +230,11 @@ class Wan_ImageToVideoPipeline(WanApiNodeBase, BizyAirBaseNode):
|
|
|
227
230
|
else:
|
|
228
231
|
req_dict["teacache"] = 0
|
|
229
232
|
|
|
233
|
+
extra_data = pop_api_key_and_prompt_id(kwargs)
|
|
230
234
|
req_dict["image"] = self._encode_image(image_tensor=image)
|
|
231
235
|
endpoint = self.MODEL_ENDPOINTS[model_id]
|
|
232
|
-
query_url = self._send_initial_request(
|
|
233
|
-
|
|
236
|
+
query_url = self._send_initial_request(
|
|
237
|
+
endpoint, request_data=req_dict, **extra_data
|
|
238
|
+
)
|
|
239
|
+
result = self._poll_for_completion(query_url, **extra_data)
|
|
234
240
|
return self._process_result(result)
|
|
@@ -107,3 +107,6 @@ BIZYAIR_DEV_GET_TASK_RESULT_SERVER = env(
|
|
|
107
107
|
BIZYAIR_PRODUCTION_TEST = env("BIZYAIR_PRODUCTION_TEST", str, None)
|
|
108
108
|
# Server Mode
|
|
109
109
|
BIZYAIR_SERVER_MODE = env("BIZYAIR_SERVER_MODE", bool, False)
|
|
110
|
+
BIZYAIR_SERVER_MODE_RSA_PRIVATE_KEY_PATH = env(
|
|
111
|
+
"BIZYAIR_SERVER_MODE_RSA_PRIVATE_KEY_PATH", str, None
|
|
112
|
+
)
|
bizyengine/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.2.
|
|
1
|
+
1.2.18
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bizyengine
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.18
|
|
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
|
|
@@ -12,6 +12,7 @@ Description-Content-Type: text/markdown
|
|
|
12
12
|
Requires-Dist: requests
|
|
13
13
|
Requires-Dist: inputimeout
|
|
14
14
|
Requires-Dist: openai>=1.77.0
|
|
15
|
+
Requires-Dist: pycryptodome
|
|
15
16
|
|
|
16
17
|
## BizyEngine
|
|
17
18
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
bizyengine/__init__.py,sha256=GP9V-JM07fz7uv_qTB43QEA2rKdrVJxi5I7LRnn_3ZQ,914
|
|
2
|
-
bizyengine/version.txt,sha256=
|
|
2
|
+
bizyengine/version.txt,sha256=EEaCKUK2jb-KMegeJfWHxBHsQs-nsTSYst95cj6LJIo,7
|
|
3
3
|
bizyengine/bizy_server/__init__.py,sha256=SP9oSblnPo4KQyh7yOGD26YCskFAcQHAZy04nQBNRIw,200
|
|
4
4
|
bizyengine/bizy_server/api_client.py,sha256=qY1hQ11AeDf5m647qrYvn3YPBzP6Yaw8n2Z9hTk5Wtg,43624
|
|
5
5
|
bizyengine/bizy_server/errno.py,sha256=Q-U96XnZQCuPH_44Om8wnc2-Kh7qFqwLKtox27msU54,16095
|
|
@@ -7,9 +7,9 @@ bizyengine/bizy_server/error_handler.py,sha256=MGrfO1AEqbfEgMWPL8B6Ypew_zHiQAdYG
|
|
|
7
7
|
bizyengine/bizy_server/execution.py,sha256=ayaEf6eGJKQsVZV-1_UlGlvwwmlH7FEek31Uq-MbUjA,1644
|
|
8
8
|
bizyengine/bizy_server/profile.py,sha256=f4juAzJ73gCm0AhagYpt9WnG8HEI6xze_U96-omBLqU,3044
|
|
9
9
|
bizyengine/bizy_server/resp.py,sha256=iOFT5Ud7VJBP2uqkojJIgc3y2ifMjjEXoj0ewneL9lc,710
|
|
10
|
-
bizyengine/bizy_server/server.py,sha256=
|
|
10
|
+
bizyengine/bizy_server/server.py,sha256=frRY_QObN9Hpz-Zt2TvfoI6yQShL1v1WB-BqvzxjnT4,53703
|
|
11
11
|
bizyengine/bizy_server/stream_response.py,sha256=H2XHqlVRtQMhgdztAuG7l8-iV_Pm42u2x6WJ0gNVIW0,9654
|
|
12
|
-
bizyengine/bizy_server/utils.py,sha256=
|
|
12
|
+
bizyengine/bizy_server/utils.py,sha256=XVy3qJo5xCKnac_MOjPOt8TuOmENZ8yx_W3HP5-o6gU,3707
|
|
13
13
|
bizyengine/bizyair_extras/__init__.py,sha256=oaKC7QzFbgJ_BWuc3o05gmIq-8ZhUB7VEzYXnlWjGv8,951
|
|
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
|
|
@@ -26,7 +26,7 @@ bizyengine/bizyair_extras/nodes_image_utils.py,sha256=BldF_CKD2M01K8-SnG-QV86u3H
|
|
|
26
26
|
bizyengine/bizyair_extras/nodes_ip2p.py,sha256=GSEFJvrs4f2tv0xwYkWqc8uhsXrzAJVPvvwcw0gTjR0,619
|
|
27
27
|
bizyengine/bizyair_extras/nodes_janus_pro.py,sha256=hAdMsS09RkRHZn9cNwpmyOaH7ODOMjVt9SbBsD-UvbM,2665
|
|
28
28
|
bizyengine/bizyair_extras/nodes_model_advanced.py,sha256=RR2pzvlNW7NEcgtRcQSLZ8Vy7_ygA0NOZDjd7ZfzX5k,1756
|
|
29
|
-
bizyengine/bizyair_extras/nodes_nunchaku.py,sha256=
|
|
29
|
+
bizyengine/bizyair_extras/nodes_nunchaku.py,sha256=ImxqlqhlrBxbYHNJHVhVoxfY5RUyjylrRYUjAKlALaI,8050
|
|
30
30
|
bizyengine/bizyair_extras/nodes_sd3.py,sha256=lZCxj0IFmuxk1fZTDcRKgVV5QWHjkUdpR4w9-DZbMf4,1727
|
|
31
31
|
bizyengine/bizyair_extras/nodes_segment_anything.py,sha256=x1ei2UggHnB8T6aUtK_ZcUehMALEyLUnDoD5SNJCbFU,7249
|
|
32
32
|
bizyengine/bizyair_extras/nodes_segment_anything_utils.py,sha256=ZefAqrFrevDH3XY_wipr_VwKfeXrgpZEUFaqg_JGOdU,4714
|
|
@@ -34,7 +34,7 @@ bizyengine/bizyair_extras/nodes_testing_utils.py,sha256=lYmcyCIkTkQ7WOZfpEPU9wUb
|
|
|
34
34
|
bizyengine/bizyair_extras/nodes_trellis.py,sha256=YFhn8j3jSafH3ZuLqLqHVUkBqVQrUIxOLsu4Y3WrvSU,7432
|
|
35
35
|
bizyengine/bizyair_extras/nodes_ultimatesdupscale.py,sha256=-_SsLTAWAQDv4uw-4Z7IGP2tXTe73BJ3N5D6RqVVAK4,4133
|
|
36
36
|
bizyengine/bizyair_extras/nodes_upscale_model.py,sha256=lrzA1BFI2w5aEPCmNPMh07s-WDzG-xTT49uU6WCnlP8,1151
|
|
37
|
-
bizyengine/bizyair_extras/nodes_wan_i2v.py,sha256=
|
|
37
|
+
bizyengine/bizyair_extras/nodes_wan_i2v.py,sha256=6is3D-xKoqukehzEaXDzrj4QqHAPdAMFNkFQGnsvr_w,8076
|
|
38
38
|
bizyengine/bizyair_extras/nodes_wan_video.py,sha256=d1mCcW9jCj-5Oymmymy0Vz-nwWv36FMGE5Gn-E7Rul4,1632
|
|
39
39
|
bizyengine/bizyair_extras/route_bizyair_tools.py,sha256=DMVc7J0oT3H_cdAzoaog-ulhE7zj__w1t-HlWnIpCg0,2080
|
|
40
40
|
bizyengine/bizyair_extras/nodes_ipadapter_plus/__init__.py,sha256=ECKATm_EKi_4G47-FJI4-3rHO3iiF9FVakfSTE-pooE,36
|
|
@@ -56,7 +56,7 @@ bizyengine/core/commands/servers/prompt_server.py,sha256=f5qTTyoe7_cFJ8xESG--mvP
|
|
|
56
56
|
bizyengine/core/common/__init__.py,sha256=GicZw6YeAZk1PsKmFDt9dm1F75zPUlpia9Q_ki5vW1Y,179
|
|
57
57
|
bizyengine/core/common/caching.py,sha256=hRNsSrfNxgc1zzvBzLVjMY0iMkKqA0TBCr-iYhEpzik,6946
|
|
58
58
|
bizyengine/core/common/client.py,sha256=1Ka8DIjbmD9Gme9c_Q1zwXXueSCP3_OSdEDyGYEol50,10396
|
|
59
|
-
bizyengine/core/common/env_var.py,sha256=
|
|
59
|
+
bizyengine/core/common/env_var.py,sha256=1EAW3gOXY2bKouCqrGa583vTJRdDasQ1IsFTnzDg7Dk,3450
|
|
60
60
|
bizyengine/core/common/utils.py,sha256=bm-XmSPy83AyjD0v5EfWp6jiO6_5p7rkZ_HQAuVmgmo,3086
|
|
61
61
|
bizyengine/core/configs/conf.py,sha256=D_UWG9SSJnK5EhbrfNFryJQ8hUwwdvhOGlq1TielwpI,3830
|
|
62
62
|
bizyengine/core/configs/models.json,sha256=jCrqQgjVeHugLb191Xay5rg0m3duTVISPp_GxVGQ3HA,2656
|
|
@@ -75,7 +75,7 @@ bizyengine/misc/route_sam.py,sha256=-bMIR2QalfnszipGxSxvDAHGJa5gPSrjkYPb5baaRg4,
|
|
|
75
75
|
bizyengine/misc/segment_anything.py,sha256=wNKYwlYPMszfwj23524geFZJjZaG4eye65SGaUnh77I,8941
|
|
76
76
|
bizyengine/misc/supernode.py,sha256=STN9gaxfTSErH8OiHeZa47d8z-G9S0I7fXuJvHQOBFM,4532
|
|
77
77
|
bizyengine/misc/utils.py,sha256=deQjBgLAkxIr-NaOMm77TcgBT3ExAp0MFm5ehUJ3CGs,6829
|
|
78
|
-
bizyengine-1.2.
|
|
79
|
-
bizyengine-1.2.
|
|
80
|
-
bizyengine-1.2.
|
|
81
|
-
bizyengine-1.2.
|
|
78
|
+
bizyengine-1.2.18.dist-info/METADATA,sha256=EN9l2fHweogVMdCAkyaM_kYCE8IVvBWLhKo47LBusfY,675
|
|
79
|
+
bizyengine-1.2.18.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
80
|
+
bizyengine-1.2.18.dist-info/top_level.txt,sha256=2zapzqxX-we5cRyJkGf9bd5JinRtXp3-_uDI-xCAnc0,11
|
|
81
|
+
bizyengine-1.2.18.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|