From 132a0ded092ebab564d678fcc88cbd8d8b145d05 Mon Sep 17 00:00:00 2001 From: Miguel C Date: Mon, 3 Mar 2025 08:38:57 -0600 Subject: [PATCH] [Feature] Adds the litegraph knob widget support (#2822) --- src/composables/widgets/useFloatWidget.ts | 10 ++++++---- src/composables/widgets/useIntWidget.ts | 10 ++++++---- src/schemas/nodeDefSchema.ts | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/composables/widgets/useFloatWidget.ts b/src/composables/widgets/useFloatWidget.ts index 2000a8117..e4c1f06d4 100644 --- a/src/composables/widgets/useFloatWidget.ts +++ b/src/composables/widgets/useFloatWidget.ts @@ -38,11 +38,13 @@ export const useFloatWidget = () => { const sliderEnabled = !settingStore.get('Comfy.DisableSliders') const inputOptions = inputData[1] ?? {} - const widgetType = sliderEnabled - ? inputOptions.display === 'slider' + const display_type = inputOptions?.display + const widgetType = + sliderEnabled && display_type == 'slider' ? 'slider' - : 'number' - : 'number' + : display_type == 'knob' + ? 'knob' + : 'number' const step = inputOptions.step ?? 0.5 const precision = diff --git a/src/composables/widgets/useIntWidget.ts b/src/composables/widgets/useIntWidget.ts index 52f9691bc..255ab4925 100644 --- a/src/composables/widgets/useIntWidget.ts +++ b/src/composables/widgets/useIntWidget.ts @@ -47,11 +47,13 @@ export const useIntWidget = () => { const settingStore = useSettingStore() const sliderEnabled = !settingStore.get('Comfy.DisableSliders') const inputOptions = inputData[1] ?? {} - const widgetType = sliderEnabled - ? inputOptions?.display === 'slider' + const display_type = inputOptions?.display + const widgetType = + sliderEnabled && display_type == 'slider' ? 'slider' - : 'number' - : 'number' + : display_type == 'knob' + ? 'knob' + : 'number' const step = inputOptions.step ?? 1 const defaultValue = inputOptions.default ?? 0 diff --git a/src/schemas/nodeDefSchema.ts b/src/schemas/nodeDefSchema.ts index a3e8cb03b..c00f983da 100644 --- a/src/schemas/nodeDefSchema.ts +++ b/src/schemas/nodeDefSchema.ts @@ -32,7 +32,7 @@ const zNumericInputOptions = zBaseInputOptions.extend({ step: z.number().optional(), // Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. default: z.union([z.number(), z.array(z.number())]).optional(), - display: z.enum(['slider', 'number']).optional() + display: z.enum(['slider', 'number', 'knob']).optional() }) const zIntInputOptions = zNumericInputOptions.extend({