记录一下那天晚上的排查过程。启动训练脚本时报 OSError,提示找不到指定的底模文件,路径里明明有中文目录。

刚开始盯着「配置文件里的路径与命令行参数冲突」,折腾了半个多小时,排掉了。

原因不止一个,得分开看。路径含中文或空格,命令行解析失败。也可能是用了相对路径,工作目录不是脚本所在目录。

另外,模型是分片格式,需要先合并成单文件。

动手时先确认文件存在并打印绝对路径

python -c "import os;print(os.path.abspath('sd_xl_base_1.0.safetensors'))"

再往下改用英文目录并传绝对路径

accelerate launch sdxl_train_network.py --pretrained_model_name_or_path=D:/models/sd_xl_base_1.0.safetensors

接着分片模型先合并成单文件

python -c "print('merge shards first')"

等前面都确认过,再确认配置文件里的路径字段

python -c "print(open('config.toml', encoding='utf-8').read()[:200])"

改完先别撤,确认这几项。训练正常启动并加载权重,日志里打印出模型参数量,loss 开始输出。

Windows 下中文路径是这类工具的高频故障点,把模型统一放在英文目录能省掉大量莫名报错。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189