diff --git a/src/types/comfyWorkflow.ts b/src/types/comfyWorkflow.ts index 298c8a91b..f68a5b31e 100644 --- a/src/types/comfyWorkflow.ts +++ b/src/types/comfyWorkflow.ts @@ -74,7 +74,10 @@ const zProperties = z .passthrough() const zVector2 = z.union([ - z.object({ 0: z.number(), 1: z.number() }).transform((v) => [v[0], v[1]]), + z + .object({ 0: z.number(), 1: z.number() }) + .passthrough() + .transform((v) => [v[0], v[1]]), z.tuple([z.number(), z.number()]) ]) diff --git a/tests-ui/tests/comfyWorkflow.test.ts b/tests-ui/tests/comfyWorkflow.test.ts index bcb729d33..19349fa82 100644 --- a/tests-ui/tests/comfyWorkflow.test.ts +++ b/tests-ui/tests/comfyWorkflow.test.ts @@ -69,6 +69,23 @@ describe('parseComfyWorkflow', () => { workflow.nodes[0].pos = { 0: 3, 1: 4 } validatedWorkflow = await validateComfyWorkflow(workflow) expect(validatedWorkflow.nodes[0].pos).toEqual([3, 4]) + + // Should accept the legacy bugged format object. + // https://github.com/Comfy-Org/ComfyUI_frontend/issues/710 + workflow.nodes[0].pos = { + '0': 600, + '1': 340, + '2': 0, + '3': 0, + '4': 0, + '5': 0, + '6': 0, + '7': 0, + '8': 0, + '9': 0 + } + validatedWorkflow = await validateComfyWorkflow(workflow) + expect(validatedWorkflow.nodes[0].pos).toEqual([600, 340]) }) it('workflow.nodes.widget_values', async () => {