bizyengine 1.2.9__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.9 → bizyengine-1.2.10}/PKG-INFO +1 -1
  2. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_wan_i2v.py +18 -6
  3. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/common/caching.py +23 -1
  4. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/nodes_base.py +1 -1
  5. {bizyengine-1.2.9 → 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.10/bizyengine/version.txt +1 -0
  8. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine.egg-info/PKG-INFO +1 -1
  9. bizyengine-1.2.9/bizyengine/core/path_utils/utils.py +0 -34
  10. bizyengine-1.2.9/bizyengine/version.txt +0 -1
  11. {bizyengine-1.2.9 → bizyengine-1.2.10}/MANIFEST.in +0 -0
  12. {bizyengine-1.2.9 → bizyengine-1.2.10}/README.md +0 -0
  13. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/__init__.py +0 -0
  14. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizy_server/__init__.py +0 -0
  15. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizy_server/api_client.py +0 -0
  16. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizy_server/errno.py +0 -0
  17. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizy_server/error_handler.py +0 -0
  18. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizy_server/execution.py +0 -0
  19. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizy_server/profile.py +0 -0
  20. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizy_server/resp.py +0 -0
  21. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizy_server/server.py +0 -0
  22. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizy_server/stream_response.py +0 -0
  23. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizy_server/utils.py +0 -0
  24. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/__init__.py +0 -0
  25. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_advanced_refluxcontrol.py +0 -0
  26. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_cogview4.py +0 -0
  27. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_comfyui_detail_daemon.py +0 -0
  28. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_comfyui_instantid.py +0 -0
  29. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_comfyui_layerstyle_advance.py +0 -0
  30. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_comfyui_pulid_flux.py +0 -0
  31. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_controlnet.py +0 -0
  32. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_custom_sampler.py +0 -0
  33. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_dataset.py +0 -0
  34. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_differential_diffusion.py +0 -0
  35. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_flux.py +0 -0
  36. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_image_utils.py +0 -0
  37. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_ip2p.py +0 -0
  38. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_ipadapter_plus/__init__.py +0 -0
  39. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_ipadapter_plus/nodes_ipadapter_plus.py +0 -0
  40. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_janus_pro.py +0 -0
  41. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_kolors_mz/__init__.py +0 -0
  42. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_model_advanced.py +0 -0
  43. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_nunchaku.py +0 -0
  44. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_sd3.py +0 -0
  45. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_segment_anything.py +0 -0
  46. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_segment_anything_utils.py +0 -0
  47. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_testing_utils.py +0 -0
  48. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_trellis.py +0 -0
  49. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_ultimatesdupscale.py +0 -0
  50. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_upscale_model.py +0 -0
  51. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/nodes_wan_video.py +0 -0
  52. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/oauth_callback/main.py +0 -0
  53. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/bizyair_extras/route_bizyair_tools.py +0 -0
  54. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/__init__.py +0 -0
  55. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/commands/__init__.py +0 -0
  56. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/commands/base.py +0 -0
  57. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/commands/invoker.py +0 -0
  58. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/commands/processors/model_hosting_processor.py +0 -0
  59. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/commands/processors/prompt_processor.py +0 -0
  60. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/commands/servers/model_server.py +0 -0
  61. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/commands/servers/prompt_server.py +0 -0
  62. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/common/__init__.py +0 -0
  63. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/common/client.py +0 -0
  64. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/common/env_var.py +0 -0
  65. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/common/utils.py +0 -0
  66. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/configs/conf.py +0 -0
  67. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/configs/models.json +0 -0
  68. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/configs/models.yaml +0 -0
  69. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/data_types.py +0 -0
  70. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/image_utils.py +0 -0
  71. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/nodes_io.py +0 -0
  72. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/core/path_utils/path_manager.py +0 -0
  73. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/misc/__init__.py +0 -0
  74. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/misc/auth.py +0 -0
  75. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/misc/llm.py +0 -0
  76. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/misc/mzkolors.py +0 -0
  77. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/misc/nodes.py +0 -0
  78. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/misc/nodes_controlnet_aux.py +0 -0
  79. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/misc/nodes_controlnet_union_sdxl.py +0 -0
  80. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/misc/route_sam.py +0 -0
  81. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/misc/segment_anything.py +0 -0
  82. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/misc/supernode.py +0 -0
  83. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine/misc/utils.py +0 -0
  84. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine.egg-info/SOURCES.txt +0 -0
  85. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine.egg-info/dependency_links.txt +0 -0
  86. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine.egg-info/requires.txt +0 -0
  87. {bizyengine-1.2.9 → bizyengine-1.2.10}/bizyengine.egg-info/top_level.txt +0 -0
  88. {bizyengine-1.2.9 → bizyengine-1.2.10}/pyproject.toml +0 -0
  89. {bizyengine-1.2.9 → 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.9
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
@@ -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.9
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.9
File without changes
File without changes
File without changes
File without changes