diff --git a/src/lib/litegraph/src/subgraph/SubgraphNode.ts b/src/lib/litegraph/src/subgraph/SubgraphNode.ts index e26e1cd48..a1fc265d8 100644 --- a/src/lib/litegraph/src/subgraph/SubgraphNode.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphNode.ts @@ -28,8 +28,8 @@ import type { } from '@/lib/litegraph/src/types/serialisation' import type { IBaseWidget } from '@/lib/litegraph/src/types/widgets' import type { UUID } from '@/lib/litegraph/src/utils/uuid' +import { BaseWidget } from '@/lib/litegraph/src/widgets/BaseWidget' import { AssetWidget } from '@/lib/litegraph/src/widgets/AssetWidget' -import { toConcreteWidget } from '@/lib/litegraph/src/widgets/widgetMap' import { ExecutableNodeDTO } from './ExecutableNodeDTO' import type { ExecutableLGraphNode, ExecutionId } from './ExecutableNodeDTO' @@ -331,9 +331,10 @@ export class SubgraphNode extends LGraphNode implements BaseLGraph { inputWidget: IWidgetLocator | undefined ) { // Use the first matching widget - const promotedWidget = toConcreteWidget(widget, this).createCopyForNode( - this - ) + const promotedWidget = + widget instanceof BaseWidget + ? widget.createCopyForNode(this) + : { ...widget, node: this } if (widget instanceof AssetWidget) promotedWidget.options.nodeType ??= widget.node.type