bizyengine 1.2.71__py3-none-any.whl → 1.2.73__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/api_client.py +16 -0
- bizyengine/bizy_server/errno.py +7 -0
- bizyengine/bizy_server/server.py +10 -0
- 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/version.txt +1 -1
- {bizyengine-1.2.71.dist-info → bizyengine-1.2.73.dist-info}/METADATA +1 -1
- {bizyengine-1.2.71.dist-info → bizyengine-1.2.73.dist-info}/RECORD +13 -13
- {bizyengine-1.2.71.dist-info → bizyengine-1.2.73.dist-info}/WHEEL +0 -0
- {bizyengine-1.2.71.dist-info → bizyengine-1.2.73.dist-info}/top_level.txt +0 -0
|
@@ -1227,3 +1227,19 @@ class APIClient:
|
|
|
1227
1227
|
except asyncio.exceptions.TimeoutError:
|
|
1228
1228
|
print("Request to fetch models timed out")
|
|
1229
1229
|
return []
|
|
1230
|
+
|
|
1231
|
+
async def get_plugin_tmp_token(self, api_key: str = None):
|
|
1232
|
+
url = f"{BIZYAIR_X_SERVER}/auth/plugin_tmp_token"
|
|
1233
|
+
headers, err = self.auth_header(api_key=api_key)
|
|
1234
|
+
if err is not None:
|
|
1235
|
+
print(f"get_plugin_tmp_token: error getting headers: {err}")
|
|
1236
|
+
return None, err
|
|
1237
|
+
try:
|
|
1238
|
+
data, err = await self.do_post(url, headers=headers)
|
|
1239
|
+
if err is not None:
|
|
1240
|
+
print(f"get_plugin_tmp_token error: {err}")
|
|
1241
|
+
return None, err
|
|
1242
|
+
return data["data"], None
|
|
1243
|
+
except aiohttp.ClientError as e:
|
|
1244
|
+
print(f"get_plugin_tmp_token error: {e}")
|
|
1245
|
+
return None, errnos.GET_PLUGIN_TMP_TOKEN
|
bizyengine/bizy_server/errno.py
CHANGED
bizyengine/bizy_server/server.py
CHANGED
|
@@ -1342,6 +1342,16 @@ class BizyAirServer:
|
|
|
1342
1342
|
|
|
1343
1343
|
return OKResponse(resp)
|
|
1344
1344
|
|
|
1345
|
+
@self.prompt_server.routes.post(f"/{API_PREFIX}/auth/plugin_tmp_token")
|
|
1346
|
+
async def get_plugin_tmp_token(request):
|
|
1347
|
+
api_key = request.rel_url.query.get("api_key", "")
|
|
1348
|
+
|
|
1349
|
+
resp, err = await self.api_client.get_plugin_tmp_token(api_key=api_key)
|
|
1350
|
+
if err is not None:
|
|
1351
|
+
return ErrResponse(err)
|
|
1352
|
+
|
|
1353
|
+
return OKResponse(resp)
|
|
1354
|
+
|
|
1345
1355
|
async def send_json(self, event, data, sid=None):
|
|
1346
1356
|
message = {"type": event, "data": data}
|
|
1347
1357
|
|
|
@@ -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/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.2.
|
|
1
|
+
1.2.73
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bizyengine
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.73
|
|
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,13 +1,13 @@
|
|
|
1
1
|
bizyengine/__init__.py,sha256=GP9V-JM07fz7uv_qTB43QEA2rKdrVJxi5I7LRnn_3ZQ,914
|
|
2
|
-
bizyengine/version.txt,sha256=
|
|
2
|
+
bizyengine/version.txt,sha256=XexsOKTJPsXwU5ZX6top94JrbuaDmi3BjQtI9WaqBQA,7
|
|
3
3
|
bizyengine/bizy_server/__init__.py,sha256=SP9oSblnPo4KQyh7yOGD26YCskFAcQHAZy04nQBNRIw,200
|
|
4
|
-
bizyengine/bizy_server/api_client.py,sha256=
|
|
5
|
-
bizyengine/bizy_server/errno.py,sha256=
|
|
4
|
+
bizyengine/bizy_server/api_client.py,sha256=fF2VApJjPcPWGQwYWSEaIN12c8WT95lj1_QHX83WbeQ,44630
|
|
5
|
+
bizyengine/bizy_server/errno.py,sha256=ikb4Z3MRMTjosi9AC1epaOwE3kJsD6CcFcFp56AKF-Y,16986
|
|
6
6
|
bizyengine/bizy_server/error_handler.py,sha256=MGrfO1AEqbfEgMWPL8B6Ypew_zHiQAdYGlhN9bZohrY,167
|
|
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=tdr_Um6aRed1YVMo7D9TpUyAu1ZQEyiHbQhyDfhtVoY,57877
|
|
11
11
|
bizyengine/bizy_server/stream_response.py,sha256=H2XHqlVRtQMhgdztAuG7l8-iV_Pm42u2x6WJ0gNVIW0,9654
|
|
12
12
|
bizyengine/bizy_server/utils.py,sha256=t3y3ZTDzFa8K4wXlzgLVaFNCizgylsKsd9K3rLL4sGw,3986
|
|
13
13
|
bizyengine/bizyair_extras/__init__.py,sha256=9iPmEyR7F1IXbUaBNS90ivW9ul18GcuWFxRfFv2ieAw,1011
|
|
@@ -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
|
|
@@ -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.73.dist-info/METADATA,sha256=d98QqSRCG4p-Z6Wv2-ROQdD-sZJwBbwtdXMFnFMxLAg,735
|
|
107
|
+
bizyengine-1.2.73.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
108
|
+
bizyengine-1.2.73.dist-info/top_level.txt,sha256=2zapzqxX-we5cRyJkGf9bd5JinRtXp3-_uDI-xCAnc0,11
|
|
109
|
+
bizyengine-1.2.73.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|