Skip to content

Packaging: portable launcher skips setup when torch exists (training connect fails) #54

@wochenlong

Description

@wochenlong

现象

部分 Windows 便携整合包用户反馈:

  • 安装/解压完成后,用 run_gui.bat 能打开网页;
  • 点击「开始训练」后出现 无法连接训练端(或类似连接失败提示);
  • 手动进入 SD-Trainer 目录执行 python gui.py(不带便携启动参数)后,会再跑一轮环境/依赖相关流程,之后训练恢复正常。

根因(当前代码)

scripts/portable/launch_portable.bat 中:

  1. 仅以 python_embeded\Lib\site-packages\torch 目录是否存在判断是否「已安装」,若存在则 跳过 setup_environment.py
  2. 启动时固定传入 gui.py --skip-prepare-environment,因此即使用户环境不完整,也不会再走 prepare_environment 补依赖路径。

torch 已落盘但其它训练依赖缺失/损坏/未装全时,会出现「界面能开、训练起不来」的错位体验。

setup_environment.py 里的 check_already_installed() 同样只以 torch 目录为判据,与上述逻辑一致。

影响范围

  • 已确认的 v2.5.2 便携整合包 启动链路;
  • 仓库 main 分支scripts/portable/launch_portable.batsetup_environment.py 当前实现仍存在相同判据。

用户侧临时规避

  1. 优先使用整合包根目录的 run_gui.bat 启动(勿混用系统 Python 打开错目录)。
  2. 若仍失败:在 SD-Trainer 目录 下用整合包自带的 python_embeded\python.exe 执行一次 gui.py(或按发行说明执行官方「环境修复/重装」入口),完成依赖补全后再用 run_gui.bat
  3. 保留 sd-trainer-log.txt(整合包根目录)便于排查。

建议修复方向(供实现 PR 参考)

  • 将「是否已完整安装」从「仅检测 torch 目录」升级为更可靠判据(例如:对关键包 import 探针、或校验 requirements 安装标记、或首次失败后强制重跑 setup)。
  • 或在 torch 存在但 gui.py 异常退出时,引导用户重跑 setup_environment.py 并写清日志路径。

标签建议bugpackaging / portable(若仓库有对应标签可补充)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions