From b38cf5a00e8e232ba1629bf51a01f0a8b8513689 Mon Sep 17 00:00:00 2001 From: Comfy Org PR Bot Date: Wed, 17 Dec 2025 05:59:10 +0900 Subject: [PATCH] [backport cloud/1.35] Fix selecting loras on cloud (#7567) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backport of #7560 to `cloud/1.35` Automatically created by backport workflow. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7567-backport-cloud-1-35-Fix-selecting-loras-on-cloud-2cb6d73d365081479a6fc918c7adf684) by [Unito](https://www.unito.io) Co-authored-by: AustinMroz --- src/composables/graph/useGraphNodeManager.ts | 6 +++--- src/renderer/extensions/vueNodes/components/NodeWidgets.vue | 6 +----- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/composables/graph/useGraphNodeManager.ts b/src/composables/graph/useGraphNodeManager.ts index a1e3b94471..10ab4fd946 100644 --- a/src/composables/graph/useGraphNodeManager.ts +++ b/src/composables/graph/useGraphNodeManager.ts @@ -328,7 +328,7 @@ export function useGraphNodeManager(graph: LGraph): GraphNodeManager { * Creates a wrapped callback for a widget that maintains LiteGraph/Vue sync */ const createWrappedWidgetCallback = ( - widget: { value?: unknown; name: string }, // LiteGraph widget with minimal typing + widget: IBaseWidget, // LiteGraph widget with minimal typing originalCallback: ((value: unknown) => void) | undefined, nodeId: string ) => { @@ -355,10 +355,10 @@ export function useGraphNodeManager(graph: LGraph): GraphNodeManager { } // Always update widget.value to ensure sync - widget.value = value + widget.value = value ?? undefined // 2. Call the original callback if it exists - if (originalCallback) { + if (originalCallback && widget.type !== 'asset') { originalCallback.call(widget, value) } diff --git a/src/renderer/extensions/vueNodes/components/NodeWidgets.vue b/src/renderer/extensions/vueNodes/components/NodeWidgets.vue index 35057df965..7cb8bd081f 100644 --- a/src/renderer/extensions/vueNodes/components/NodeWidgets.vue +++ b/src/renderer/extensions/vueNodes/components/NodeWidgets.vue @@ -180,11 +180,7 @@ const processedWidgets = computed((): ProcessedWidget[] => { // Update the widget value directly widget.value = value - // Skip callback for asset widgets - their callback opens the modal, - // but Vue asset mode handles selection through the dropdown - if (widget.type !== 'asset') { - widget.callback?.(value) - } + widget.callback?.(value) } const tooltipText = getWidgetTooltip(widget)