From 637c4e036fae220d5fd3f9709d82b3c835d6273f Mon Sep 17 00:00:00 2001 From: root Date: Fri, 8 Aug 2025 22:38:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=B8=AD=E6=95=B0=E5=80=BC=E4=B8=BA0?= =?UTF-8?q?=E6=97=B6=E6=97=A0=E6=B3=95=E6=AD=A3=E7=A1=AE=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复了ComfyUI V2工作流模板参数配置中的关键bug: 🐛 问题描述: - 当数值参数(最小值、最大值、步长、默认值等)设置为0时,由于JavaScript的falsy值特性,使用 || 操作符会导致显示空字符串而不是0 🔧 修复内容: - ✅ 最小值字段:schema.min || '' → schema.min !== undefined ? schema.min : '' - ✅ 最大值字段:schema.max || '' → schema.max !== undefined ? schema.max : '' - ✅ 步长字段:schema.step || '' → schema.step !== undefined ? schema.step : '' - ✅ 默认值字段(数字类型):schema.default || '' → schema.default !== undefined ? schema.default : '' - ✅ 宽度字段:schema.width || '' → schema.width !== undefined ? schema.width : '' - ✅ 高度字段:schema.height || '' → schema.height !== undefined ? schema.height : '' - ✅ 时长字段:schema.duration || '' → schema.duration !== undefined ? schema.duration : '' - ✅ 文件大小字段:schema.maxSize ? Math.round(...) → schema.maxSize !== undefined ? Math.round(...) : '' 💡 技术细节: - 使用 !== undefined 检查而不是 || 操作符,确保0值能正确显示 - 保持字符串字段使用 || '' 的逻辑,因为空字符串是合理的默认值 - 确保所有数值类型字段都能正确处理0值 🎯 影响范围: - 整数类型参数的最小值、最大值、步长配置 - 浮点数类型参数的数值范围设置 - 媒体类型参数的尺寸和大小限制 - 所有数值类型的默认值设置 这个修复确保了用户可以正确设置0作为参数值, 特别重要的是最小值为0的场景(如步长、范围等)。 --- .../comfyui/WorkflowTemplateCreator.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/desktop/src/components/comfyui/WorkflowTemplateCreator.tsx b/apps/desktop/src/components/comfyui/WorkflowTemplateCreator.tsx index d77f878..a1a427b 100644 --- a/apps/desktop/src/components/comfyui/WorkflowTemplateCreator.tsx +++ b/apps/desktop/src/components/comfyui/WorkflowTemplateCreator.tsx @@ -802,7 +802,7 @@ export const WorkflowTemplateCreator: React.FC = ( step={schema.step || (schema.param_type === 'float' ? 0.01 : 1)} min={schema.min} max={schema.max} - value={schema.default || ''} + value={schema.default !== undefined ? schema.default : ''} onChange={(e) => updateParameter(paramName, { ...schema, default: schema.param_type === 'integer' ? parseInt(e.target.value) || 0 : parseFloat(e.target.value) || 0 @@ -880,7 +880,7 @@ export const WorkflowTemplateCreator: React.FC = ( updateParameter(paramName, { ...schema, min: e.target.value ? Number(e.target.value) : undefined @@ -896,7 +896,7 @@ export const WorkflowTemplateCreator: React.FC = ( updateParameter(paramName, { ...schema, max: e.target.value ? Number(e.target.value) : undefined @@ -912,7 +912,7 @@ export const WorkflowTemplateCreator: React.FC = ( updateParameter(paramName, { ...schema, step: e.target.value ? Number(e.target.value) : undefined @@ -948,7 +948,7 @@ export const WorkflowTemplateCreator: React.FC = ( updateParameter(paramName, { ...schema, maxSize: e.target.value ? Number(e.target.value) * 1024 * 1024 : undefined @@ -967,7 +967,7 @@ export const WorkflowTemplateCreator: React.FC = ( updateParameter(paramName, { ...schema, width: e.target.value ? Number(e.target.value) : undefined @@ -982,7 +982,7 @@ export const WorkflowTemplateCreator: React.FC = ( updateParameter(paramName, { ...schema, height: e.target.value ? Number(e.target.value) : undefined @@ -1001,7 +1001,7 @@ export const WorkflowTemplateCreator: React.FC = ( updateParameter(paramName, { ...schema, duration: e.target.value ? Number(e.target.value) : undefined