bizyengine 1.2.72__py3-none-any.whl → 1.2.74__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/bizyair_extras/third_party_api/nodes_doubao.py +57 -21
- bizyengine/bizyair_extras/third_party_api/nodes_gemini.py +95 -38
- bizyengine/bizyair_extras/third_party_api/nodes_kling.py +110 -0
- bizyengine/bizyair_extras/third_party_api/trd_nodes_base.py +18 -0
- bizyengine/core/common/client.py +3 -5
- bizyengine/core/nodes_base.py +2 -0
- bizyengine/version.txt +1 -1
- {bizyengine-1.2.72.dist-info → bizyengine-1.2.74.dist-info}/METADATA +1 -1
- {bizyengine-1.2.72.dist-info → bizyengine-1.2.74.dist-info}/RECORD +11 -11
- {bizyengine-1.2.72.dist-info → bizyengine-1.2.74.dist-info}/WHEEL +0 -0
- {bizyengine-1.2.72.dist-info → bizyengine-1.2.74.dist-info}/top_level.txt +0 -0
|
@@ -157,6 +157,7 @@ class Seedream4_5(BizyAirTrdApiBaseNode):
|
|
|
157
157
|
RETURN_NAMES = ("images",)
|
|
158
158
|
CATEGORY = "☁️BizyAir/External APIs/Doubao"
|
|
159
159
|
NODE_DISPLAY_NAME = "Seedream 4.5"
|
|
160
|
+
INPUT_IS_LIST = True
|
|
160
161
|
|
|
161
162
|
@classmethod
|
|
162
163
|
def INPUT_TYPES(s):
|
|
@@ -223,6 +224,15 @@ class Seedream4_5(BizyAirTrdApiBaseNode):
|
|
|
223
224
|
"IMAGE",
|
|
224
225
|
{"tooltip": "参考图,数量不超过14张。会影响组图生成数量"},
|
|
225
226
|
),
|
|
227
|
+
"inputcount": (
|
|
228
|
+
"INT",
|
|
229
|
+
{
|
|
230
|
+
"default": 1,
|
|
231
|
+
"min": 1,
|
|
232
|
+
"max": 14,
|
|
233
|
+
"tooltip": "动态控制输入的参考图数量,范围1-14,点击Update inputs按钮刷新",
|
|
234
|
+
},
|
|
235
|
+
),
|
|
226
236
|
},
|
|
227
237
|
}
|
|
228
238
|
|
|
@@ -231,15 +241,22 @@ class Seedream4_5(BizyAirTrdApiBaseNode):
|
|
|
231
241
|
# 10mb each
|
|
232
242
|
# custom total pixels [3686400, 16777216]
|
|
233
243
|
# custom size ratio [1/16, 16]
|
|
234
|
-
model = kwargs.get("model", "doubao-seedream-4-0-250828")
|
|
235
|
-
prompt = kwargs.get("prompt", "")
|
|
236
|
-
size = kwargs.get("size", "2K")
|
|
237
|
-
images = kwargs.get("images",
|
|
238
|
-
optimize_prompt = kwargs.get("optimize_prompt", "disabled")
|
|
239
|
-
max_images = kwargs.get("max_images", 1)
|
|
244
|
+
model = kwargs.get("model", ["doubao-seedream-4-0-250828"])[0]
|
|
245
|
+
prompt = kwargs.get("prompt", [""])[0]
|
|
246
|
+
size = kwargs.get("size", ["2K"])[0]
|
|
247
|
+
images = kwargs.get("images", [])
|
|
248
|
+
optimize_prompt = kwargs.get("optimize_prompt", ["disabled"])[0]
|
|
249
|
+
max_images = kwargs.get("max_images", [1])[0]
|
|
250
|
+
|
|
251
|
+
# 多图的情况可以认为图片输入都是List[Image Batch]
|
|
252
|
+
total_input_images = 0
|
|
253
|
+
for _, img_batch in enumerate(images if images is not None else []):
|
|
254
|
+
total_input_images += img_batch.shape[0]
|
|
255
|
+
extra_images, total_extra_images = self.get_extra_images(**kwargs)
|
|
256
|
+
total_input_images += total_extra_images
|
|
257
|
+
if total_input_images > 14:
|
|
258
|
+
raise ValueError("Total number of input images is too large, maximum is 14")
|
|
240
259
|
|
|
241
|
-
if images is not None and len(images) > 14:
|
|
242
|
-
raise ValueError("Maximum number of images is 14")
|
|
243
260
|
if size == "Custom":
|
|
244
261
|
width = kwargs.get("custom_width", 2048)
|
|
245
262
|
height = kwargs.get("custom_height", 2048)
|
|
@@ -250,20 +267,39 @@ class Seedream4_5(BizyAirTrdApiBaseNode):
|
|
|
250
267
|
size = f"{width}x{height}"
|
|
251
268
|
|
|
252
269
|
parts = []
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
270
|
+
index = 1
|
|
271
|
+
for _, img_batch in enumerate(images if images is not None else []):
|
|
272
|
+
for _, img in enumerate(img_batch if img_batch is not None else []):
|
|
273
|
+
if img is not None:
|
|
274
|
+
bio = tensor_to_bytesio(image=img, total_pixels=4096 * 4096)
|
|
275
|
+
length = bio.getbuffer().nbytes
|
|
276
|
+
if length > 10 * 1024 * 1024:
|
|
277
|
+
raise ValueError(
|
|
278
|
+
"Image size is too large, Seedream 4.5 only supports up to 10MB"
|
|
279
|
+
)
|
|
280
|
+
url = self.upload_file(
|
|
281
|
+
bio,
|
|
282
|
+
f"{prompt_id}_{index}.png",
|
|
283
|
+
headers,
|
|
284
|
+
)
|
|
285
|
+
parts.append(url)
|
|
286
|
+
index += 1
|
|
287
|
+
for _, img_batch in enumerate(extra_images):
|
|
288
|
+
for _, img in enumerate(img_batch if img_batch is not None else []):
|
|
289
|
+
if img is not None:
|
|
290
|
+
bio = tensor_to_bytesio(image=img, total_pixels=4096 * 4096)
|
|
291
|
+
length = bio.getbuffer().nbytes
|
|
292
|
+
if length > 10 * 1024 * 1024:
|
|
293
|
+
raise ValueError(
|
|
294
|
+
"Image size is too large, Seedream 4.5 only supports up to 10MB"
|
|
295
|
+
)
|
|
296
|
+
url = self.upload_file(
|
|
297
|
+
bio,
|
|
298
|
+
f"{prompt_id}_{index}.png",
|
|
299
|
+
headers,
|
|
260
300
|
)
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
f"{prompt_id}_{batch_number}.png",
|
|
264
|
-
headers,
|
|
265
|
-
)
|
|
266
|
-
parts.append(url)
|
|
301
|
+
parts.append(url)
|
|
302
|
+
index += 1
|
|
267
303
|
|
|
268
304
|
data = {
|
|
269
305
|
"prompt": prompt,
|
|
@@ -184,6 +184,7 @@ class NanoBananaPro(BizyAirTrdApiBaseNode):
|
|
|
184
184
|
RETURN_TYPES = ("IMAGE", "STRING")
|
|
185
185
|
RETURN_NAMES = ("image", "string")
|
|
186
186
|
CATEGORY = "☁️BizyAir/External APIs/Gemini"
|
|
187
|
+
INPUT_IS_LIST = True
|
|
187
188
|
|
|
188
189
|
@classmethod
|
|
189
190
|
def INPUT_TYPES(s):
|
|
@@ -244,33 +245,61 @@ class NanoBananaPro(BizyAirTrdApiBaseNode):
|
|
|
244
245
|
"tooltip": "Maintain character consistency across edits",
|
|
245
246
|
},
|
|
246
247
|
),
|
|
248
|
+
"inputcount": (
|
|
249
|
+
"INT",
|
|
250
|
+
{
|
|
251
|
+
"default": 1,
|
|
252
|
+
"min": 1,
|
|
253
|
+
"max": 14,
|
|
254
|
+
"tooltip": "动态控制输入的参考图数量,范围1-14,点击Update inputs按钮刷新",
|
|
255
|
+
},
|
|
256
|
+
),
|
|
247
257
|
},
|
|
248
258
|
}
|
|
249
259
|
|
|
250
260
|
def handle_inputs(self, headers, prompt_id, **kwargs):
|
|
251
|
-
operation = kwargs.get("operation", "generate")
|
|
252
|
-
temperature = kwargs.get("temperature", 1.0)
|
|
253
|
-
top_p = kwargs.get("top_p", 1.0)
|
|
254
|
-
seed = kwargs.get("seed", 0)
|
|
255
|
-
max_tokens = kwargs.get("max_tokens", 32768)
|
|
256
|
-
quality = kwargs.get("quality", "high")
|
|
257
|
-
aspect_ratio = kwargs.get("aspect_ratio", "auto")
|
|
258
|
-
resolution = kwargs.get("resolution", "auto")
|
|
259
|
-
images = kwargs.get("images",
|
|
260
|
-
character_consistency = kwargs.get("character_consistency", True)
|
|
261
|
-
prompt = kwargs.get("prompt", "")
|
|
262
|
-
|
|
263
|
-
|
|
261
|
+
operation = kwargs.get("operation", ["generate"])[0]
|
|
262
|
+
temperature = kwargs.get("temperature", [1.0])[0]
|
|
263
|
+
top_p = kwargs.get("top_p", [1.0])[0]
|
|
264
|
+
seed = kwargs.get("seed", [0])[0]
|
|
265
|
+
max_tokens = kwargs.get("max_tokens", [32768])[0]
|
|
266
|
+
quality = kwargs.get("quality", ["high"])[0]
|
|
267
|
+
aspect_ratio = kwargs.get("aspect_ratio", ["auto"])[0]
|
|
268
|
+
resolution = kwargs.get("resolution", ["auto"])[0]
|
|
269
|
+
images = kwargs.get("images", [])
|
|
270
|
+
character_consistency = kwargs.get("character_consistency", [True])[0]
|
|
271
|
+
prompt = kwargs.get("prompt", [""])[0]
|
|
272
|
+
|
|
273
|
+
# 多图的情况可以认为图片输入都是List[Image Batch]
|
|
274
|
+
total_input_images = 0
|
|
275
|
+
for _, img_batch in enumerate(images if images is not None else []):
|
|
276
|
+
total_input_images += img_batch.shape[0]
|
|
277
|
+
extra_images, total_extra_images = self.get_extra_images(**kwargs)
|
|
278
|
+
total_input_images += total_extra_images
|
|
279
|
+
if total_input_images > 14:
|
|
264
280
|
raise ValueError("Maximum number of images is 14")
|
|
265
281
|
parts = []
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
282
|
+
index = 1
|
|
283
|
+
for _, img_batch in enumerate(images if images is not None else []):
|
|
284
|
+
for _, img in enumerate(img_batch if img_batch is not None else []):
|
|
285
|
+
if img is not None:
|
|
286
|
+
url = self.upload_file(
|
|
287
|
+
tensor_to_bytesio(image=img, total_pixels=4096 * 4096),
|
|
288
|
+
f"{prompt_id}_{index}.png",
|
|
289
|
+
headers,
|
|
290
|
+
)
|
|
291
|
+
parts.append(url)
|
|
292
|
+
index += 1
|
|
293
|
+
for _, img_batch in enumerate(extra_images):
|
|
294
|
+
for _, img in enumerate(img_batch if img_batch is not None else []):
|
|
295
|
+
if img is not None:
|
|
296
|
+
url = self.upload_file(
|
|
297
|
+
tensor_to_bytesio(image=img, total_pixels=4096 * 4096),
|
|
298
|
+
f"{prompt_id}_{index}.png",
|
|
299
|
+
headers,
|
|
300
|
+
)
|
|
301
|
+
parts.append(url)
|
|
302
|
+
index += 1
|
|
274
303
|
|
|
275
304
|
prompt = build_prompt_for_operation(
|
|
276
305
|
prompt,
|
|
@@ -349,6 +378,15 @@ class NanoBananaProOfficial(BizyAirTrdApiBaseNode):
|
|
|
349
378
|
},
|
|
350
379
|
"optional": {
|
|
351
380
|
"images": ("IMAGE",),
|
|
381
|
+
"inputcount": (
|
|
382
|
+
"INT",
|
|
383
|
+
{
|
|
384
|
+
"default": 1,
|
|
385
|
+
"min": 1,
|
|
386
|
+
"max": 14,
|
|
387
|
+
"tooltip": "动态控制输入的参考图数量,范围1-14,点击Update inputs按钮刷新",
|
|
388
|
+
},
|
|
389
|
+
),
|
|
352
390
|
},
|
|
353
391
|
}
|
|
354
392
|
|
|
@@ -356,28 +394,47 @@ class NanoBananaProOfficial(BizyAirTrdApiBaseNode):
|
|
|
356
394
|
RETURN_NAMES = ("image", "string")
|
|
357
395
|
CATEGORY = "☁️BizyAir/External APIs/Gemini"
|
|
358
396
|
NODE_DISPLAY_NAME = "NanoBananaPro (Official Parameters)"
|
|
397
|
+
INPUT_IS_LIST = True
|
|
359
398
|
|
|
360
399
|
def handle_inputs(self, headers, prompt_id, **kwargs):
|
|
361
|
-
prompt = kwargs.get("prompt", "")
|
|
400
|
+
prompt = kwargs.get("prompt", [""])[0]
|
|
362
401
|
temperature = kwargs.get("temperature", 1.0)
|
|
363
|
-
top_p = kwargs.get("top_p", 1.0)
|
|
364
|
-
seed = kwargs.get("seed", 0)
|
|
365
|
-
max_tokens = kwargs.get("max_tokens", 32768)
|
|
366
|
-
aspect_ratio = kwargs.get("aspect_ratio", "auto")
|
|
367
|
-
resolution = kwargs.get("resolution", "auto")
|
|
368
|
-
images = kwargs.get("images",
|
|
369
|
-
|
|
402
|
+
top_p = kwargs.get("top_p", [1.0])[0]
|
|
403
|
+
seed = kwargs.get("seed", [0])[0]
|
|
404
|
+
max_tokens = kwargs.get("max_tokens", [32768])[0]
|
|
405
|
+
aspect_ratio = kwargs.get("aspect_ratio", ["auto"])[0]
|
|
406
|
+
resolution = kwargs.get("resolution", ["auto"])[0]
|
|
407
|
+
images = kwargs.get("images", [])
|
|
408
|
+
extra_images, total_extra_images = self.get_extra_images(**kwargs)
|
|
409
|
+
# 多图的情况可以认为图片输入都是List[Image Batch]
|
|
410
|
+
total_input_images = 0
|
|
411
|
+
for _, img_batch in enumerate(images if images is not None else []):
|
|
412
|
+
total_input_images += img_batch.shape[0]
|
|
413
|
+
total_input_images += total_extra_images
|
|
414
|
+
if total_input_images > 14:
|
|
370
415
|
raise ValueError("Maximum number of images is 14")
|
|
371
416
|
parts = []
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
417
|
+
index = 1
|
|
418
|
+
for _, img_batch in enumerate(images if images is not None else []):
|
|
419
|
+
for _, img in enumerate(img_batch if img_batch is not None else []):
|
|
420
|
+
if img is not None:
|
|
421
|
+
url = self.upload_file(
|
|
422
|
+
tensor_to_bytesio(image=img, total_pixels=4096 * 4096),
|
|
423
|
+
f"{prompt_id}_{index}.png",
|
|
424
|
+
headers,
|
|
425
|
+
)
|
|
426
|
+
parts.append(url)
|
|
427
|
+
index += 1
|
|
428
|
+
for _, img_batch in enumerate(extra_images):
|
|
429
|
+
for _, img in enumerate(img_batch if img_batch is not None else []):
|
|
430
|
+
if img is not None:
|
|
431
|
+
url = self.upload_file(
|
|
432
|
+
tensor_to_bytesio(image=img, total_pixels=4096 * 4096),
|
|
433
|
+
f"{prompt_id}_{index}.png",
|
|
434
|
+
headers,
|
|
435
|
+
)
|
|
436
|
+
parts.append(url)
|
|
437
|
+
index += 1
|
|
381
438
|
data = {
|
|
382
439
|
"urls": parts,
|
|
383
440
|
"prompt": prompt,
|
|
@@ -272,6 +272,116 @@ class Kling_2_5_I2V_API(BizyAirTrdApiBaseNode):
|
|
|
272
272
|
return (outputs[0][0],)
|
|
273
273
|
|
|
274
274
|
|
|
275
|
+
class Kling_2_6_T2V_API(BizyAirTrdApiBaseNode):
|
|
276
|
+
NODE_DISPLAY_NAME = "Kling 2.6 Text To Video"
|
|
277
|
+
RETURN_TYPES = ("VIDEO",)
|
|
278
|
+
RETURN_NAMES = ("video",)
|
|
279
|
+
CATEGORY = "☁️BizyAir/External APIs/Kling"
|
|
280
|
+
|
|
281
|
+
@classmethod
|
|
282
|
+
def INPUT_TYPES(cls):
|
|
283
|
+
return {
|
|
284
|
+
"required": {
|
|
285
|
+
"prompt": (
|
|
286
|
+
"STRING",
|
|
287
|
+
{
|
|
288
|
+
"multiline": True,
|
|
289
|
+
"default": "",
|
|
290
|
+
},
|
|
291
|
+
),
|
|
292
|
+
"sound": (
|
|
293
|
+
"BOOLEAN",
|
|
294
|
+
{
|
|
295
|
+
"default": False,
|
|
296
|
+
"tooltip": "是否开启声音",
|
|
297
|
+
},
|
|
298
|
+
),
|
|
299
|
+
"model_name": (["kling-v2-6"], {"default": "kling-v2-6"}),
|
|
300
|
+
"duration": ([5, 10], {"default": 5}),
|
|
301
|
+
"aspect_ratio": (["16:9", "9:16", "1:1"], {"default": "16:9"}),
|
|
302
|
+
},
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
def handle_inputs(self, headers, prompt_id, **kwargs):
|
|
306
|
+
model = kwargs.get("model_name", "kling-v2-6")
|
|
307
|
+
prompt = kwargs.get("prompt", "")
|
|
308
|
+
sound = kwargs.get("sound", False)
|
|
309
|
+
duration = kwargs.get("duration", 5)
|
|
310
|
+
aspect_ratio = kwargs.get("aspect_ratio", "16:9")
|
|
311
|
+
if len(prompt) > 1000:
|
|
312
|
+
raise ValueError("Prompt must be less than 1000 characters")
|
|
313
|
+
data = {
|
|
314
|
+
"model_name": model,
|
|
315
|
+
"prompt": prompt,
|
|
316
|
+
"sound": sound,
|
|
317
|
+
"duration": duration,
|
|
318
|
+
"aspect_ratio": aspect_ratio,
|
|
319
|
+
}
|
|
320
|
+
return data, "kling-v2-6"
|
|
321
|
+
|
|
322
|
+
def handle_outputs(self, outputs):
|
|
323
|
+
return (outputs[0][0],)
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
class Kling_2_6_I2V_API(BizyAirTrdApiBaseNode):
|
|
327
|
+
NODE_DISPLAY_NAME = "Kling 2.6 Image To Video"
|
|
328
|
+
RETURN_TYPES = ("VIDEO",)
|
|
329
|
+
RETURN_NAMES = ("video",)
|
|
330
|
+
CATEGORY = "☁️BizyAir/External APIs/Kling"
|
|
331
|
+
|
|
332
|
+
@classmethod
|
|
333
|
+
def INPUT_TYPES(cls):
|
|
334
|
+
return {
|
|
335
|
+
"required": {
|
|
336
|
+
"first_frame_image": ("IMAGE", {"tooltip": "首帧图片"}),
|
|
337
|
+
"prompt": (
|
|
338
|
+
"STRING",
|
|
339
|
+
{
|
|
340
|
+
"multiline": True,
|
|
341
|
+
"default": "",
|
|
342
|
+
},
|
|
343
|
+
),
|
|
344
|
+
"sound": (
|
|
345
|
+
"BOOLEAN",
|
|
346
|
+
{
|
|
347
|
+
"default": False,
|
|
348
|
+
"tooltip": "是否开启声音",
|
|
349
|
+
},
|
|
350
|
+
),
|
|
351
|
+
"model_name": (["kling-v2-6"], {"default": "kling-v2-6"}),
|
|
352
|
+
"duration": ([5, 10], {"default": 5}),
|
|
353
|
+
},
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
def handle_inputs(self, headers, prompt_id, **kwargs):
|
|
357
|
+
model = kwargs.get("model_name", "kling-v2-6")
|
|
358
|
+
prompt = kwargs.get("prompt", "")
|
|
359
|
+
sound = kwargs.get("sound", False)
|
|
360
|
+
duration = kwargs.get("duration", 5)
|
|
361
|
+
first_frame_image = kwargs.get("first_frame_image", None)
|
|
362
|
+
if first_frame_image is None:
|
|
363
|
+
raise ValueError("First frame image is required")
|
|
364
|
+
if len(prompt) > 1000:
|
|
365
|
+
raise ValueError("Prompt must be less than 1000 characters")
|
|
366
|
+
# 上传图片
|
|
367
|
+
url = self.upload_file(
|
|
368
|
+
tensor_to_bytesio(image=first_frame_image, total_pixels=4096 * 4096),
|
|
369
|
+
f"{prompt_id}.png",
|
|
370
|
+
headers,
|
|
371
|
+
)
|
|
372
|
+
data = {
|
|
373
|
+
"model_name": model,
|
|
374
|
+
"prompt": prompt,
|
|
375
|
+
"sound": sound,
|
|
376
|
+
"duration": duration,
|
|
377
|
+
"urls": [url],
|
|
378
|
+
}
|
|
379
|
+
return data, "kling-v2-6"
|
|
380
|
+
|
|
381
|
+
def handle_outputs(self, outputs):
|
|
382
|
+
return (outputs[0][0],)
|
|
383
|
+
|
|
384
|
+
|
|
275
385
|
class Kling_2_T2I_API(BizyAirTrdApiBaseNode):
|
|
276
386
|
NODE_DISPLAY_NAME = "Kling 2 Text To Image"
|
|
277
387
|
RETURN_TYPES = ("IMAGE",)
|
|
@@ -181,3 +181,21 @@ class BizyAirTrdApiBaseNode(BizyAirMiscBaseNode, TrdBase):
|
|
|
181
181
|
).movedim(1, -1)
|
|
182
182
|
s = torch.cat((s, image), dim=0)
|
|
183
183
|
return s
|
|
184
|
+
|
|
185
|
+
def get_extra_images(self, **kwargs) -> Tuple[List, int]:
|
|
186
|
+
input_is_list = getattr(self, "INPUT_IS_LIST", False)
|
|
187
|
+
if not input_is_list:
|
|
188
|
+
raise ValueError(
|
|
189
|
+
f"{type(self).__name__} get_extra_images only supports INPUT_IS_LIST=True"
|
|
190
|
+
)
|
|
191
|
+
inputcount = kwargs.get("inputcount", [1])[0]
|
|
192
|
+
# List[Tensor]
|
|
193
|
+
extra_images = []
|
|
194
|
+
total = 0
|
|
195
|
+
for i in range(1, inputcount):
|
|
196
|
+
# 可以认为图片输入都是List[Batch]
|
|
197
|
+
images = kwargs.get(f"image_{i + 1}", None)
|
|
198
|
+
for _, img_batch in enumerate(images if images is not None else []):
|
|
199
|
+
total += img_batch.shape[0]
|
|
200
|
+
extra_images.append(img_batch)
|
|
201
|
+
return (extra_images, total)
|
bizyengine/core/common/client.py
CHANGED
|
@@ -166,9 +166,8 @@ def send_request(
|
|
|
166
166
|
except urllib.error.URLError as e:
|
|
167
167
|
error_message = str(e)
|
|
168
168
|
response_body = e.read().decode("utf-8") if hasattr(e, "read") else "N/A"
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
logging.info(f"Response Body: {response_body}")
|
|
169
|
+
logging.error(f"URLError encountered: {error_message}")
|
|
170
|
+
logging.debug(f"Response Body: {response_body}")
|
|
172
171
|
code, message = "N/A", "N/A"
|
|
173
172
|
try:
|
|
174
173
|
response_dict = json.loads(response_body)
|
|
@@ -261,8 +260,7 @@ async def async_send_request(
|
|
|
261
260
|
response_data = await response.text()
|
|
262
261
|
if response.status != 200:
|
|
263
262
|
error_message = f"HTTP Status {response.status}"
|
|
264
|
-
|
|
265
|
-
logging.error(f"Error encountered: {error_message}")
|
|
263
|
+
logging.error(f"Error encountered: {error_message}")
|
|
266
264
|
if response.status == 401:
|
|
267
265
|
raise PermissionError(
|
|
268
266
|
"Key is invalid, please refer to https://cloud.siliconflow.cn to get the API key.\n"
|
bizyengine/core/nodes_base.py
CHANGED
|
@@ -36,6 +36,8 @@ def pop_api_key_and_prompt_id(kwargs):
|
|
|
36
36
|
prompt = None
|
|
37
37
|
if BIZYAIR_PROMPT_KEY in kwargs:
|
|
38
38
|
prompt = kwargs.pop(BIZYAIR_PROMPT_KEY)
|
|
39
|
+
if isinstance(prompt, list) and prompt:
|
|
40
|
+
prompt = prompt[0]
|
|
39
41
|
if BIZYAIR_SERVER_MODE:
|
|
40
42
|
if BIZYAIR_PARAM_MAGIC_NODE_ID in prompt:
|
|
41
43
|
extra_data["api_key"] = prompt[BIZYAIR_PARAM_MAGIC_NODE_ID]["_meta"][
|
bizyengine/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.2.
|
|
1
|
+
1.2.74
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bizyengine
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.74
|
|
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=
|
|
2
|
+
bizyengine/version.txt,sha256=ihmKcAOejMdAt8f1PiHhwM5Nn2-tnC08DTnjvgZKcX4,7
|
|
3
3
|
bizyengine/bizy_server/__init__.py,sha256=SP9oSblnPo4KQyh7yOGD26YCskFAcQHAZy04nQBNRIw,200
|
|
4
4
|
bizyengine/bizy_server/api_client.py,sha256=fF2VApJjPcPWGQwYWSEaIN12c8WT95lj1_QHX83WbeQ,44630
|
|
5
5
|
bizyengine/bizy_server/errno.py,sha256=ikb4Z3MRMTjosi9AC1epaOwE3kJsD6CcFcFp56AKF-Y,16986
|
|
@@ -46,16 +46,16 @@ bizyengine/bizyair_extras/nodes_ipadapter_plus/nodes_ipadapter_plus.py,sha256=lO
|
|
|
46
46
|
bizyengine/bizyair_extras/nodes_kolors_mz/__init__.py,sha256=HsCCCphW8q0SrWEiFlZKK_W2lQr1T0UJIJL7gEn37ME,3729
|
|
47
47
|
bizyengine/bizyair_extras/oauth_callback/main.py,sha256=KQOZWor3kyNx8xvUNHYNMoHfCF9g_ht13_iPk4K_5YM,3633
|
|
48
48
|
bizyengine/bizyair_extras/third_party_api/__init__.py,sha256=etiPBCIxOBD6hbrVhdivaRVOPrAp6z79YDWyJgqr_b4,320
|
|
49
|
-
bizyengine/bizyair_extras/third_party_api/nodes_doubao.py,sha256=
|
|
49
|
+
bizyengine/bizyair_extras/third_party_api/nodes_doubao.py,sha256=B-RHX2S2HVq5iLk0m0-OZXg5jmAT7kHJS-VUEkWl5sI,20941
|
|
50
50
|
bizyengine/bizyair_extras/third_party_api/nodes_flux.py,sha256=9o7imVDn9qXnUokkAjTH9yNdpXwcuQ8p3rsv5Y5eywQ,6135
|
|
51
|
-
bizyengine/bizyair_extras/third_party_api/nodes_gemini.py,sha256
|
|
51
|
+
bizyengine/bizyair_extras/third_party_api/nodes_gemini.py,sha256=IiSDL6RsKMeYoej11BFQL-0SBRQTfRhSjvKXXuF_8bE,17332
|
|
52
52
|
bizyengine/bizyair_extras/third_party_api/nodes_gpt.py,sha256=pvIlwjjHnk_XCa4eJERBcsWonaBd24xP0jFVQLJXdQc,3098
|
|
53
53
|
bizyengine/bizyair_extras/third_party_api/nodes_hailuo.py,sha256=hBmt6AHVXzsbO-Uq3Go-06yNLocV6sCtutKCVUz4P9E,3746
|
|
54
|
-
bizyengine/bizyair_extras/third_party_api/nodes_kling.py,sha256=
|
|
54
|
+
bizyengine/bizyair_extras/third_party_api/nodes_kling.py,sha256=ROrMLXuJ2ubSvvsXXbnqeEnl_mAKxIKSWLh_okKd3TQ,18290
|
|
55
55
|
bizyengine/bizyair_extras/third_party_api/nodes_sora.py,sha256=alxI3zNDSUKdc2IOOv5csIWFcHSAqL_55H9Zp4BdcN4,6976
|
|
56
56
|
bizyengine/bizyair_extras/third_party_api/nodes_veo3.py,sha256=H-6zWsUSTKaMMIUrMaH205-hnegvXxs1SQmKi4uY8rI,6489
|
|
57
57
|
bizyengine/bizyair_extras/third_party_api/nodes_wan_api.py,sha256=qkbXFHlnirqUTqnN-X5mu7MyHRYjtGv6e233PjlyUxg,6776
|
|
58
|
-
bizyengine/bizyair_extras/third_party_api/trd_nodes_base.py,sha256=
|
|
58
|
+
bizyengine/bizyair_extras/third_party_api/trd_nodes_base.py,sha256=s4v8sPyvSu9-GaPQFFKq3w6V5uqQnciFgq7nrQGECiI,7895
|
|
59
59
|
bizyengine/bizyair_extras/utils/aliyun_oss.py,sha256=H6wGZq1DqP7BHJ_frBJVvUVttgXprJprOnxytePIuos,3050
|
|
60
60
|
bizyengine/bizyair_extras/utils/audio.py,sha256=cCmX080jtxsHFa7mCgn13R6cyfqE-1Gq37ZnRJdZNU8,3183
|
|
61
61
|
bizyengine/bizybot/__init__.py,sha256=NINN_7QECKQwtAwKPBTrrSiAK6KbxaZCkIvJ-e1J1xk,262
|
|
@@ -72,7 +72,7 @@ bizyengine/bizybot/mcp/routing.py,sha256=COgeao02y-oIiHpcXEZGl2cccgcR1u343BEcJ95
|
|
|
72
72
|
bizyengine/core/__init__.py,sha256=EygpO-kvl5-4rk44rP8_s0GBDd_TF7FMvrl2exBSWWM,378
|
|
73
73
|
bizyengine/core/data_types.py,sha256=2f7QqqZvhKmXw3kZV1AvXuPTda34b4wXQE9tyO8nUSM,1595
|
|
74
74
|
bizyengine/core/image_utils.py,sha256=vJt42FcEDD8-fQumuogZM1XXwgYseSQ79_9Qzu9YTQk,409
|
|
75
|
-
bizyengine/core/nodes_base.py,sha256=
|
|
75
|
+
bizyengine/core/nodes_base.py,sha256=5cmBMdhGe9CMQrd1doZTrqE-7Z8XXrsTFEuh9N68bvY,9098
|
|
76
76
|
bizyengine/core/nodes_io.py,sha256=VhwRwYkGp0g3Mh0hx1OSwNZbV06NEV13w2aODSiAm5M,2832
|
|
77
77
|
bizyengine/core/commands/__init__.py,sha256=82yRdMT23RTiZPkFW_G3fVa-fj3-TUAXnj6cnGA3xRA,22
|
|
78
78
|
bizyengine/core/commands/base.py,sha256=TYH9lhr033B2roBLPkWkxcvoz_fW3cdzx_bvP_FI7dg,635
|
|
@@ -83,7 +83,7 @@ bizyengine/core/commands/servers/model_server.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
|
|
|
83
83
|
bizyengine/core/commands/servers/prompt_server.py,sha256=5R4a5EU5z5lqGNoDlGRtUGGHRojFWAtm3rdslqxpebU,11366
|
|
84
84
|
bizyengine/core/common/__init__.py,sha256=GicZw6YeAZk1PsKmFDt9dm1F75zPUlpia9Q_ki5vW1Y,179
|
|
85
85
|
bizyengine/core/common/caching.py,sha256=hRNsSrfNxgc1zzvBzLVjMY0iMkKqA0TBCr-iYhEpzik,6946
|
|
86
|
-
bizyengine/core/common/client.py,sha256=
|
|
86
|
+
bizyengine/core/common/client.py,sha256=szsvaHkvmXm52PaBaDhjx8hUsk3KaxSaqSuIiW3hsHY,10638
|
|
87
87
|
bizyengine/core/common/env_var.py,sha256=1EAW3gOXY2bKouCqrGa583vTJRdDasQ1IsFTnzDg7Dk,3450
|
|
88
88
|
bizyengine/core/common/utils.py,sha256=Jxk4tCURbUhjYBFuHTiQgeUo2w13TYj4upnPTKNNucM,4215
|
|
89
89
|
bizyengine/core/configs/conf.py,sha256=D_UWG9SSJnK5EhbrfNFryJQ8hUwwdvhOGlq1TielwpI,3830
|
|
@@ -103,7 +103,7 @@ bizyengine/misc/route_sam.py,sha256=-bMIR2QalfnszipGxSxvDAHGJa5gPSrjkYPb5baaRg4,
|
|
|
103
103
|
bizyengine/misc/segment_anything.py,sha256=wNKYwlYPMszfwj23524geFZJjZaG4eye65SGaUnh77I,8941
|
|
104
104
|
bizyengine/misc/supernode.py,sha256=STN9gaxfTSErH8OiHeZa47d8z-G9S0I7fXuJvHQOBFM,4532
|
|
105
105
|
bizyengine/misc/utils.py,sha256=nXXTPkj4WBvds4EWjI9c-ydeWwmXl8Vwrdu-4Fh62g8,12914
|
|
106
|
-
bizyengine-1.2.
|
|
107
|
-
bizyengine-1.2.
|
|
108
|
-
bizyengine-1.2.
|
|
109
|
-
bizyengine-1.2.
|
|
106
|
+
bizyengine-1.2.74.dist-info/METADATA,sha256=oollV2v-AeUl0mUdhYhWNaWCPnkbzYImWpYb4hAXSFc,735
|
|
107
|
+
bizyengine-1.2.74.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
108
|
+
bizyengine-1.2.74.dist-info/top_level.txt,sha256=2zapzqxX-we5cRyJkGf9bd5JinRtXp3-_uDI-xCAnc0,11
|
|
109
|
+
bizyengine-1.2.74.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|