diff --git a/src/nodes/PrimitiveNode.ts b/src/nodes/PrimitiveNode.ts index 40e4daaa7a..e40dd7ad2d 100644 --- a/src/nodes/PrimitiveNode.ts +++ b/src/nodes/PrimitiveNode.ts @@ -569,7 +569,7 @@ export function isValidCombo(combo: string[], obj: unknown) { return true } -export function isPrimitiveNode(node: LGraphNode): node is PrimitiveNode { +function isPrimitiveNode(node: LGraphNode): node is PrimitiveNode { return node.type === 'PrimitiveNode' } diff --git a/src/types/litegraph-augmentation.d.ts b/src/types/litegraph-augmentation.d.ts index 6e6fe22f6e..4ee151dbe8 100644 --- a/src/types/litegraph-augmentation.d.ts +++ b/src/types/litegraph-augmentation.d.ts @@ -73,6 +73,7 @@ declare module '@comfyorg/litegraph' { convertToNodes?(): LGraphNode[] recreate?(): Promise refreshComboInNode?(defs: Record) + applyToGraph?(extraLinks?: LLink[]): void updateLink?(link: LLink): LLink | null onExecutionStart?(): unknown /** diff --git a/src/utils/executionUtil.ts b/src/utils/executionUtil.ts index 884d4e971e..a759623fec 100644 --- a/src/utils/executionUtil.ts +++ b/src/utils/executionUtil.ts @@ -1,7 +1,6 @@ import type { LGraph } from '@comfyorg/litegraph' import { LGraphEventMode } from '@comfyorg/litegraph' -import { isPrimitiveNode } from '@/nodes/PrimitiveNode' import type { ComfyApiWorkflow, ComfyWorkflowJSON } from '@/types/comfyWorkflow' /** @@ -20,8 +19,11 @@ export const graphToPrompt = async ( ? outerNode.getInnerNodes() : [outerNode] for (const node of innerNodes) { - if (isPrimitiveNode(node)) { - node.applyToGraph() + if (node.isVirtualNode) { + // Don't serialize frontend only nodes but let them make changes + if (node.applyToGraph) { + node.applyToGraph() + } } } }