目前业界主流的sd训练基本都是基于diffusers和ldm的,这是huggingface的训练库,后者是stability ai在compvis等机构的基础上完善的,我目前工作上推理一般采用webui架构,训练采用diffusers,因此需要把webui的ckpt或者safetensors转成huggingface形式,在基于diffusers的lora训练,很多都是基于kohya_ss的,一般就是添加一些新的lora方法,另一种就是基于kohya_ss封装套个壳,方便训练。目前主流看来,还是关注diffusers官方的训练脚本,整个流程比较简洁,对比其他三方的脚本。
safetensors版本->convert->huggingface版本
huggingface版本->diffusers训练->huggingface版本lora权重bin文件->convert->safetensors
1.diffusers版本
这个版本是我训练的主要版本,基本上很多的sd训练都是在这个版本上改的,我也是以这个版本为基础,基本的fine-tune和lora finetune都有,训练的版本也比较丰富,包括unet和text encoder的训练等等,但是这里面有个文生图和图生图的区分,即inpaint的训练是否需要抽出来单独写,我看dreambooth是单独抽出来的版本,其他text_to_image目前没有提供inpaint的lora训练。
1.1 txt2img+lora
1.1 img2img_inpaint+lora ?
2.kohya-ss版本,也是很流行的lora训练脚本
基于diffusers做了二次封装,提供了不少工具和不同类别的lora,不过也没有提供inpaint模型的训练,issues中有人提了,作者说后续会考虑跟进,这个版本的模型可以直接是webui形式,不需要先转成huggingface格式。
https://github.com/kohya-ss/sd-scripts/issues/502
3.lora
GitHub - cloneofsimo/lora: Using Low-rank adaptation to quickly fine-tune diffusion models.
这个版本支持inpaint版本,也是基于diffusers做二次封装
4.lora-scripts
https://github.com/Akegarasu/lora-scripts
秋叶,继承自sd-scripts,做了封装,有了webui。
5.LyCORIS
https://github.com/KohakuBlueleaf/LyCORIS
支持各种各样的lora,而且有专门的lora加载器,可以添加到kohya版本中,训练方法可以嵌入在