From 168ad4dafa0ad9747a9ebb09b513dbaf9c0e85e7 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 10 Jul 2025 19:47:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E5=A4=84=E7=90=86=E4=B8=AD=E5=9B=BE=E7=89=87=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E8=AE=A1=E6=95=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 替换glob模式匹配为直接文件系统遍历 - 避免在大小写不敏感文件系统上的重复匹配 - 添加更好的错误处理和调试日志 - 确保图片计数准确性 修复了Windows系统上同一图片文件被计数两次的问题 --- python_core/ai_video/video_generator.py | 30 ++++++++++++++++++++----- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/python_core/ai_video/video_generator.py b/python_core/ai_video/video_generator.py index a1ff9e4..ec3f15a 100644 --- a/python_core/ai_video/video_generator.py +++ b/python_core/ai_video/video_generator.py @@ -245,19 +245,37 @@ class VideoGenerator: progress_callback(f" 模型类型: {model_type}") # Find image files - image_extensions = ['*.jpg', '*.jpeg', '*.png', '*.bmp', '*.gif', '*.tiff', '*.webp'] + # Use a more robust approach to find image files + image_extensions = ['.jpg', '.jpeg', '.png', '.bmp', '.gif', '.tiff', '.webp'] image_files = [] - for ext in image_extensions: - image_files.extend(glob.glob(os.path.join(image_folder, ext))) - image_files.extend(glob.glob(os.path.join(image_folder, ext.upper()))) - + + # Get all files in the directory + try: + all_files = os.listdir(image_folder) + for file in all_files: + file_path = os.path.join(image_folder, file) + if os.path.isfile(file_path): + # Check if file extension matches (case-insensitive) + file_ext = os.path.splitext(file)[1].lower() + if file_ext in image_extensions: + image_files.append(file_path) + except OSError as e: + result['msg'] = f"Failed to read directory {image_folder}: {str(e)}" + logger.error(result['msg']) + return result + if not image_files: result['msg'] = f"No image files found in {image_folder}" logger.error(result['msg']) return result - + if progress_callback: progress_callback(f'目录下找到 {len(image_files)} 张图片') + + # Debug: log found image files + logger.info(f"Found {len(image_files)} image files in {image_folder}") + for i, img_file in enumerate(image_files): + logger.info(f" {i+1}. {os.path.basename(img_file)}") if not prompts: result['msg'] = "No prompts provided"