diff --git a/app/src/lib/graph-interface/graph-manager.svelte.ts b/app/src/lib/graph-interface/graph-manager.svelte.ts index 6d33fd2..1a8907f 100644 --- a/app/src/lib/graph-interface/graph-manager.svelte.ts +++ b/app/src/lib/graph-interface/graph-manager.svelte.ts @@ -29,8 +29,9 @@ function areSocketsCompatible( output: string | undefined, inputs: string | (string | undefined)[] | undefined ) { + if (output === '*') return true; if (Array.isArray(inputs) && output) { - return inputs.includes(output); + return inputs.includes('*') || inputs.includes(output); } return inputs === output; } diff --git a/packages/types/src/inputs.ts b/packages/types/src/inputs.ts index c7d10ec..54129c9 100644 --- a/packages/types/src/inputs.ts +++ b/packages/types/src/inputs.ts @@ -89,6 +89,11 @@ export const NodeInputPathSchema = z.object({ value: z.array(z.number()).optional() }); +export const NodeInputAnySchema = z.object({ + ...DefaultOptionsSchema.shape, + type: z.literal('*') +}); + export const NodeInputSchema = z.union([ NodeInputSeedSchema, NodeInputBooleanSchema, @@ -100,7 +105,8 @@ export const NodeInputSchema = z.union([ NodeInputSeedSchema, NodeInputVec3Schema, NodeInputGeometrySchema, - NodeInputPathSchema + NodeInputPathSchema, + NodeInputAnySchema ]); export type NodeInput = z.infer;