From 94e89d0d2dfdd2b90fe9b1dd05ddcf39daf5b1f0 Mon Sep 17 00:00:00 2001 From: Austin Mroz Date: Sat, 24 Jan 2026 20:54:12 -0800 Subject: [PATCH] Allow defining spec by property --- src/schemas/nodeDef/nodeDefSchemaV2.ts | 2 +- src/services/litegraphService.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/schemas/nodeDef/nodeDefSchemaV2.ts b/src/schemas/nodeDef/nodeDefSchemaV2.ts index 4743164a1..1537eb81e 100644 --- a/src/schemas/nodeDef/nodeDefSchemaV2.ts +++ b/src/schemas/nodeDef/nodeDefSchemaV2.ts @@ -132,7 +132,7 @@ const zCustomInputSpec = zBaseInputOptions.extend({ isOptional: z.boolean().optional() }) -const zInputSpec = z.union([ +export const zInputSpec = z.union([ zIntInputSpec, zFloatInputSpec, zBooleanInputSpec, diff --git a/src/services/litegraphService.ts b/src/services/litegraphService.ts index 18d281973..1526ef490 100644 --- a/src/services/litegraphService.ts +++ b/src/services/litegraphService.ts @@ -36,6 +36,7 @@ import type { NodeId } from '@/platform/workflow/validation/schemas/workflowSche import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useDialogService } from '@/services/dialogService' import { transformInputSpecV2ToV1 } from '@/schemas/nodeDef/migration' +import { zInputSpec } from '@/schemas/nodeDef/nodeDefSchemaV2' import type { ComfyNodeDef as ComfyNodeDefV2, InputSpec, @@ -465,6 +466,8 @@ export const useLitegraphService = () => { : output } ) + const maybeDef = zInputSpec.safeParse(data.properties?.dynamicSpec).data + if (maybeDef) addNodeInput(this, maybeDef) data.widgets_values = migrateWidgetsValues( ComfyNode.nodeData.inputs,