bizyengine 1.2.8__tar.gz → 1.2.10__tar.gz

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.
Files changed (89) hide show
  1. {bizyengine-1.2.8 → bizyengine-1.2.10}/PKG-INFO +1 -1
  2. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_wan_i2v.py +18 -6
  3. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/common/caching.py +23 -1
  4. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/nodes_base.py +1 -1
  5. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/path_utils/__init__.py +1 -1
  6. bizyengine-1.2.10/bizyengine/core/path_utils/utils.py +75 -0
  7. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/misc/nodes.py +4 -4
  8. bizyengine-1.2.10/bizyengine/version.txt +1 -0
  9. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine.egg-info/PKG-INFO +1 -1
  10. bizyengine-1.2.8/bizyengine/core/path_utils/utils.py +0 -34
  11. bizyengine-1.2.8/bizyengine/version.txt +0 -1
  12. {bizyengine-1.2.8 → bizyengine-1.2.10}/MANIFEST.in +0 -0
  13. {bizyengine-1.2.8 → bizyengine-1.2.10}/README.md +0 -0
  14. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/__init__.py +0 -0
  15. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizy_server/__init__.py +0 -0
  16. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizy_server/api_client.py +0 -0
  17. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizy_server/errno.py +0 -0
  18. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizy_server/error_handler.py +0 -0
  19. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizy_server/execution.py +0 -0
  20. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizy_server/profile.py +0 -0
  21. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizy_server/resp.py +0 -0
  22. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizy_server/server.py +0 -0
  23. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizy_server/stream_response.py +0 -0
  24. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizy_server/utils.py +0 -0
  25. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/__init__.py +0 -0
  26. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_advanced_refluxcontrol.py +0 -0
  27. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_cogview4.py +0 -0
  28. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_comfyui_detail_daemon.py +0 -0
  29. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_comfyui_instantid.py +0 -0
  30. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_comfyui_layerstyle_advance.py +0 -0
  31. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_comfyui_pulid_flux.py +0 -0
  32. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_controlnet.py +0 -0
  33. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_custom_sampler.py +0 -0
  34. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_dataset.py +0 -0
  35. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_differential_diffusion.py +0 -0
  36. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_flux.py +0 -0
  37. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_image_utils.py +0 -0
  38. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_ip2p.py +0 -0
  39. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_ipadapter_plus/__init__.py +0 -0
  40. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_ipadapter_plus/nodes_ipadapter_plus.py +0 -0
  41. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_janus_pro.py +0 -0
  42. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_kolors_mz/__init__.py +0 -0
  43. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_model_advanced.py +0 -0
  44. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_nunchaku.py +0 -0
  45. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_sd3.py +0 -0
  46. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_segment_anything.py +0 -0
  47. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_segment_anything_utils.py +0 -0
  48. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_testing_utils.py +0 -0
  49. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_trellis.py +0 -0
  50. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_ultimatesdupscale.py +0 -0
  51. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_upscale_model.py +0 -0
  52. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_wan_video.py +0 -0
  53. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/oauth_callback/main.py +0 -0
  54. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/bizyair_extras/route_bizyair_tools.py +0 -0
  55. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/__init__.py +0 -0
  56. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/commands/__init__.py +0 -0
  57. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/commands/base.py +0 -0
  58. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/commands/invoker.py +0 -0
  59. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/commands/processors/model_hosting_processor.py +0 -0
  60. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/commands/processors/prompt_processor.py +0 -0
  61. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/commands/servers/model_server.py +0 -0
  62. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/commands/servers/prompt_server.py +0 -0
  63. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/common/__init__.py +0 -0
  64. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/common/client.py +0 -0
  65. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/common/env_var.py +0 -0
  66. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/common/utils.py +0 -0
  67. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/configs/conf.py +0 -0
  68. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/configs/models.json +0 -0
  69. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/configs/models.yaml +0 -0
  70. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/data_types.py +0 -0
  71. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/image_utils.py +0 -0
  72. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/nodes_io.py +0 -0
  73. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/core/path_utils/path_manager.py +0 -0
  74. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/misc/__init__.py +0 -0
  75. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/misc/auth.py +0 -0
  76. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/misc/llm.py +0 -0
  77. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/misc/mzkolors.py +0 -0
  78. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/misc/nodes_controlnet_aux.py +0 -0
  79. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/misc/nodes_controlnet_union_sdxl.py +0 -0
  80. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/misc/route_sam.py +0 -0
  81. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/misc/segment_anything.py +0 -0
  82. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/misc/supernode.py +0 -0
  83. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine/misc/utils.py +0 -0
  84. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine.egg-info/SOURCES.txt +0 -0
  85. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine.egg-info/dependency_links.txt +0 -0
  86. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine.egg-info/requires.txt +0 -0
  87. {bizyengine-1.2.8 → bizyengine-1.2.10}/bizyengine.egg-info/top_level.txt +0 -0
  88. {bizyengine-1.2.8 → bizyengine-1.2.10}/pyproject.toml +0 -0
  89. {bizyengine-1.2.8 → bizyengine-1.2.10}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bizyengine
3
- Version: 1.2.8
3
+ Version: 1.2.10
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
@@ -21,6 +21,7 @@ except ModuleNotFoundError as e:
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
24
+ from ..core.path_utils import compose_model_name
24
25
 
25
26
 
26
27
  class WanApiNodeBase:
@@ -30,17 +31,19 @@ class WanApiNodeBase:
30
31
 
31
32
 
32
33
  class Wan_LoraLoader(BizyAirBaseNode):
33
-
34
34
  @classmethod
35
35
  def INPUT_TYPES(cls):
36
36
  return {
37
37
  "required": {
38
38
  "lora_name": (
39
+ [
40
+ "to choose",
41
+ ],
42
+ ),
43
+ "model_version_id": (
39
44
  "STRING",
40
45
  {
41
- "multiline": True,
42
- "default": "https://huggingface.co/Remade-AI/Squish/resolve/main/squish_18.safetensors",
43
- "tooltip": "LoRA 模型下载地址",
46
+ "default": "",
44
47
  },
45
48
  ),
46
49
  },
@@ -54,7 +57,7 @@ class Wan_LoraLoader(BizyAirBaseNode):
54
57
  "step": 0.05,
55
58
  "tooltip": "LoRA权重强度",
56
59
  },
57
- )
60
+ ),
58
61
  },
59
62
  }
60
63
 
@@ -63,7 +66,16 @@ class Wan_LoraLoader(BizyAirBaseNode):
63
66
  FUNCTION = "apply_lora"
64
67
  CATEGORY = "Diffusers/WAN Video Generation"
65
68
 
66
- def apply_lora(self, lora_name, lora_weight=0.75, **kwargs):
69
+ @classmethod
70
+ def VALIDATE_INPUTS(cls, lora_name, model_version_id):
71
+ if lora_name == "to choose":
72
+ return False
73
+ if model_version_id is not None and model_version_id != "":
74
+ return True
75
+ return True
76
+
77
+ def apply_lora(self, lora_name, lora_weight=0.75, model_version_id="", **kwargs):
78
+ lora_name = compose_model_name(model_version_id, fallback_name=lora_name)
67
79
  return ([(lora_name, lora_weight)],)
68
80
 
69
81
 
@@ -1,6 +1,8 @@
1
1
  import glob
2
+ import hashlib
2
3
  import json
3
4
  import os
5
+ import threading
4
6
  import time
5
7
  from abc import ABC, abstractmethod
6
8
  from collections import OrderedDict
@@ -47,7 +49,23 @@ class CacheManager(ABC):
47
49
  pass
48
50
 
49
51
 
50
- class BizyAirTaskCache(CacheManager):
52
+ class ConfigSingleton:
53
+ _instance_lock = threading.Lock()
54
+ _instances = {}
55
+
56
+ def __new__(cls, config, *args, **kwargs):
57
+ config_str = str(config)
58
+ config_key = hashlib.sha256(config_str.encode()).hexdigest()
59
+ if config_key not in cls._instances:
60
+ with cls._instance_lock:
61
+ if config_key not in cls._instances:
62
+ instance = super().__new__(cls)
63
+ cls._instances[config_key] = instance
64
+
65
+ return cls._instances[config_key]
66
+
67
+
68
+ class BizyAirTaskCache(ConfigSingleton, CacheManager):
51
69
  def __init__(self, config: CacheConfig):
52
70
  self.config = config
53
71
  self.cache = OrderedDict()
@@ -180,6 +198,10 @@ class BizyAirTaskCache(CacheManager):
180
198
  if __name__ == "__main__":
181
199
  cache_config = CacheConfig(max_size=12, expiration=10, cache_dir="./cache")
182
200
  cache = BizyAirTaskCache(cache_config)
201
+ assert (
202
+ BizyAirTaskCache(CacheConfig(max_size=12, expiration=10, cache_dir="./cache"))
203
+ is cache
204
+ )
183
205
 
184
206
  # Set some cache values
185
207
  cache.set("key1", "This is the value for key1")
@@ -158,7 +158,7 @@ class BizyAirBaseNode:
158
158
  register_node(cls, PREFIX)
159
159
  cls.setup_input_types()
160
160
 
161
- # 验证FUNCTION接受**kwargs
161
+ # TODO refine 验证FUNCTION接受**kwargs
162
162
  if BIZYAIR_DEBUG:
163
163
  import inspect
164
164
 
@@ -6,4 +6,4 @@ from .path_manager import (
6
6
  guess_config,
7
7
  guess_url_from_node,
8
8
  )
9
- from .utils import filter_files_extensions
9
+ from .utils import compose_model_name, filter_files_extensions
@@ -0,0 +1,75 @@
1
+ import os
2
+ from collections.abc import Collection
3
+ from typing import Dict, Optional, Union
4
+
5
+ import yaml
6
+ from bizyengine.core.common.env_var import BIZYAIR_SERVER_ADDRESS
7
+ from bizyengine.core.configs.conf import config_manager
8
+
9
+
10
+ def compose_model_name(
11
+ model_version_id: str = "", fallback_name: Optional[str] = None
12
+ ) -> str:
13
+ """Generate standardized model name from version ID.
14
+
15
+ Args:
16
+ model_version_id: Model version identifier (empty string or None treated as missing)
17
+ fallback_name: Default name to use when version ID is missing
18
+
19
+ Returns:
20
+ Formatted model name (either prefixed ID or default)
21
+
22
+ Raises:
23
+ ValueError: If both model_version_id and default are missing
24
+ RuntimeError: If configuration manager fails to provide prefix
25
+ """
26
+ # Handle missing version ID case
27
+ if not model_version_id: # Covers None, empty string, etc.
28
+ if fallback_name is None:
29
+ raise ValueError("Missing model_version_id with no default provided")
30
+ return fallback_name
31
+
32
+ # Validate ID format (adjust regex pattern as needed)
33
+ if not isinstance(model_version_id, str):
34
+ raise TypeError(
35
+ f"model_version_id must be string, got {type(model_version_id)}"
36
+ )
37
+
38
+ # Safely retrieve configuration prefix
39
+ try:
40
+ prefix = config_manager.get_model_version_id_prefix()
41
+ except AttributeError as e:
42
+ raise RuntimeError("Configuration manager missing required method") from e
43
+ except Exception as e:
44
+ raise RuntimeError(f"Failed to retrieve model prefix: {str(e)}") from e
45
+
46
+ # Construct final model name
47
+ return f"{prefix}{model_version_id}"
48
+
49
+
50
+ def filter_files_extensions(
51
+ files: Collection[str], extensions: Collection[str]
52
+ ) -> list[str]:
53
+ return sorted(
54
+ list(
55
+ filter(
56
+ lambda a: os.path.splitext(a)[-1].lower() in extensions
57
+ or len(extensions) == 0,
58
+ files,
59
+ )
60
+ )
61
+ )
62
+
63
+
64
+ def load_yaml_config(file_path):
65
+ with open(file_path, "r") as file:
66
+ config = yaml.safe_load(file)
67
+ return config
68
+
69
+
70
+ def get_service_route(service_config: Dict[str, str]) -> Union[str, None]:
71
+ if {"route"}.issubset(service_config):
72
+ return str(
73
+ service_config.get("service_address", BIZYAIR_SERVER_ADDRESS)
74
+ ) + service_config.get("route")
75
+ return None
@@ -160,7 +160,7 @@ class BizyAir_CheckpointLoaderSimple(BizyAirBaseNode):
160
160
  }
161
161
 
162
162
  RETURN_TYPES = (data_types.MODEL, data_types.CLIP, data_types.VAE)
163
- # FUNCTION = "load_checkpoint"
163
+ FUNCTION = "load_checkpoint"
164
164
  CATEGORY = f"{PREFIX}/loaders"
165
165
  RETURN_NAMES = (
166
166
  f"model",
@@ -178,7 +178,7 @@ class BizyAir_CheckpointLoaderSimple(BizyAirBaseNode):
178
178
  return False
179
179
  return True
180
180
 
181
- def load_checkpoint(self, ckpt_name, model_version_id=""):
181
+ def load_checkpoint(self, ckpt_name, model_version_id="", **kwargs):
182
182
  if model_version_id != "":
183
183
  # use model version id as lora name
184
184
  ckpt_name = (
@@ -472,7 +472,7 @@ class BizyAir_ControlNetLoader(BizyAirBaseNode):
472
472
 
473
473
  RETURN_TYPES = (data_types.CONTROL_NET,)
474
474
  RETURN_NAMES = ("CONTROL_NET",)
475
- # FUNCTION = "load_controlnet"
475
+ FUNCTION = "load_controlnet"
476
476
 
477
477
  CATEGORY = f"{PREFIX}/loaders"
478
478
 
@@ -484,7 +484,7 @@ class BizyAir_ControlNetLoader(BizyAirBaseNode):
484
484
  return True
485
485
  return True
486
486
 
487
- def load_controlnet(self, control_net_name, model_version_id):
487
+ def load_controlnet(self, control_net_name, model_version_id, **kwargs):
488
488
  if model_version_id is not None and model_version_id != "":
489
489
  control_net_name = (
490
490
  f"{config_manager.get_model_version_id_prefix()}{model_version_id}"
@@ -0,0 +1 @@
1
+ 1.2.10
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bizyengine
3
- Version: 1.2.8
3
+ Version: 1.2.10
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,34 +0,0 @@
1
- import os
2
- from collections.abc import Collection
3
- from typing import Dict, Union
4
-
5
- import yaml
6
- from bizyengine.core.common.env_var import BIZYAIR_SERVER_ADDRESS
7
-
8
-
9
- def filter_files_extensions(
10
- files: Collection[str], extensions: Collection[str]
11
- ) -> list[str]:
12
- return sorted(
13
- list(
14
- filter(
15
- lambda a: os.path.splitext(a)[-1].lower() in extensions
16
- or len(extensions) == 0,
17
- files,
18
- )
19
- )
20
- )
21
-
22
-
23
- def load_yaml_config(file_path):
24
- with open(file_path, "r") as file:
25
- config = yaml.safe_load(file)
26
- return config
27
-
28
-
29
- def get_service_route(service_config: Dict[str, str]) -> Union[str, None]:
30
- if {"route"}.issubset(service_config):
31
- return str(
32
- service_config.get("service_address", BIZYAIR_SERVER_ADDRESS)
33
- ) + service_config.get("route")
34
- return None
@@ -1 +0,0 @@
1
- 1.2.8
File without changes
File without changes
File without changes
File without changes