fix: 修复ComfyUI V2工作流创建接口参数不匹配问题
- 修复前端CreateWorkflowRequest接口定义,使用workflow_json而不是workflow_data - 更新WorkflowV2Creator组件以匹配后端接口参数 - 移除不必要的category字段,与后端保持一致 - 修复所有相关的字段引用和错误处理 - 确保前后端接口参数完全匹配
This commit is contained in:
parent
ada3eb94ed
commit
733506cd70
|
|
@ -40,8 +40,7 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
|
||||||
const [formData, setFormData] = useState<CreateWorkflowRequest>({
|
const [formData, setFormData] = useState<CreateWorkflowRequest>({
|
||||||
name: '',
|
name: '',
|
||||||
description: '',
|
description: '',
|
||||||
category: '',
|
workflow_json: {},
|
||||||
workflow_data: {},
|
|
||||||
tags: [],
|
tags: [],
|
||||||
});
|
});
|
||||||
const [errors, setErrors] = useState<Record<string, string>>({});
|
const [errors, setErrors] = useState<Record<string, string>>({});
|
||||||
|
|
@ -55,8 +54,7 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
|
||||||
setFormData({
|
setFormData({
|
||||||
name: editingWorkflow.name || '',
|
name: editingWorkflow.name || '',
|
||||||
description: editingWorkflow.description || '',
|
description: editingWorkflow.description || '',
|
||||||
category: editingWorkflow.category || '',
|
workflow_json: editingWorkflow.workflow_data || {},
|
||||||
workflow_data: editingWorkflow.workflow_data || {},
|
|
||||||
tags: editingWorkflow.tags || [],
|
tags: editingWorkflow.tags || [],
|
||||||
});
|
});
|
||||||
setWorkflowJsonText(JSON.stringify(editingWorkflow.workflow_data || {}, null, 2));
|
setWorkflowJsonText(JSON.stringify(editingWorkflow.workflow_data || {}, null, 2));
|
||||||
|
|
@ -65,8 +63,7 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
|
||||||
setFormData({
|
setFormData({
|
||||||
name: '',
|
name: '',
|
||||||
description: '',
|
description: '',
|
||||||
category: '',
|
workflow_json: {},
|
||||||
workflow_data: {},
|
|
||||||
tags: [],
|
tags: [],
|
||||||
});
|
});
|
||||||
setWorkflowJsonText('{}');
|
setWorkflowJsonText('{}');
|
||||||
|
|
@ -98,15 +95,15 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!workflowJsonText.trim() || workflowJsonText.trim() === '{}') {
|
if (!workflowJsonText.trim() || workflowJsonText.trim() === '{}') {
|
||||||
newErrors.workflow_data = '工作流数据不能为空';
|
newErrors.workflow_json = '工作流数据不能为空';
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
const parsed = JSON.parse(workflowJsonText);
|
const parsed = JSON.parse(workflowJsonText);
|
||||||
if (typeof parsed !== 'object' || parsed === null) {
|
if (typeof parsed !== 'object' || parsed === null) {
|
||||||
newErrors.workflow_data = '工作流数据必须是有效的JSON对象';
|
newErrors.workflow_json = '工作流数据必须是有效的JSON对象';
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
newErrors.workflow_data = 'JSON格式错误,请检查语法';
|
newErrors.workflow_json = 'JSON格式错误,请检查语法';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -125,7 +122,7 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
|
||||||
const workflowData = JSON.parse(workflowJsonText);
|
const workflowData = JSON.parse(workflowJsonText);
|
||||||
const requestData: CreateWorkflowRequest = {
|
const requestData: CreateWorkflowRequest = {
|
||||||
...formData,
|
...formData,
|
||||||
workflow_data: workflowData,
|
workflow_json: workflowData,
|
||||||
};
|
};
|
||||||
|
|
||||||
await onSave(requestData);
|
await onSave(requestData);
|
||||||
|
|
@ -150,10 +147,10 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
|
||||||
try {
|
try {
|
||||||
const workflow = JSON.parse(e.target?.result as string);
|
const workflow = JSON.parse(e.target?.result as string);
|
||||||
setWorkflowJsonText(JSON.stringify(workflow, null, 2));
|
setWorkflowJsonText(JSON.stringify(workflow, null, 2));
|
||||||
updateField('workflow_data', workflow);
|
updateField('workflow_json', workflow);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('解析ComfyUI工作流失败:', error);
|
console.error('解析ComfyUI工作流失败:', error);
|
||||||
setErrors({ workflow_data: '文件格式错误,请选择有效的JSON文件' });
|
setErrors({ workflow_json: '文件格式错误,请选择有效的JSON文件' });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
reader.readAsText(file);
|
reader.readAsText(file);
|
||||||
|
|
@ -250,18 +247,7 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
|
||||||
<label className="block text-sm font-medium text-gray-700 mb-1">
|
|
||||||
分类
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
value={formData.category || ''}
|
|
||||||
onChange={(e) => updateField('category', e.target.value)}
|
|
||||||
className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
|
||||||
placeholder="例如:图像处理"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
@ -316,12 +302,12 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
|
||||||
onChange={(e) => setWorkflowJsonText(e.target.value)}
|
onChange={(e) => setWorkflowJsonText(e.target.value)}
|
||||||
rows={20}
|
rows={20}
|
||||||
className={`w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent font-mono text-sm ${
|
className={`w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent font-mono text-sm ${
|
||||||
errors.workflow_data ? 'border-red-300' : 'border-gray-300'
|
errors.workflow_json ? 'border-red-300' : 'border-gray-300'
|
||||||
}`}
|
}`}
|
||||||
placeholder="粘贴ComfyUI导出的工作流JSON..."
|
placeholder="粘贴ComfyUI导出的工作流JSON..."
|
||||||
/>
|
/>
|
||||||
{errors.workflow_data && (
|
{errors.workflow_json && (
|
||||||
<p className="mt-1 text-sm text-red-600">{errors.workflow_data}</p>
|
<p className="mt-1 text-sm text-red-600">{errors.workflow_json}</p>
|
||||||
)}
|
)}
|
||||||
<p className="mt-1 text-sm text-gray-500">
|
<p className="mt-1 text-sm text-gray-500">
|
||||||
从ComfyUI界面导出工作流JSON并粘贴到这里
|
从ComfyUI界面导出工作流JSON并粘贴到这里
|
||||||
|
|
|
||||||
|
|
@ -61,10 +61,7 @@ export interface WorkflowV2 {
|
||||||
export interface CreateWorkflowRequest {
|
export interface CreateWorkflowRequest {
|
||||||
name: string;
|
name: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
category?: string;
|
workflow_json: any;
|
||||||
workflow_data: any;
|
|
||||||
input_schema?: any;
|
|
||||||
output_schema?: any;
|
|
||||||
tags?: string[];
|
tags?: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue