快速结论:该报错通常发生在使用 Kohya SS 的 Dataset Preparation(数据准备)工具整理训练图片时,工具在“完成”提示下把源目录当成目标目录先删除再复制,导致原图丢失;优先排查训练图片源路径与目标路径是否相同或互相嵌套。
适用环境:Issue 已确认工具为 Kohya SS 的 Dataset Preparation 功能,涉及 Dreambooth/LoRA 图片目录准备流程;Issue 未提供具体操作系统、Python、CUDA、显卡或依赖版本。
最快修复方案:暂无确认的一步修复方案。Issue 给出的是修复方向(先校验、拒绝同路径/嵌套路径、拒绝源不存在,复制到临时目录后再替换,并让 UI 显示状态),但尚无可直接执行的已验证修复命令。
注意事项:修复方向属于期望行为与实现建议,不代表当前版本已包含这些保护;在问题修复前,手动操作数据准备仍可能造成数据丢失,务必保留源图备份,并避免把目标目录设为源目录本身或其父目录。
问题场景
用户在 Kohya SS 中使用 Dataset Preparation 工具,把图片整理成 kohya_ss 需要的目录结构(如 img/<repeats>_<instance> <class>,以及可选的 reg/<repeats>_<class>)。准备完成后界面只显示“completed”,但用户发现原始数据被删除。随后尝试启动 LoRA 训练时,kohya_ss 报错并提示没有图片,日志显示“Training has ended”,但 WebUI 仍停留在“正在训练”的状态,只能强制退出终端并重启应用。
报错原文
Dataset Preparation Deletes Data
...it end up deleting my data and saying "completed"
...No logs or anything were shown except "completed".
...kohya_ss spat out a bunch of errors (while informing me there are no more pictures... great!) and then says "Training has ended" in the logs.
However, the WebUI for kohya_ss is now stuck and thinks it's still training.
原因分析
根据 Issue 讨论,Dataset Preparation 的核心逻辑在目标路径已存在时会先用 shutil.rmtree 删除目标目录,然后再执行 shutil.copytree。问题在于缺少前置保护:没有校验源目录是否存在、没有校验解析后的源路径是否等于目标路径、没有校验目标目录是否嵌套在源目录之下(或相反)。
当训练图片源路径本身就是一个已准备好的目录,或被设置为目标目录的父目录时,删除目标目录可能同时删掉了唯一一份源图;随后的 copytree 再因路径不存在而失败。由于 Prepare 按钮没有 Gradio 状态输出,仅记录日志后就返回的失败也会在界面上表现为一次成功的“completed”。
训练阶段的 WebUI 卡死与“Training has ended”不一致,Issue 中归为相关但独立的问题(参见 #3435 / command executor),不属于数据准备路径本身。
环境排查
- 确认当前使用的 Kohya SS 版本是否已包含 Dataset Preparation 的非破坏性修复;Issue 未给出具体版本号。
- 确认 Dataset Preparation 中“训练图片源目录(training images)”与“目标目录(destination)”的绝对路径。
- 确认目标目录是否等于源目录,或是否位于源目录内部(例如源为
…/img,目标为其父目录)。 - 确认源目录是否存在且为目录,目标路径是否已存在旧数据。
- 确认是否配置了正则化图片目录(reg images),其路径规则与训练图片一致,也需检查。
- Issue 未提供操作系统、Python、CUDA、PyTorch、显卡或依赖版本信息,暂不列具体版本要求。
解决步骤
- 立即停止在 Kohya SS 的 Dataset Preparation 中继续点击“Prepare training data”,并从备份中恢复已丢失的图片。
- 打开 Dataset Preparation 界面,记录训练图片源目录和目标目录的完整绝对路径。
- 检查源目录与目标目录是否相同;若相同,不要继续执行准备操作(当前逻辑可能先
rmtree再copytree并删除唯一源图)。 - 检查目标目录是否嵌套在源目录之下,或源目录是否嵌套在目标目录之下;若存在嵌套关系,不要继续执行准备操作,避免递归复制或误删。
- 确认训练图片源目录确实存在且为目录;源目录不存在时先补齐图片,再尝试准备。
- 如果必须准备到已有目标目录,先手动把该目标目录整体移走或备份,确保它不是源图的唯一副本。
- 如仍无法完成数据准备,可优先尝试升级到包含该 Issue 修复的 Kohya SS 版本;Issue 中并未给出具体版本号或升级命令,需以仓库发布信息为准。
- 训练 WebUI 卡死属于独立问题(#3435),遇到时按原 Issue 描述强制退出并重启终端应用,不与数据准备删除问题混在一起处理。
验证方法
执行准备前先确认源目录和目标目录不相等、不互相嵌套,且源目录存在;准备完成后检查原始图片目录是否仍然完整,只有目标目录下按预期生成了 img/…、可选的 reg/… 等结构。若界面只显示“completed”而没有任何状态字符串说明校验结果,说明当前版本可能仍缺少修复中的 UI 状态输出,需要进一步确认版本与修复情况。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


![RuntimeError: Triton Error [CUDA]: an illegal memory access was encountered](https://www.chat-gpts.plus/wp-content/uploads/2026/09/1347-e7ce5eed-768x403.jpg)