当前位置:首页|资讯|Stable Diffusion|LoRA

【AI画画踩坑记录】stable diffusion/lora训练踩坑记录(10/16系显卡)

作者:Gallone发布时间:2023-04-21

这周试了一下stable diffusion 和 lora模型的训练,因为显卡太菜所以遇到了一些坑,这里记录一下,如果有遇到同类问题的炼金术师(雾)也许可以参考看看

1050+2G:

画画可以,训练直接寄,报错RuntimeError: CUDA out of memory,显存不足。所有参数调到1+开Unet only+训练集分辨率128*128都不行,所以别想了,换显卡吧

1060+6G:

画画可以,可以简单训练。训练调试过程中的报错记录:

0、同上显存不足:参数调低点,起码能跑。据说设置PYTORCH_CUDA_ALLOC_CONF的max_split_size_mb=32可破,但我试了32和128,都没成功。想再挣扎一下的可以参考:

通过设置PYTORCH_CUDA_ALLOC_CONF中的max_split_size_mb解决Pytorch的显存碎片化导致的CUDA:Out Of Memory问题_梦音Yune的博客-CSDN博客

1、具体的报错log忘了,原因是CUDA和pytorch版本没对上,解决方法有俩,一个是改CUDA版本,一个是改pytorch版本,网上建议改后者,但我直接升级驱动之后也解决了。看CUDA版本的方法:cmd里输入nvidia-smi

2、Error no kernel image is available for execution on the device,原因是10系显卡太破了,不支持unit8,解决方法参考:

【Lora模型训练过程报错】Error no kernel image is available for execution on the device at line_安利FFF的博客-CSDN博客

3、“页面文件太小。无法完成操作”:调低batch_size = 1,然后把训练脚本所在的盘的虚拟内存开到60G可破

1660+6G:

大坑,据说是因为fp16数据类型在运算时会出现nan,所以画画和训练都会出问题

1、画画会出现黑图/卡生成95%,如果用的启动器,要在设置里关掉半精度优化,我顺便把nancheck也关了,好像就没怎么画黑图了

2、训练一开始就loss = nan,训了白训。需要改配置为mixed_precision="no",但这样会导致6G显存叕不太够用了,只能降低训练集的分辨率了

3、训练加reg会出现RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling `cublasCreate(handle) ,跟之前的显存不足报错内容不太一样,但ChatGPT告诉我这也是显存不足的原因,于是我把各参数调到1试了一下,确实能run了,看来就是显存不足,鉴定为寄

(未完待续...)


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1