diff --git a/src/lib/litegraph/src/LGraphNode.configure.test.ts b/src/lib/litegraph/src/LGraphNode.configure.test.ts index 67d3ecd7b8..55a947c376 100644 --- a/src/lib/litegraph/src/LGraphNode.configure.test.ts +++ b/src/lib/litegraph/src/LGraphNode.configure.test.ts @@ -56,6 +56,16 @@ describe('LGraphNode.configure numeric widget sanitization', () => { expect(node.widgets![0].value).toBe(99999) }) + it('preserves default when widgets_values contains null for a gradientslider widget', () => { + node.addWidget('gradientslider', 'denoise', 0.75, null, {}) + + node.configure( + serialisedNode({ widgets_values: [null] as unknown[] as number[] }) + ) + + expect(node.widgets![0].value).toBe(0.75) + }) + it('does not sanitize null for non-numeric widget types', () => { node.addWidget('text', 'prompt', 'default text', null, {}) diff --git a/src/lib/litegraph/src/LGraphNode.ts b/src/lib/litegraph/src/LGraphNode.ts index e390640e63..507bb1c94b 100644 --- a/src/lib/litegraph/src/LGraphNode.ts +++ b/src/lib/litegraph/src/LGraphNode.ts @@ -920,7 +920,12 @@ export class LGraphNode if (widget.serialize === false) continue if (i >= info.widgets_values.length) break const incoming = info.widgets_values[i++] - const isNumeric = ['number', 'slider', 'knob'].includes(widget.type) + const isNumeric = [ + 'number', + 'slider', + 'gradientslider', + 'knob' + ].includes(widget.type) const isInvalid = incoming === null || incoming === undefined ||