diff --git a/zhmd/v2.6.5.md b/zhmd/v2.6.5.md index 0e91044..47b8e4e 100644 --- a/zhmd/v2.6.5.md +++ b/zhmd/v2.6.5.md @@ -5,7 +5,7 @@ -**由 PR #54 贡献**:[Fix V1 LoRA widget interactions after frontend adoption](https://github.com/ussoewwin/ComfyUI-QwenImageLoraLoader/pull/54),作者 [@DrJKL](https://github.com/DrJKL)。 +**由 [PR #54](https://github.com/ussoewwin/ComfyUI-QwenImageLoraLoader/pull/54) 贡献**:[Fix V1 LoRA widget interactions after frontend adoption](https://github.com/ussoewwin/ComfyUI-QwenImageLoraLoader/pull/54),作者 [@DrJKL](https://github.com/DrJKL)。 **特别感谢**:我们非常感谢 [@DrJKL](https://github.com/DrJKL) 诊断并修复了我们完全未能发现的问题。ComfyUI 前端开始把自定义部件“采用”为具象类,静默地使 V1 堆叠的 `instanceof NunchakuLoraWidget` 判定失效;此 PR 改用节点自身已有的实时 `loraWidgets` 成员关系作为身份契约,恢复了右键行命中检测、四项菜单、行的上下移动以及载入工作流时的行清理。它是每文件仅 4 行的最小改动,并已通过针对真实前端的浏览器回归测试验证。 @@ -95,7 +95,7 @@ function adoptConcreteWidget(widget: IBaseWidget, concrete | 1.55.x(PR 回归测试所用前端 `3754918`) | 2675 字节 | 是 | 是(10423 字节) | 是 | - 分发渠道:PyPI 上最新的 `comfyui-frontend-package` 为 1.54.7(**1.55 系未发布到 PyPI**);ComfyUI_frontend 的 GitHub 发行版最新为 **v1.55.11**(2026-09-20)。`--front-end-version` 走 GitHub 发行版,默认 pip 安装使用固定的 PyPI 版本。 -- 同因上游报告:Comfy-Org/ComfyUI_frontend#17817(rgthree Fast Groups Muter,frontend 1.55.9)仍处于开启状态,即上游尚未提供通用修正。 +- 同因上游报告:[Comfy-Org/ComfyUI_frontend#17817](https://github.com/Comfy-Org/ComfyUI_frontend/issues/17817)(rgthree Fast Groups Muter,frontend 1.55.9)仍处于开启状态,即上游尚未提供通用修正。 --- @@ -103,7 +103,7 @@ function adoptConcreteWidget(widget: IBaseWidget, concrete | 项目 | 内容 | |---|---| -| PR | `ussoewwin/ComfyUI-QwenImageLoraLoader#54` | +| PR | [ussoewwin/ComfyUI-QwenImageLoraLoader#54](https://github.com/ussoewwin/ComfyUI-QwenImageLoraLoader/pull/54) | | 标题 | Fix V1 LoRA widget interactions after frontend adoption | | 作者 | DrJKL(Alexander Brown),来自 fork `DrJKL/ComfyUI-QwenImageLoraLoader`,分支 `fix/widget-identity-v1`(`maintainer_can_modify = true`) | | 提交 | `412b1028`(单提交,subject 为 `fix: preserve V1 LoRA widget behavior after adoption`;作者 `Amp `;`Co-authored-by: Alexander Brown `) | @@ -342,7 +342,7 @@ index f0903b2..bc0c563 100644 - 行的创建点是 `addLoraRow`:它执行 `new NunchakuLoraWidget(name, this)`,随后 `this.widgets.splice(btnIdx, 0, w)` 与 `this.loraWidgets.push(w)`。因此 `loraWidgets` 保存的正是 `widgets` 中的**同一批对象**。 - 采用是原地进行的(`Reflect.setPrototypeOf` + `defineProperties`),对象同一性得以保留,所以 `loraWidgets.includes(x)` 与对象同一性判断始终一致。 -- 相反,`instanceof` 依赖前端内部实现(prototype 是否被替换)。这是一种**对外部实现细节的脆弱依赖**,也正是上游报告(#17817)的共同根因。 +- 相反,`instanceof` 依赖前端内部实现(prototype 是否被替换)。这是一种**对外部实现细节的脆弱依赖**,也正是上游报告([#17817](https://github.com/Comfy-Org/ComfyUI_frontend/issues/17817))的共同根因。 ### 5.2 `this` 绑定的等价性(逐处核对) @@ -389,10 +389,10 @@ index f0903b2..bc0c563 100644 1. 该修正依赖“采用保持对象同一性”。若今后给 `NunchakuLoraWidget` 加上 `Object.freeze`/`seal` 或不可配置属性,`adoptConcreteWidget` 会退回为返回新对象,`loraWidgets` 的成员判定就会**静默失效**。 2. `getSlotInPosition` 在 `LGraphNode` 侧已被标记 `@deprecated`(替代 API 为 `getSlotOnPos`)。现行 `main` 仍走旧路径,但一旦切换,本插件的右键机制需要重新实现。 -3. 根本修正属于上游(#17817)。在正式 API 出现之前,本 PR 的做法(把节点自身的实时数组用作身份契约)是当前可用的正确方案。 +3. 根本修正属于上游([#17817](https://github.com/Comfy-Org/ComfyUI_frontend/issues/17817))。在正式 API 出现之前,本 PR 的做法(把节点自身的实时数组用作身份契约)是当前可用的正确方案。 ### 5.7 本次合并的最终状态 -- 远端 `main`:`81e38b0`(PR #54 已 MERGED,2026-09-27T04:19:30Z) +- 远端 `main`:`81e38b0`([PR #54](https://github.com/ussoewwin/ComfyUI-QwenImageLoraLoader/pull/54) 已 MERGED,2026-09-27T04:19:30Z) - 本地 `main`:`01826f8`(内容与 `origin/main` 一致,仅合并提交不同,双方各领先 1 个提交) - 运行环境:`custom_nodes/ComfyUI-QwenImageLoraLoader/js/` 下的两个文件已同步且哈希一致;生效需要重启 ComfyUI 或重新加载浏览器页面