mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-27 02:04:09 +00:00
Allow input spec with extra values passthrough (#273)
* Allow input spec extra values passthrough * Refine custom input spec * nit * nit
This commit is contained in:
@@ -175,46 +175,49 @@ function inputSpec(
|
||||
])
|
||||
}
|
||||
|
||||
const zBaseInputSpecValue = z
|
||||
.object({
|
||||
default: z.any().optional(),
|
||||
forceInput: z.boolean().optional()
|
||||
})
|
||||
.passthrough()
|
||||
|
||||
const zIntInputSpec = inputSpec([
|
||||
z.literal('INT'),
|
||||
z.object({
|
||||
zBaseInputSpecValue.extend({
|
||||
min: z.number().optional(),
|
||||
max: z.number().optional(),
|
||||
step: z.number().optional(),
|
||||
default: z.number().optional(),
|
||||
forceInput: z.boolean().optional()
|
||||
default: z.number().optional()
|
||||
})
|
||||
])
|
||||
|
||||
const zFloatInputSpec = inputSpec([
|
||||
z.literal('FLOAT'),
|
||||
z.object({
|
||||
zBaseInputSpecValue.extend({
|
||||
min: z.number().optional(),
|
||||
max: z.number().optional(),
|
||||
step: z.number().optional(),
|
||||
round: z.number().optional(),
|
||||
default: z.number().optional(),
|
||||
forceInput: z.boolean().optional()
|
||||
round: z.union([z.number(), z.literal(false)]).optional(),
|
||||
default: z.number().optional()
|
||||
})
|
||||
])
|
||||
|
||||
const zBooleanInputSpec = inputSpec([
|
||||
z.literal('BOOLEAN'),
|
||||
z.object({
|
||||
zBaseInputSpecValue.extend({
|
||||
label_on: z.string().optional(),
|
||||
label_off: z.string().optional(),
|
||||
default: z.boolean().optional(),
|
||||
forceInput: z.boolean().optional()
|
||||
default: z.boolean().optional()
|
||||
})
|
||||
])
|
||||
|
||||
const zStringInputSpec = inputSpec([
|
||||
z.literal('STRING'),
|
||||
z.object({
|
||||
zBaseInputSpecValue.extend({
|
||||
default: z.string().optional(),
|
||||
multiline: z.boolean().optional(),
|
||||
dynamicPrompts: z.boolean().optional(),
|
||||
forceInput: z.boolean().optional()
|
||||
dynamicPrompts: z.boolean().optional()
|
||||
})
|
||||
])
|
||||
|
||||
@@ -222,22 +225,19 @@ const zStringInputSpec = inputSpec([
|
||||
const zComboInputSpec = inputSpec(
|
||||
[
|
||||
z.array(z.any()),
|
||||
z.object({
|
||||
default: z.any().optional(),
|
||||
zBaseInputSpecValue.extend({
|
||||
control_after_generate: z.boolean().optional(),
|
||||
image_upload: z.boolean().optional(),
|
||||
forceInput: z.boolean().optional()
|
||||
image_upload: z.boolean().optional()
|
||||
})
|
||||
],
|
||||
/* allowUpcast=*/ false
|
||||
)
|
||||
|
||||
const excludedLiterals = new Set(['INT', 'FLOAT', 'BOOLEAN', 'STRING', 'COMBO'])
|
||||
|
||||
const zCustomInputSpec = inputSpec([
|
||||
z.string(),
|
||||
z.object({
|
||||
default: z.any().optional(),
|
||||
forceInput: z.boolean().optional()
|
||||
})
|
||||
z.string().refine((value) => !excludedLiterals.has(value)),
|
||||
zBaseInputSpecValue
|
||||
])
|
||||
|
||||
const zInputSpec = z.union([
|
||||
|
||||
Reference in New Issue
Block a user