手把手教你用LoRA训练自己的Stable Diffusion模型

目录

写在前面

一、准备数据

二、数据打标签

三、执行训练

四、执行推理

1.LoRA推理

2.全参数推理

写在前面

Stable Diffusion大家已经很熟悉了,那么如何训练自己的sd模型呢,今天我就介绍一下用LoRA训练sd的方法。

建议先看一下这两篇文章,了解一些前置知识:

手把手教你在linux中部署stable-diffusion-webui

如何训练一个大模型:LoRA篇

我们以Chilloutmix为例,Chilloutmix可以生成好看的小姐姐。为了实验LoRA的能力,我们用小哥哥的图片对它进行微调,看效果如何。

一、准备数据

从网上找一些小帅的图片,需要脸部清晰的、多角度的、正脸的、侧脸的、最好是背景干净的、各种表情的,这样增加训练集的多样性,提高模型的泛化能力。

素材可以少(一般几十张就不少了,太多了也会过拟合),但是质量一定要高。

背景最好是纯色,想训练什么就突出什么,对于我们的任务,需要选取人脸为重点的图片。

搜集好训练用的图像后,需要进行大小的规范处理,需要是64的倍数。一般都处理为512*512,也可以是768*768,不建议超过1024,尺寸越大则越吃显存。

推荐一个批量处理图像尺寸的网站挺好用的:https://www.birme.net/

处理后的图片长这样:

二、数据打标签

其实我们要训练的是ControlNet,现在图片有了,还差图片的描述或者叫标签。我们不需要自己手动给每张图片打标签,sd-webui有现成的工具(DeepBooru)生成图片的标签。

在sd-webui中进行如上操作,在3填写输入图片的目录,4填写输出目录,处理之后原图片和标签文件txt都会放在输出目录

txt中的内容长这样,都是一个一个的标签:

接下来我们要检查每张图片的标签,这里有两个简单的原则:

1.通用的特征标签需要去掉,比如人物的眼睛、眉毛、鼻子、头发长度等代表人物本身的属性。凡是绑定在人物身上的,就要把它们删除。再比如出图只要黑色头发,那训练数据都喂黑色头发,并且删掉类似“black_hair”的标签。

2.留下非通用的标签,比如不是每张训练数据都是微笑的,所以对于微笑的数据应该有“smile”标签;不是所有的数据背景都是白色,就要保留“white backgroud”。

具体保留或者增加什么标签其实没有硬性的规定,还是要根据具体情况反复尝试。

sd-webui是有打标签的插件的,但是我更喜欢一款小工具,方便多人使用,BooruDatasetTagManager,地址:https://pan.baidu.com/s/1Ff7nkwf95AziCcZWTofIzg?pwd=jfoe

数据和标签准备好后放在一个自定义的目录中待用,有一点需要注意,文件名的格式是数字_字母,前面的数字是每次训练过程中网络训练单张图片的**次数,比如10_asianman。**这个目录命名很重要,一定不要写错!!!

三、执行训练

LoRA训练我们使用kohya,kohya是日本人开发的,所以会经常出现日文,凑活这看吧。

1.建一个conda环境

conda create --name kohya python=3.10

2.进入环境

conda activate kohya

3.下载kohya,别忘了下载sd-scripts目录中的项目:kohya-ss (Kohya S.) · GitHub,下载后执行:

pip install -r requirements.txt

4.因为我们是对Chilloutmix进行微调,所以先在这里下载Chilloutmix,并放在model目录下。

5.启动kohya:

python kohya_gui.py --listen 0.0.0.0 --server_port 12348 --inbrowser

6.打开地址http://[ip]:12348/ ,并填写配置信息:

同时Parameters菜单中还有一些高级设置,比如batch size、train steps、LoRA的秩、Alpha等:

一些注意:

1.训练时的总epoch数是算出来的,上面的Epoch好像没有用,计算公式是:

Max train steps * Train batch size / (数据总数 * 训练单张图片的次数),这算法很奇怪,他把Train batch size当做了batch size per device

2.LoRA的秩用8就可以了,Alpha训练人物一般都设32,64都可以;训练风格可以用到128。

  1. 我看到有的文章说不能直接用safetensors文件直接训练,必须还要有config.json,但是我没有遇到这种情况。如果遇到了可以下载这个,放在项目根目录的openai/clip-vit-large-patch14 和 laion/CLIP-ViT-bigG-14-laion2B-39B-b160k

4.如果要全参数训练只需选择Dreambooth菜单,其它使用方式和LoRA基本相同:

5.如果报这个错的话:‘FieldInfo’ object has no attribute ‘required’. Did you mean: ‘is_required’?,是一些库的版本冲突了,可以试试如下命令:

pip install gradio==3.48.0
pip install pydantic==1.10.13 pydantic_core==2.14.6
pip install transformers==4.38.0
pip install accelerate==0.25.0
pip install torch==2.1.1
pip install xformers==0.0.23

四、执行推理

训练成功后模型会存在输出目录,比如叫做models/last-000007.safetensors。

1.LoRA推理

(1)安装additional-networks

如果sd-weiui的“text2img”和“img2text”中已经有Additional Networks菜单,则之间跳过该步骤。

安装additional-networks插件,有两种方式:
a.在“Extensions-URL for extension’s git repository”输入https://github.com/kohya-ss/sd-webui-additional-networks就可以安装了。

    b.如果网络不允许的话,就自行下载压缩包解压放到SD的extensions目录下。

    安装完之后一定要重启sd进程!之后我们可以看到选项卡上多了一个Additional Network选项。

(2)将Chilloutmix基础模型放在models/Stable-diffusion目录

(3)将训练完的LoRA模型放在sd-webui的extensions/sd-webui-additional-networks/models/lora目录

(4)使用基础模型重绘一张图片看看,都是小姐姐:

(5)使用LORA,再生成看看:

emmm,已经有很强的男性特征,证明LoRA生效了。

2.全参数推理

如果使用全参数训练的模型,模型结果比较大,有几个g。使用更简单了,放在models/Stable-diffusion中,直接选择这个模型就可以了。

用LoRA训练自己的SD模型就介绍到这里,关注不迷路(#.#)

还在为找工作烦恼吗,用这个宝藏小程序,拿Offer快人一步!

关于AI绘画技术储备

学好 AI绘画 不论是就业还是做副业赚钱都不错,但要学会 AI绘画 还是要有一个学习规划。最后大家分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!

对于0基础小白入门:

如果你是零基础小白,想快速入门AI绘画是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:stable diffusion安装包、stable diffusion0基础入门全套PDF,视频学习教程。带你从零基础系统性的学好AI绘画!

需要的可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

1.stable diffusion安装包 (全套教程文末领取哈)

随着技术的迭代,目前 Stable Diffusion 已经能够生成非常艺术化的图片了,完全有赶超人类的架势,已经有不少工作被这类服务替代,比如制作一个 logo 图片,画一张虚拟老婆照片,画质堪比相机。

最新 Stable Diffusion 除了有win多个版本,就算说底端的显卡也能玩了哦!此外还带来了Mac版本,仅支持macOS 12.3或更高版本

在这里插入图片描述

2.stable diffusion视频合集

我们在学习的时候,往往书籍代码难以理解,阅读困难,这时候视频教程教程是就很适合了,生动形象加上案例实战,一步步带你入门stable diffusion,科学有趣才能更方便的学习下去。

在这里插入图片描述

3.stable diffusion模型下载

stable diffusion往往一开始使用时图片等无法达到理想的生成效果,这时则需要通过使用大量训练数据,调整模型的超参数(如学习率、训练轮数、模型大小等),可以使得模型更好地适应数据集,并生成更加真实、准确、高质量的图像。

在这里插入图片描述

4.stable diffusion提示词

提示词是构建由文本到图像模型解释和理解的单词的过程。可以把它理解为你告诉 AI 模型要画什么而需要说的语言,整个SD学习过程中都离不开这本提示词手册。

在这里插入图片描述

5.AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述
这份完整版的学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值