fix: include gradientslider in numeric widget sanitization

This commit is contained in:
Kelly Yang
2026-05-03 21:07:40 -07:00
parent 5013d816aa
commit 92162dfd2a
2 changed files with 16 additions and 1 deletions

View File

@@ -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, {})

View File

@@ -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 ||