Stable Diffusion 训练


前言

简单介绍了Stable diffusion的训练过程。


一、主要训练方式

Stable Diffusion主要有 4 种方式:Dreambooth, LoRA, Textual Inversion, Hypernetworks

1.Textual Inversion (也称为 Embedding),它实际上并没有修改原始的 Diffusion 模型, 而是通过深度学习找到了和你想要的形象一致的角色形象特征参数,通过这个小模型保存下来。这意味着,如果原模型里面这方面的训练缺失的,其实你很难通过嵌入让它“学会”,它并不能教会 Diffusion 模型渲染其没有见过的图像内容。

2.Dreambooth 是对整个神经网络所有层权重进行调整,会将输入的图像训练进 Stable Diffusion 模型,它的本质是先复制了源模型,在源模型的基础上做了微调(fine tunning)并独立形成了一个新模型,在它的基本上可以做任何事情。缺点是,训练它需要大量 VRAM, 目前经过调优后可以在 16GB 显存下完成训练。

3.LoRA (Low-Rank Adaptation of Large Language Models) 也是使用少量图片,但是它是训练单独的特定网络层的权重,是向原有的模型中插入新的网络层,这样就避免了去修改原有的模型参数,从而避免将整个模型进行拷贝的情况,同时其也优化了插入层的参数量,最终实现了一种很轻量化的模型调校方法, LoRA 生成的模型较小,训练速度快, 推理时需要 LoRA 模型+基础模型,LoRA 模型会替换基础模型的特定网络层,所以它的效果会依赖基础模型。

4.Hypernetworks 的训练原理与 LoRA 差不多,与 LoRA 不同的是,Hypernetwork 是一个单独的神经网络模型,该模型用于输出可以插入到原始 Diffusion 模型的中间层。 因此通过训练,我们将得到一个新的神经网络模型,该模型能够向原始 Diffusion 模型中插入合适的中间层及对应的参数,从而使输出图像与输入指令之间产生关联关系。

二、kohya_ss安装(Linux)

安装步骤参考:https://github.com/bmaltais/kohya_ss

1.打开终端并切换到所需的安装目录

2.通过运行以下命令克隆存储库

git clone https://github.com/bmaltais/kohya_ss.git

  
  
  • 1

3.切换到kohya_ss目录

cd kohya_ss

  
  
  • 1

4.通过执行命令来运行安装脚本

bash ./setup.sh

  
  
  • 1

5.安装完成后,在kohya_ss目录下,运行

bash ./gui.sh --listen 0.0.0.0 --server_port 12345 --inbrowser --share

  
  
  • 1

三、利用koyha_ss GUI训练lora

1.准备训练数据

  • 收集20张以上特定风格的图片
  • 保证图片的高质量(训练SDXL模型分辨率最好在10241024以上,训练SD1.5分辨率在512512以上)对模型训练结果有很大影响
  • 避免相似度高或者重复的图片

2.图像数据打标签(CLIP词表)

使用Stable-diffusion-webui中的Dataset Tag Editor
在这里插入图片描述

3.标签优化

在这里插入图片描述

4.训练配置

  • 保存好的图文对文件夹命名规范:”repeat_stylename”
  • repeat代表重复次数,越精细的图,值越高
  • batch_size:训练批量大小,根据显卡类型选择,一般为1,也可以增加
  • epoch:迭代次数
  • 总训练步数:一般在4000以上比较稳定,其计算公式如下 steps=Image数量×repeat×epocℎ/batcℎ_size

5.kohya_ss GUI训练lora

  • 切换到kohya_ss目录下
  • 运行bash ./run.sh打开kohya_ss训练界面
    在这里插入图片描述
    Configuration file 可以打开已有配置文件,自动配置训练参数,也可以保存之前选择好的参数以便下次使用。
  • 路径: LoRA – Training – source model
    在这里插入图片描述
  • 路径: LoRA – Training – Folders
    在这里插入图片描述
  • 路径: LoRA – Training – parameters – Basic
    在这里插入图片描述
    训练参数根据自己的需求设置,比如train batch size一般设为1,如果你的GPU算力充足则可以设置大一些,会加快训练速度。
  • 配置完成,开始训练
    在这里插入图片描述

总结

简单介绍了利用koyha_ss训练lora模型的过程,后面会继续补充更多相关知识!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值