From ce085da0617146c3af59b1c3f696f7c58fd4e30f Mon Sep 17 00:00:00 2001 From: shrimbly Date: Wed, 8 Apr 2026 20:11:25 +1200 Subject: [PATCH] fix: pre-populate schema defaults into node parameters When a model schema loads, enum dropdowns showed "Default" but never wrote the actual default value into node.data.parameters. This caused the Kie API to receive missing parameter values, resulting in errors like "mode is not within the range of allowed options." Now a useEffect watches for schema changes and writes any schema-defined defaults into parameters when the corresponding key is undefined. Co-Authored-By: Claude Sonnet 4.5 --- src/components/nodes/ModelParameters.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/components/nodes/ModelParameters.tsx b/src/components/nodes/ModelParameters.tsx index 646998ed..40ca7496 100644 --- a/src/components/nodes/ModelParameters.tsx +++ b/src/components/nodes/ModelParameters.tsx @@ -154,6 +154,22 @@ function ModelParametersInner({ fetchSchema(); }, [modelId, provider, replicateApiKey, falApiKey, kieApiKey, wavespeedApiKey, onInputsLoaded]); + // Pre-populate schema defaults into parameters + useEffect(() => { + if (schema.length === 0) return; + const defaults: Record = {}; + let hasNewDefaults = false; + for (const param of schema) { + if (param.default !== undefined && parameters[param.name] === undefined) { + defaults[param.name] = param.default; + hasNewDefaults = true; + } + } + if (hasNewDefaults) { + onParametersChange({ ...parameters, ...defaults }); + } + }, [schema, parameters, onParametersChange]); + // Notify parent to resize node when schema loads useEffect(() => { if (schema.length > 0 && onExpandChange) {