[Help] “No data found” error when training model – train_data_dir issue

这个报错通常出现在 Kohya SS 的 LoRA / DreamBooth / Textual Inversion 文件夹模式训练启动时,真正原因多数不是训练器坏了,而是 train_data_dir (GUI 里的 Image folder)指向了错误的层级:它必须指向 N_name 子文件夹的

快速结论:这个报错通常出现在 Kohya SS 的 LoRA / DreamBooth / Textual Inversion 文件夹模式训练启动时,真正原因多数不是训练器坏了,而是 train_data_dir(GUI 里的 Image folder)指向了错误的层级:它必须指向 N_name 子文件夹的父目录,而不是直接存放图片的那个文件夹。

适用环境:Issue 中确认涉及的工具是 Kohya SS(GUI)的 LoRA / DreamBooth / Textual Inversion 训练路径;Issue 未提供已确认的操作系统、Python、CUDA、显卡或依赖版本信息。

最快修复方案:把 Image folder 指向 N_name 文件夹的父目录。正确结构为:train_data_dir/10_my_concept/image1.jpg,此时 Image folder 填 train_data_dir/,而不是填 train_data_dir/10_my_concept/。

注意事项:Issue 中该用户是通过把路径改为 N_name 文件夹的父目录后自行解决的。Issue 同时指出 GUI 中的 verify_image_folder_pattern() 帮助函数并未被任何训练入口调用,因此目前不会在启动前拦截这类错误布局;此外该函数原有的正则 ^\d+_\w+ 不接受下划线后带空格的名字(如 30_black mamba),与文档中允许空格的说明不一致,这属于待修复项,不代表此类名字一定可用。

问题场景

用户在 Kohya SS 中准备训练模型(LoRA / DreamBooth / Textual Inversion 等),采用 DreamBooth 风格的文件夹数据集布局,目录命名为 repeats_name 格式(例如 10_model_woman)。用户确认文件夹结构已按该格式创建、路径中没有空格、图片也确实存在于对应子文件夹中,但训练启动后仍报 “No data found”。

报错原文

ERROR    No data found. Please verify arguments (train_data_dir must be the parent of folders with images)
/ 画像がありません。引数指定を確認してください(train_data_dirには画像があるフォルダではなく、画像があるフォルダの親フォルダを指定する必要があります)

原因分析

最可能的原因是 train_data_dir 的层级选择错误。Kohya SS 在文件夹模式下要求该参数指向包含 N_name 子文件夹的父目录,而不少用户习惯性把它指向了真正存放图片的 N_name 文件夹本身,于是 sd-scripts 在预期位置找不到可用的数据集子目录,抛出 “No data found”。

Issue 的 triage 还指出,GUI 中其实已经存在用于检查 N_name 子文件夹布局的辅助函数 verify_image_folder_pattern(),但它没有被任何训练入口调用;训练前只执行了 validate_folder_path 这类仅检查路径是否存在的校验,所以错误布局不会在启动前被拦截,而是等到 sd-scripts 内部才报错。这属于产品侧的缺口,而非训练器本身故障。

环境排查

  • 确认使用的训练模式是文件夹模式;如果提供了 dataset config TOML,则数据集布局由 TOML 定义,不应按本文的文件夹规则判断。
  • 确认 GUI 中 Image folder(即 train_data_dir)指向的是 N_name 子文件夹的父目录。
  • 确认该父目录下至少存在一个立即子文件夹,且命名符合 <repeats>_<name> 约定(多个数字 + 下划线 + 非空名称)。
  • 确认图片文件位于这些 N_name 子文件夹内部,而不是与它们同级或更上一层。
  • 若设置了 reg_data_dir,同样确认其指向上层目录并包含合法的 N_name 子文件夹。
  • Issue 未提供需核对的 Python、CUDA、PyTorch、显卡或依赖版本信息,无需在本文中补写。

解决步骤

  1. 检查当前 Image folder 的填写值:如果它直接指向某个 10_xxx、30_xxx 之类的文件夹,说明层级过深,这是最常见的触发点。
  2. 把 Image folder 改为该 N_name 文件夹的父目录。例如目录为 /data/train/10_my_concept/image1.jpg,则填写 /data/train。
  3. 确认父目录下 N_name 子文件夹的命名格式正确:前导数字为 repeats 次数,下划线后为概念名称,图片放在该子文件夹内。
  4. 如果使用了正则配图(regularization),按相同规则检查 reg_data_dir,使其指向对应 N_name 文件夹的父目录。
  5. 重新启动训练,让 GUI 重新读取 train_data_dir 下的数据集。

验证方法

训练启动后不再出现 “No data found. Please verify arguments (train_data_dir must be the parent of folders with images)”,并且日志能够正常进入数据集加载、图片数量统计等后续阶段,即表示路径层级已修正。Issue 中原提问者正是通过指向 N_name 文件夹的父目录解决了该问题,其他用户也确认按此说明修改后训练恢复正常。

参考来源

bmaltais/kohya_ss #3374

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25664

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注