赞
踩
需要训练自己的LORA模型
1、有sd-webui有训练插件功能
2、有单独的LORA训练开源web界面
两个开源训练界面
1、秋叶写的SD-Trainer
https://github.com/Akegarasu/lora-scripts/ 没成功,主要也是cudnn和nvidia-smi中的CUDA版本不一致退出
2、Kohya's GUI
GitHub - bmaltais/kohya_ss 成功了
遇到问题1,cudnn和nvidia-smi中的CUDA版本不一致
解决方法:unset LD_LIBRARY_PATH解决了我的问题
问题2:报错量化错误
优化器Optimizer 选 :AdamW
1、下载代码
git clone https://github.com/bmaltais/kohya_ss.git
2、有Python 3.10.8环境
- cd kohya_ss
-
- chmod +x ./setup.sh
-
- ./setup.sh
-
- ./gui.sh --listen=0.0.0.0 --headless
不要自己去安装python包,巨坑。
3、准备数据
下载该数据
https://huggingface.co/datasets/lambdalabs/pokemon-blip-captions/tree/main
- #安装处理该数据的包
- # pip install -i https://pypi.tuna.tsinghua.edu.cn/simple fastparquet
- # pip install pyarrow
-
- from fastparquet import ParquetFile
- datadir = r'./'
- filename = datadir + r'下载的数据.parquet'
- pf = ParquetFile(filename)
-
- dF = pf.to_pandas()
-
- from PIL import Image
- import io
- import base64
-
-
- # 将byte数据转换为PIL图像对象
- def save_png(name,image_bytes):
- image = Image.open(io.BytesIO(image_bytes))
-
- # 保存图像到文件
- filename = 'lora_data/'+str(name)+'.jpg'
- print(filename)
- # 调整尺寸
- new_image = image.resize((512, 512))
- new_image.save(filename)
- def save_txt(name,text):
- # text = "这是要保存的文本内容"
- filename = 'lora_data/'+str(name)+'.txt'
- with open(filename, 'w') as file:
- file.write(text)
- 保存数据的
- for index, row in dF.iterrows():
- # print(index,row['text'],row['image.bytes']) # 输出列名
- save_txt(index,row['text'])
- save_png(index,row['image.bytes'])
- if index==20:
- break
4、创建数据目录
在kohya_ss项目下,创建一个train目录,具体内容如下:
image : 图片放在这里。
log:训练记录
model:模型保存路径
image目录还有一个子目录,比如本文这里是100_pokemon,100表示100个steps,会直接影响训练的步数和效果,pokemon表示图片人物名称。
5、训练
训练数据目录填 /home/.../image 不要写到/home/.../image/100_pokemon
基础模型写全/media/...../openjourney-v4.ckpt
一定可以训练成功的,有数据有模型有步骤,不清楚可以联系我
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。