WSH032 / kohya-config-webui

A WebUI for making config files used by kohya_sd_script. 一个用于生成kohya-ss训练脚本使用的toml配置文件的WebUI
Apache License 2.0
95 stars 4 forks source link

开始训练时的报错 #4

Closed BanKnight closed 1 year ago

BanKnight commented 1 year ago

(B站过来的) 我今天又跑了一下,做了以下事情,没有重现之前的报错,但是有新的问题。 1 下载1.5和2.1的模型 2 修改生成的名称 3 修改底模为1.5 4 修改采样的prompt.其他参数默认 报错我贴在下面,你看看。

Traceback (most recent call last):
  File "/content/sd-scripts/train_network.py", line 773, in <module>
    train(args)
  File "/content/sd-scripts/train_network.py", line 146, in train
    text_encoder, vae, unet, _ = train_util.load_target_model(args, weight_dtype, accelerator)
  File "/content/sd-scripts/library/train_util.py", line 2923, in load_target_model
    text_encoder, vae, unet, load_stable_diffusion_format = _load_target_model(
  File "/content/sd-scripts/library/train_util.py", line 2889, in _load_target_model
    text_encoder, vae, unet = model_util.load_models_from_stable_diffusion_checkpoint(args.v2, name_or_path, device)
  File "/content/sd-scripts/library/model_util.py", line 856, in load_models_from_stable_diffusion_checkpoint
    _, state_dict = load_checkpoint_with_text_encoder_conversion(ckpt_path, device)
  File "/content/sd-scripts/library/model_util.py", line 833, in load_checkpoint_with_text_encoder_conversion
    checkpoint = torch.load(ckpt_path, map_location=device)
  File "/usr/local/lib/python3.10/dist-packages/torch/serialization.py", line 815, in load
    return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
  File "/usr/local/lib/python3.10/dist-packages/torch/serialization.py", line 1033, in _legacy_load
    magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: invalid load key, '\x09'.

我看上面的\x09很像是中文的原因,但实际情况是没有输入任何中文的

WSH032 commented 1 year ago

收到。 第2步不太明白,是指修改了下载出来的模型名字吗?是否保证扩展名正确。 第3步是指最终在webui里选择了SD1.5做为底模吗?

https://colab.research.google.com/github/WSH032/kohya-config-webui/blob/hotfix-colab/kohya_train_webui.ipynb 试试这个笔记本怎么样。这个笔记本里下载模型是带扩展名的。

新笔记本里我测试SD1.5和SD2.1都可以跑,但是SD2.1要开v2选项,SD1.5不能开v2

BanKnight commented 1 year ago

第2步:是指修改的训练后的存放名称,即是out_xxx 那个名字,不牵涉到原模型 第3步:是的

我后续测试发现,用的底模不改,用的默认的anime_xxx 那个模型,就可以正常训练 你说的新笔记,我得要等明天了,今天colab限额用完了。

不过有空我可以帮忙看看代码的,毕竟也是程序员了,只是python不是很熟悉

WSH032 commented 1 year ago

好的,非常感谢你的帮忙。 我的代码质量和编程规范不好,因为我不是学计算机的,边学边写出来的。


关于那个报错,我基本确定是模型载入的问题 而那个默认的anime_xxx ,它不加扩展名也能载入,所以我以前一直没测出这个bug 我已经把热修复并到主分支了,我猜应该没问题了

BanKnight commented 1 year ago

不是学计算机的,都能够搞出这个东西来,那还是很强的了。

加油