bizydraft 0.2.78.dev20251030100819__py3-none-any.whl → 0.2.82.dev20251209023307__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.
@@ -0,0 +1,129 @@
1
+ import { app } from "../../../scripts/app.js";
2
+
3
+ // 简单的链式callback实现(类似useChainCallback)
4
+ function chainCallback(originalCallback, newCallback) {
5
+ return function (...args) {
6
+ if (originalCallback) {
7
+ originalCallback.apply(this, args);
8
+ }
9
+ newCallback.apply(this, args);
10
+ };
11
+ }
12
+
13
+ app.registerExtension({
14
+ name: "bizyair.hailuo.limitTimeRange",
15
+ nodeCreated(node, app) {
16
+ console.log(node.title);
17
+ // 只处理 BizyAir_Hailuo2_3_T2V 节点
18
+ if (
19
+ node.title !== "☁️BizyAir Hailuo2.3 Image To Video" &&
20
+ node.title !== "☁️BizyAir Hailuo2.3 Text To Video"
21
+ ) {
22
+ return;
23
+ }
24
+ console.log(node.title , `开始处理`);
25
+ // 延迟执行,确保 widget 完全初始化
26
+ setTimeout(() => {
27
+ try {
28
+ const resolutionWidget = node.widgets?.find(
29
+ (w) => w.name === "resolution"
30
+ );
31
+ const durationWidget = node.widgets?.find((w) => w.name === "duration");
32
+
33
+ if (!resolutionWidget || !durationWidget) {
34
+ console.warn("[Hailuo2_3_T2V] 未找到 resolution 或 duration widget");
35
+ return;
36
+ }
37
+
38
+ // 保存 duration widget 的原始选项值
39
+ const originalDurationValues = durationWidget.options?.values
40
+ ? Array.isArray(durationWidget.options.values)
41
+ ? [...durationWidget.options.values]
42
+ : typeof durationWidget.options.values === "function"
43
+ ? durationWidget.options.values()
44
+ : []
45
+ : [];
46
+
47
+ // 如果没有原始值,无法继续
48
+ if (!originalDurationValues || originalDurationValues.length === 0) {
49
+ console.warn("[Hailuo2_3_T2V] duration widget 没有可用的选项值");
50
+ return;
51
+ }
52
+
53
+ // 更新 duration 选项的函数
54
+ const updateDurationOptions = () => {
55
+ const resolutionValue = resolutionWidget.value;
56
+ // 支持 "1080p"、"1080P" 等大小写变体
57
+ const is1080p =
58
+ resolutionValue === "1080p" ||
59
+ resolutionValue === "1080P" ||
60
+ String(resolutionValue).toUpperCase() === "1080P";
61
+
62
+ // 直接修改 widget.options.values 数组
63
+ if (!durationWidget.options) {
64
+ durationWidget.options = {};
65
+ }
66
+
67
+ if (is1080p) {
68
+ // 如果是 1080p,从 values 数组中删除 10
69
+ if (Array.isArray(durationWidget.options.values)) {
70
+ // 找到 10 的索引并删除
71
+ const index = durationWidget.options.values.indexOf(10);
72
+ if (index !== -1) {
73
+ durationWidget.options.values.splice(index, 1);
74
+ }
75
+ } else {
76
+ // 如果不是数组,重新创建数组并过滤掉 10
77
+ durationWidget.options.values = originalDurationValues.filter(
78
+ (val) => val !== 10
79
+ );
80
+ }
81
+ } else {
82
+ // 如果不是 1080p,恢复原始值(包括 10)
83
+ durationWidget.options.values = [...originalDurationValues];
84
+ }
85
+
86
+ // 检查当前值是否在新的 values 中,如果不在则调整为第一个可用值
87
+ const currentValue = durationWidget.value;
88
+ const valuesArray = Array.isArray(durationWidget.options.values)
89
+ ? durationWidget.options.values
90
+ : [];
91
+
92
+ if (valuesArray.length > 0 && !valuesArray.includes(currentValue)) {
93
+ const newValue = valuesArray[0];
94
+ durationWidget.value = newValue;
95
+ // 触发 callback
96
+ if (durationWidget.callback) {
97
+ durationWidget.callback.call(durationWidget, newValue);
98
+ }
99
+ }
100
+
101
+ // 触发节点和画布更新,确保 UI 刷新
102
+ if (node.setDirtyCanvas) {
103
+ node.setDirtyCanvas(true, true);
104
+ }
105
+ if (node.graph && node.graph.setDirtyCanvas) {
106
+ node.graph.setDirtyCanvas(true, true);
107
+ }
108
+ };
109
+
110
+ // 保存原始的 resolution callback
111
+ const originalResolutionCallback = resolutionWidget.callback;
112
+
113
+ // 使用 chainCallback 包装 resolution callback,监听变化
114
+ resolutionWidget.callback = chainCallback(
115
+ originalResolutionCallback,
116
+ function (value) {
117
+ // 更新 duration 选项
118
+ updateDurationOptions();
119
+ }
120
+ );
121
+
122
+ // 初始化时执行一次,确保选项正确
123
+ updateDurationOptions();
124
+ } catch (error) {
125
+ console.error("[Hailuo2_3_T2V] 初始化时间范围限制失败:", error);
126
+ }
127
+ }, 200);
128
+ },
129
+ });
@@ -1,6 +1,9 @@
1
1
  // 主入口文件,导入所有模块
2
2
  import "./disableComfyWebSocket.js";
3
- import "./hookLoadMedia.js";
3
+ import "./hookLoadImage.js";
4
4
  import "./postEvent.js";
5
5
  import "./handleStyle.js";
6
6
  import "./clipspaceToOss.js";
7
+ import "./aspectRatio.js";
8
+ import "./imageUpload.js";
9
+ import "./limitTimeRange.js";
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bizydraft
3
- Version: 0.2.78.dev20251030100819
3
+ Version: 0.2.82.dev20251209023307
4
4
  Summary: bizydraft
5
5
  Requires-Dist: loguru
6
6
  Requires-Dist: aiohttp
@@ -2,22 +2,25 @@ bizydraft/__init__.py,sha256=OM-sKCQrPh25nHVJIX-DgF1raMYyoWLSuyduIAHt0Gs,78
2
2
  bizydraft/block_nodes.py,sha256=Lqn3oSCaGDHR2OICc8a2iRoRCVVK9v1-9MM3r-qIZgA,1092
3
3
  bizydraft/env.py,sha256=VFmGopVL2TGWA6hwxyFhIglCEcQxy6iVvL_raMNd6u4,407
4
4
  bizydraft/hijack_nodes.py,sha256=riHsp4DhU60E60bfXUl8kVqjs1QvQWmx_FsgQAdWTa4,4197
5
- bizydraft/hijack_routes.py,sha256=TVK7zdSIe4wN5dusjnAr1we43K6B_Zup5-dWcBj5rxo,3545
6
- bizydraft/oss_utils.py,sha256=XM08pOXGo2jsJlJYmctjL9ZSLUZK8NZuhHCUROXt6GA,16171
7
- bizydraft/patch_handlers.py,sha256=JWIEK4yKOPpzs3KLAiBCEYfBohyoVUOdlsVOTt3ULeY,9657
5
+ bizydraft/hijack_routes.py,sha256=j7i9xAfaWvcu-mSoDISQyEwdERd0y-GFhvY2To7MRTU,5015
6
+ bizydraft/oss_utils.py,sha256=_UzbS4e_MW5UynkQd2JI6edfdWxStm-Kbt6k7CvJJGA,16663
7
+ bizydraft/patch_handlers.py,sha256=cP6gIYBYghWXI72hBbz3BbQHP1O5IvslS8iNK29MEbI,14159
8
8
  bizydraft/postload.py,sha256=XFElKcmCajT_oO7SVJJBaN04XcWro54N5HB5cSCxfvI,1308
9
9
  bizydraft/prestartup_patch.py,sha256=4FGjmRcDHELjtlQOrfTfk2Un5OS89QIqfq-gEcB9WDs,998
10
10
  bizydraft/resp.py,sha256=8INvKOe5Dgai3peKfqKjrhUoYeuXWXn358w30-_cY-A,369
11
11
  bizydraft/server.py,sha256=L2zoJgOisr65IRphOyko74AdsLel59gh55peyMaUrO8,2102
12
12
  bizydraft/workflow_io.py,sha256=MYhJbpgkv8hrA5k_aolijOTrWpTtu62nzRznA4hv8JE,4298
13
13
  bizydraft/static/js/aiAppHandler.js,sha256=OQRhhoqvc8iZeCvHTtdaD2VTYBGzkeAGdCk1UMO2RZs,17525
14
- bizydraft/static/js/clipspaceToOss.js,sha256=brfEPs71Tky5Dnc47UXNEFeFlESDE3kQvUH8ducpIew,14265
14
+ bizydraft/static/js/aspectRatio.js,sha256=p--C62sTd2QLywa0KpB4T0QI-n7FXv8dO_6Tkl8vtdk,27943
15
+ bizydraft/static/js/clipspaceToOss.js,sha256=zTXYzop4Gx0k0NA1MiWUA_J4RKq75tA_wQSroBASCyg,16177
15
16
  bizydraft/static/js/disableComfyWebSocket.js,sha256=ZDOVlU3v3EvWpMRkD8s_AnO43vuWojVLLjkF2pNEVrA,1957
16
17
  bizydraft/static/js/freezeModeHandler.js,sha256=SjpHD2nYymR-E13B0YcqkA6e4WycZOVI3c48Ts9qvWE,18027
17
- bizydraft/static/js/handleStyle.js,sha256=YvafKzypgXH8nD-7Fwwf_lXUSU80OWk7D4Emqj-PV88,3700
18
- bizydraft/static/js/hookLoadMedia.js,sha256=JYKKqapidi6PUIyRhyPhdGNqQW90nnLANk6qnvojIlU,17725
19
- bizydraft/static/js/hookLoadModel.js,sha256=VeDjnL67ncMvQTAh7WmdchzB_bTbj6dqlDR83wXUDN4,6726
20
- bizydraft/static/js/main.js,sha256=-pMeAG8vkKO6yq9zXCeHI78KezGn0r9AhYm65DuZrVI,188
18
+ bizydraft/static/js/handleStyle.js,sha256=GPshFVoa70UxLwFQB-kXZldVREE0cEF-BxxIM44ngkc,5436
19
+ bizydraft/static/js/hookLoadMedia.js,sha256=EYDuitzOFvlNzM_e4IdE0-wXHQfnyCx7KrwzoxVTdr0,6363
20
+ bizydraft/static/js/hookLoadModel.js,sha256=gY4D77DqVDzpuQZlqgqcUrL0Yho3koyR_lOHLyiqGfc,8204
21
+ bizydraft/static/js/imageUpload.js,sha256=S7YY4jaaZq83epWyT5_s4GOCa2vC_-4MwWMg3HVHyCU,4178
22
+ bizydraft/static/js/limitTimeRange.js,sha256=Bz-qHOfqUZk0zr8HYfuR3AzCYjUJHUvp8CdYLu0o6Ic,4619
23
+ bizydraft/static/js/main.js,sha256=LaIbmXPOsKrXzwsQRaXE7HXXyw_q0FcXX492ik-f0F0,272
21
24
  bizydraft/static/js/nodeFocusHandler.js,sha256=24xXbS4Q-GjJdRqf11i-1pBo8MkOJ24F7MHFV44EG6Q,4683
22
25
  bizydraft/static/js/nodeParamsFilter.js,sha256=H7lBB0G8HNqoGhOCH1hNXqPU-rPlrFyTxg_f_JgLEMk,4168
23
26
  bizydraft/static/js/postEvent.js,sha256=_EyA71m5DwGbhHsuf1amKhpLUBxfBWZaMMxViNhuYzU,43481
@@ -26,9 +29,9 @@ bizydraft/static/js/tool.js,sha256=2Hhv2J18OaFZRWmHIlseahjd5Ot7ZVxUPb5z46YeXIo,2
26
29
  bizydraft/static/js/uploadFile.js,sha256=WvglKzHMeOzDhOH3P-fLcPHxCLbKOJpo4DntoRxeJtI,4908
27
30
  bizydraft/static/js/workflow_io.js,sha256=FWAjncvWhvy-3nN_legD2fpRwgnIncpRLHU5X016a-U,5236
28
31
  bizydraft/static/js/hookLoad/configLoader.js,sha256=R1k0GKdEmv4IIxdT2F-oOI9X9I19ECe77P_1tO3XxgY,2525
29
- bizydraft/static/js/hookLoad/media.js,sha256=_JhQhXmNiwfCEBtrQLrsIhEzdjL_mdY-9s5bXXjzB7Y,2439
32
+ bizydraft/static/js/hookLoad/media.js,sha256=iX_zoZ0OzLAdYZ3bn5GpzpnwU-YjcBuEozQt-MwNuwk,17936
30
33
  bizydraft/static/js/hookLoad/model.js,sha256=aHvEPt9k3CcrawHSYnQYcvbtTRwIztk-XDRA3lvgXvA,9890
31
- bizydraft-0.2.78.dev20251030100819.dist-info/METADATA,sha256=pe11bzcezv005LAhUDOgsK0C8MWfi8Oxrz9DUKJf494,180
32
- bizydraft-0.2.78.dev20251030100819.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
33
- bizydraft-0.2.78.dev20251030100819.dist-info/top_level.txt,sha256=XtoBq6hjZhXIM7aas4GtPDtAiKo8FdLzMABXW8qqQ8M,10
34
- bizydraft-0.2.78.dev20251030100819.dist-info/RECORD,,
34
+ bizydraft-0.2.82.dev20251209023307.dist-info/METADATA,sha256=aD-Dv6wd_rBGaWBYs62q5ts7qtZad8PV0I9dh1k_tik,180
35
+ bizydraft-0.2.82.dev20251209023307.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
36
+ bizydraft-0.2.82.dev20251209023307.dist-info/top_level.txt,sha256=XtoBq6hjZhXIM7aas4GtPDtAiKo8FdLzMABXW8qqQ8M,10
37
+ bizydraft-0.2.82.dev20251209023307.dist-info/RECORD,,