diff --git a/src/composables/graph/useGraphNodeManager.ts b/src/composables/graph/useGraphNodeManager.ts index 3aa812607..76b5c0413 100644 --- a/src/composables/graph/useGraphNodeManager.ts +++ b/src/composables/graph/useGraphNodeManager.ts @@ -337,7 +337,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 ) => { @@ -364,10 +364,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 7f44e688f..d9f2acc02 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)