From 9a9239c161c566aecc65b3a7e82107ed501a4cd2 Mon Sep 17 00:00:00 2001 From: Comfy Org PR Bot Date: Sun, 21 Dec 2025 06:02:30 +0900 Subject: [PATCH] [backport core/1.35] Make node inputs reactive in vue (#7680) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backport of #7546 to `core/1.35` Automatically created by backport workflow. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7680-backport-core-1-35-Make-node-inputs-reactive-in-vue-2cf6d73d3650818d96b0d492731ffee4) by [Unito](https://www.unito.io) Co-authored-by: AustinMroz --- src/composables/graph/useGraphNodeManager.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/composables/graph/useGraphNodeManager.ts b/src/composables/graph/useGraphNodeManager.ts index 3bf6af03f..80afa7f5b 100644 --- a/src/composables/graph/useGraphNodeManager.ts +++ b/src/composables/graph/useGraphNodeManager.ts @@ -226,6 +226,15 @@ export function useGraphNodeManager(graph: LGraph): GraphNodeManager { reactiveWidgets.splice(0, reactiveWidgets.length, ...v) } }) + const reactiveInputs = shallowReactive(node.inputs ?? []) + Object.defineProperty(node, 'inputs', { + get() { + return reactiveInputs + }, + set(v) { + reactiveInputs.splice(0, reactiveInputs.length, ...v) + } + }) const safeWidgets = reactiveComputed(() => { node.inputs?.forEach((input, index) => { @@ -260,7 +269,7 @@ export function useGraphNodeManager(graph: LGraph): GraphNodeManager { badges, hasErrors: !!node.has_errors, widgets: safeWidgets, - inputs: node.inputs ? [...node.inputs] : undefined, + inputs: reactiveInputs, outputs: node.outputs ? [...node.outputs] : undefined, flags: node.flags ? { ...node.flags } : undefined, color: node.color || undefined,