bizyengine 1.2.6__tar.gz → 1.2.7__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 (88) hide show
  1. {bizyengine-1.2.6 → bizyengine-1.2.7}/PKG-INFO +1 -1
  2. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/__init__.py +1 -0
  3. bizyengine-1.2.7/bizyengine/bizyair_extras/nodes_wan_i2v.py +222 -0
  4. bizyengine-1.2.7/bizyengine/version.txt +1 -0
  5. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine.egg-info/PKG-INFO +1 -1
  6. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine.egg-info/SOURCES.txt +1 -0
  7. bizyengine-1.2.6/bizyengine/version.txt +0 -1
  8. {bizyengine-1.2.6 → bizyengine-1.2.7}/MANIFEST.in +0 -0
  9. {bizyengine-1.2.6 → bizyengine-1.2.7}/README.md +0 -0
  10. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/__init__.py +0 -0
  11. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizy_server/__init__.py +0 -0
  12. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizy_server/api_client.py +0 -0
  13. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizy_server/errno.py +0 -0
  14. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizy_server/error_handler.py +0 -0
  15. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizy_server/execution.py +0 -0
  16. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizy_server/profile.py +0 -0
  17. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizy_server/resp.py +0 -0
  18. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizy_server/server.py +0 -0
  19. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizy_server/stream_response.py +0 -0
  20. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizy_server/utils.py +0 -0
  21. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_advanced_refluxcontrol.py +0 -0
  22. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_cogview4.py +0 -0
  23. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_comfyui_detail_daemon.py +0 -0
  24. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_comfyui_instantid.py +0 -0
  25. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_comfyui_layerstyle_advance.py +0 -0
  26. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_comfyui_pulid_flux.py +0 -0
  27. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_controlnet.py +0 -0
  28. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_custom_sampler.py +0 -0
  29. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_dataset.py +0 -0
  30. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_differential_diffusion.py +0 -0
  31. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_flux.py +0 -0
  32. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_image_utils.py +0 -0
  33. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_ip2p.py +0 -0
  34. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_ipadapter_plus/__init__.py +0 -0
  35. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_ipadapter_plus/nodes_ipadapter_plus.py +0 -0
  36. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_janus_pro.py +0 -0
  37. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_kolors_mz/__init__.py +0 -0
  38. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_model_advanced.py +0 -0
  39. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_nunchaku.py +0 -0
  40. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_sd3.py +0 -0
  41. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_segment_anything.py +0 -0
  42. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_segment_anything_utils.py +0 -0
  43. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_testing_utils.py +0 -0
  44. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_trellis.py +0 -0
  45. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_ultimatesdupscale.py +0 -0
  46. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_upscale_model.py +0 -0
  47. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_wan_video.py +0 -0
  48. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/oauth_callback/main.py +0 -0
  49. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/bizyair_extras/route_bizyair_tools.py +0 -0
  50. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/__init__.py +0 -0
  51. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/commands/__init__.py +0 -0
  52. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/commands/base.py +0 -0
  53. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/commands/invoker.py +0 -0
  54. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/commands/processors/model_hosting_processor.py +0 -0
  55. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/commands/processors/prompt_processor.py +0 -0
  56. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/commands/servers/model_server.py +0 -0
  57. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/commands/servers/prompt_server.py +0 -0
  58. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/common/__init__.py +0 -0
  59. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/common/caching.py +0 -0
  60. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/common/client.py +0 -0
  61. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/common/env_var.py +0 -0
  62. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/common/utils.py +0 -0
  63. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/configs/conf.py +0 -0
  64. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/configs/models.json +0 -0
  65. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/configs/models.yaml +0 -0
  66. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/data_types.py +0 -0
  67. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/image_utils.py +0 -0
  68. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/nodes_base.py +0 -0
  69. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/nodes_io.py +0 -0
  70. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/path_utils/__init__.py +0 -0
  71. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/path_utils/path_manager.py +0 -0
  72. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/core/path_utils/utils.py +0 -0
  73. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/misc/__init__.py +0 -0
  74. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/misc/auth.py +0 -0
  75. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/misc/llm.py +0 -0
  76. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/misc/mzkolors.py +0 -0
  77. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/misc/nodes.py +0 -0
  78. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/misc/nodes_controlnet_aux.py +0 -0
  79. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/misc/nodes_controlnet_union_sdxl.py +0 -0
  80. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/misc/route_sam.py +0 -0
  81. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/misc/segment_anything.py +0 -0
  82. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/misc/supernode.py +0 -0
  83. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine/misc/utils.py +0 -0
  84. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine.egg-info/dependency_links.txt +0 -0
  85. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine.egg-info/requires.txt +0 -0
  86. {bizyengine-1.2.6 → bizyengine-1.2.7}/bizyengine.egg-info/top_level.txt +0 -0
  87. {bizyengine-1.2.6 → bizyengine-1.2.7}/pyproject.toml +0 -0
  88. {bizyengine-1.2.6 → bizyengine-1.2.7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bizyengine
3
- Version: 1.2.6
3
+ Version: 1.2.7
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
@@ -22,5 +22,6 @@ from .nodes_testing_utils import *
22
22
  from .nodes_trellis import *
23
23
  from .nodes_ultimatesdupscale import *
24
24
  from .nodes_upscale_model import *
25
+ from .nodes_wan_i2v import *
25
26
  from .nodes_wan_video import *
26
27
  from .route_bizyair_tools import *
@@ -0,0 +1,222 @@
1
+ import json
2
+ import time
3
+ import warnings
4
+
5
+ import requests
6
+
7
+ try:
8
+ from comfy_api_nodes.apinode_utils import (
9
+ download_url_to_video_output,
10
+ tensor_to_base64_string,
11
+ )
12
+ except ModuleNotFoundError as e:
13
+ download_url_to_video_output = None
14
+ tensor_to_base64_string = None
15
+
16
+ ERROR_MSG = f"Error {e} ComfyUI API nodes module not found. Please ensure you have ComfyUI version 0.3.36 or later installed."
17
+
18
+ warnings.warn(ERROR_MSG)
19
+
20
+
21
+ from ..core.common import client
22
+ from ..core.common.env_var import BIZYAIR_DEBUG
23
+ from ..core.nodes_base import BizyAirBaseNode
24
+
25
+
26
+ class WanApiNodeBase:
27
+ MODEL_ENDPOINTS = {
28
+ "Wan-AI/Wan2.1-I2V-14B-480P-Diffusers": "https://bizyair-api.siliconflow.cn/x/v1/supernode/faas-wan-i2v-14b-480p-server"
29
+ }
30
+
31
+
32
+ class Wan_LoraLoader(BizyAirBaseNode):
33
+
34
+ @classmethod
35
+ def INPUT_TYPES(cls):
36
+ return {
37
+ "required": {
38
+ "lora_name": (
39
+ "STRING",
40
+ {
41
+ "multiline": True,
42
+ "default": "https://huggingface.co/Remade-AI/Squish/resolve/main/squish_18.safetensors",
43
+ "tooltip": "LoRA 模型下载地址",
44
+ },
45
+ ),
46
+ },
47
+ "optional": {
48
+ "lora_weight": (
49
+ "FLOAT",
50
+ {
51
+ "default": 1,
52
+ "min": 0.0,
53
+ "max": 1.0,
54
+ "step": 0.05,
55
+ "tooltip": "LoRA权重强度",
56
+ },
57
+ )
58
+ },
59
+ }
60
+
61
+ RETURN_TYPES = ("LORA_CONFIG",)
62
+ RETURN_NAMES = ("lora_config",)
63
+ FUNCTION = "apply_lora"
64
+ CATEGORY = "Diffusers/WAN Video Generation"
65
+
66
+ def apply_lora(self, lora_name, lora_weight=0.75):
67
+ return ([(lora_name, lora_weight)],)
68
+
69
+
70
+ class Wan_ImageToVideoPipeline(WanApiNodeBase, BizyAirBaseNode):
71
+
72
+ POLLING_INTERVAL = 10 # sec
73
+ MAX_POLLING_TIME = 60 * 20 # sec
74
+
75
+ @classmethod
76
+ def INPUT_TYPES(s):
77
+ return {
78
+ "required": {
79
+ "image": (
80
+ "IMAGE",
81
+ {
82
+ "default": None,
83
+ "tooltip": "Optional reference image to guide video generation",
84
+ },
85
+ ),
86
+ "model_id": (["Wan-AI/Wan2.1-I2V-14B-480P-Diffusers"],),
87
+ "prompt": (
88
+ "STRING",
89
+ {
90
+ "multiline": True,
91
+ "default": "",
92
+ "tooltip": "Text description of the video",
93
+ },
94
+ ),
95
+ },
96
+ "optional": {
97
+ "negative_prompt": (
98
+ "STRING",
99
+ {
100
+ "multiline": True,
101
+ "default": "",
102
+ "tooltip": "Negative text prompt to guide what to avoid in the video",
103
+ },
104
+ ),
105
+ "steps": ("INT", {"default": 30, "min": 1, "max": 40}),
106
+ "cfg": (
107
+ "FLOAT",
108
+ {
109
+ "default": 6.0,
110
+ "min": 0.0,
111
+ "max": 100.0,
112
+ "step": 0.1,
113
+ "round": 0.01,
114
+ },
115
+ ),
116
+ "seed": (
117
+ "INT",
118
+ {
119
+ "default": 0,
120
+ "min": 0,
121
+ "max": 0xFFFFFFFF,
122
+ "step": 1,
123
+ "display": "number",
124
+ "control_after_generate": True,
125
+ "tooltip": "Seed for video generation (0 for random)",
126
+ },
127
+ ),
128
+ "use_teacache": (["enable", "disable"],),
129
+ "lora_config": ("LORA_CONFIG", {}),
130
+ },
131
+ }
132
+
133
+ RETURN_TYPES = ("VIDEO",)
134
+
135
+ FUNCTION = "generate_video"
136
+ CATEGORY = "Diffusers/WAN Video Generation"
137
+
138
+ def _encode_image(self, image_tensor):
139
+ # https://docs.comfy.org/custom-nodes/backend/snippets
140
+ tensor_to_base64_string(image_tensor=image_tensor, mime_type="image/webp")
141
+ base64_str = "data:image/webp;base64," + tensor_to_base64_string(
142
+ image_tensor=image_tensor, mime_type="image/webp"
143
+ )
144
+ return base64_str
145
+
146
+ def _prepare_headers(self):
147
+ headers = client._headers()
148
+ headers["X-Fn-Task-Mode"] = "non-blocking"
149
+ return headers
150
+
151
+ def _send_initial_request(self, endpoint, request_data):
152
+ headers = self._prepare_headers()
153
+ response = client.send_request(
154
+ url=endpoint,
155
+ data=json.dumps({"prompt": request_data}).encode(),
156
+ headers=headers,
157
+ )
158
+ return response["query_url"]
159
+
160
+ def _poll_for_completion(self, query_url):
161
+ start_time = time.time()
162
+ headers = self._prepare_headers()
163
+
164
+ while time.time() - start_time < self.MAX_POLLING_TIME:
165
+ response = requests.get(query_url, headers=headers)
166
+ try:
167
+ response_data = response.json()
168
+ if response_data["data_status"] == "COMPLETED":
169
+ return response_data
170
+ time.sleep(self.POLLING_INTERVAL)
171
+ except (json.JSONDecodeError, KeyError) as e:
172
+ if BIZYAIR_DEBUG:
173
+ print(
174
+ f"Response parsing error: {e} | Raw response: {response.text}"
175
+ )
176
+ time.sleep(self.POLLING_INTERVAL)
177
+
178
+ raise TimeoutError("Task processing timeout")
179
+
180
+ def _process_result(self, result_data):
181
+ video_url = result_data["data"]["payload"]
182
+ return (download_url_to_video_output(video_url),)
183
+
184
+ def generate_video(
185
+ self,
186
+ model_id: str,
187
+ prompt: str,
188
+ negative_prompt: str = "",
189
+ seed: int = 0,
190
+ image=None,
191
+ lora_config=[],
192
+ use_teacache="enable",
193
+ **kwargs,
194
+ ):
195
+ if download_url_to_video_output is None or tensor_to_base64_string is None:
196
+ raise ImportError(ERROR_MSG)
197
+
198
+ req_dict = {}
199
+ req_dict["guidance_scale"] = kwargs.pop("cfg", 6.0)
200
+ req_dict["num_inference_steps"] = kwargs.pop("steps", 30)
201
+ req_dict["prompt"] = prompt
202
+ req_dict["negative_prompt"] = negative_prompt
203
+ req_dict["seed"] = seed
204
+ if lora_config:
205
+ if len(lora_config) > 1:
206
+ raise NotImplementedError(f"TODO, tmp only support one lora")
207
+ req_dict["lora_name_list"] = [x[0] for x in lora_config]
208
+ req_dict["lora_weight_list"] = [x[1] for x in lora_config]
209
+ else:
210
+ req_dict["lora_name_list"] = []
211
+ req_dict["lora_weight_list"] = []
212
+
213
+ if use_teacache == "enable":
214
+ req_dict["teacache"] = 0.3
215
+ else:
216
+ req_dict["teacache"] = 0
217
+
218
+ req_dict["image"] = self._encode_image(image_tensor=image)
219
+ endpoint = self.MODEL_ENDPOINTS[model_id]
220
+ query_url = self._send_initial_request(endpoint, request_data=req_dict)
221
+ result = self._poll_for_completion(query_url)
222
+ return self._process_result(result)
@@ -0,0 +1 @@
1
+ 1.2.7
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bizyengine
3
- Version: 1.2.6
3
+ Version: 1.2.7
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
@@ -42,6 +42,7 @@ bizyengine/bizyair_extras/nodes_testing_utils.py
42
42
  bizyengine/bizyair_extras/nodes_trellis.py
43
43
  bizyengine/bizyair_extras/nodes_ultimatesdupscale.py
44
44
  bizyengine/bizyair_extras/nodes_upscale_model.py
45
+ bizyengine/bizyair_extras/nodes_wan_i2v.py
45
46
  bizyengine/bizyair_extras/nodes_wan_video.py
46
47
  bizyengine/bizyair_extras/route_bizyair_tools.py
47
48
  bizyengine/bizyair_extras/nodes_ipadapter_plus/__init__.py
@@ -1 +0,0 @@
1
- 1.2.6
File without changes
File without changes
File without changes
File without changes