diff --git a/src/components/AIVideoGenerator.tsx b/src/components/AIVideoGenerator.tsx index 04c33f6..c70e60a 100644 --- a/src/components/AIVideoGenerator.tsx +++ b/src/components/AIVideoGenerator.tsx @@ -130,6 +130,20 @@ const AIVideoGenerator: React.FC = ({ className = '' }) = return } + // Validate file path + if (!selectedImage.includes('\\') && !selectedImage.includes('/')) { + alert('请选择完整的文件路径,而不是仅仅文件名。\n\n请点击"选择文件"按钮来选择图片文件。') + return + } + + console.log('Generating video with:', { + image_path: selectedImage, + prompt: customPrompt, + duration, + model_type: modelType, + output_path: outputFolder + }) + await generateSingleVideo({ image_path: selectedImage, prompt: customPrompt, @@ -234,7 +248,7 @@ const AIVideoGenerator: React.FC = ({ className = '' }) =
= ({ className = '' }) = )} {job.error && ( -
- {job.error} +
+
❌ 生成失败
+
{job.error}
+ {job.result && job.result.msg && job.result.msg !== job.error && ( +
+ 详细信息: {job.result.msg} +
+ )} +
+ 💡 提示: 请确保选择了完整的文件路径,而不是仅仅文件名 +
)} diff --git a/src/stores/useAIVideoStore.ts b/src/stores/useAIVideoStore.ts index a601a1f..89dc50f 100644 --- a/src/stores/useAIVideoStore.ts +++ b/src/stores/useAIVideoStore.ts @@ -129,13 +129,26 @@ export const useAIVideoStore = create((set, get) => ({ updateJob(jobId, { status: 'processing', progress: 0 }) const result = await AIVideoService.generateVideo(request) - - updateJob(jobId, { - status: 'completed', - progress: 100, - result, - endTime: Date.now() - }) + + // Check if the Python script actually succeeded + if (result && result.status === true) { + updateJob(jobId, { + status: 'completed', + progress: 100, + result, + endTime: Date.now() + }) + } else { + // Python script returned failure + const errorMsg = result?.msg || 'Python script execution failed' + updateJob(jobId, { + status: 'failed', + error: errorMsg, + result, + endTime: Date.now() + }) + throw new Error(errorMsg) + } return jobId } catch (error) { @@ -160,13 +173,26 @@ export const useAIVideoStore = create((set, get) => ({ updateJob(jobId, { status: 'processing', progress: 0 }) const result = await AIVideoService.batchGenerateVideos(request) - - updateJob(jobId, { - status: 'completed', - progress: 100, - result, - endTime: Date.now() - }) + + // Check if the Python script actually succeeded + if (result && result.status === true) { + updateJob(jobId, { + status: 'completed', + progress: 100, + result, + endTime: Date.now() + }) + } else { + // Python script returned failure + const errorMsg = result?.msg || 'Batch processing failed' + updateJob(jobId, { + status: 'failed', + error: errorMsg, + result, + endTime: Date.now() + }) + throw new Error(errorMsg) + } return jobId } catch (error) {