大连全瓷种植牙齿制作中心 发表于 2024-6-15 00:00:11

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

目次
写在前面
一、准备数据
二、数据打标签
三、执行练习
四、执行推理
1.LoRA推理
2.全参数推理

写在前面

        Stable Diffusion大家已经很熟悉了,那么怎样练习自己的sd模型呢,本日我就介绍一下用LoRA练习sd的方法。
        发起先看一下这两篇文章,了解一些前置知识:
        手把手教你在linux中摆设stable-diffusion-webui
        怎样练习一个大模型:LoRA篇
        我们以Chilloutmix为例,Chilloutmix可以天生悦目的小姐姐。为了实验LoRA的能力,我们用小哥哥的图片对它举行微调,看结果怎样。
https://img-blog.csdnimg.cn/direct/6dc782edd96040ee9c8a7b765823d114.png
一、准备数据

        从网上找一些小帅的图片,需要脸部清晰的、多角度的、正脸的、侧脸的、最好是背景干净的、各种心情的,如许增加练习集的多样性,提高模型的泛化能力。
        素材可以少(一般几十张就不少了,太多了也会过拟合),但是质量一定要高。 
        背景最好是纯色,想练习什么就突出什么,对于我们的任务,需要选取人脸为重点的图片。
        搜集好练习用的图像后,需要举行巨细的规范处置惩罚,需要是64的倍数。一般都处置惩罚为512*512,也可以是768*768,不发起超过1024,尺寸越大则越吃显存。
        推荐一个批量处置惩罚图像尺寸的网站挺好用的:https://www.birme.net/ 
        处置惩罚后的图片长如许:
https://img-blog.csdnimg.cn/direct/44a08b16df6541ba89161c960eed9285.png
二、数据打标签

        其实我们要练习的是ControlNet,现在图片有了,还差图片的形貌大概叫标签。我们不需要自己手动给每张图片打标签,sd-webui有现成的工具(DeepBooru)天生图片的标签。
https://img-blog.csdnimg.cn/direct/95cc0f2bc7a34615a346ee798c06eb77.png
        在sd-webui中举行如上操作,在3填写输入图片的目次,4填写输出目次,处置惩罚之后原图片和标签文件txt都会放在输出目次
https://img-blog.csdnimg.cn/direct/a6180d0b9a2448c4ba47eb87e77a7f47.png
        txt中的内容长如许,都是一个一个的标签:
https://img-blog.csdnimg.cn/direct/81efda219b0b47b88cf50d8a8d99b0c6.png
        接下来我们要查抄每张图片的标签,这里有两个简朴的原则:
        1.通用的特征标签需要去掉,比如人物的眼睛、眉毛、鼻子、头发长度等代表人物自己的属性。凡是绑定在人物身上的,就要把它们删除。再比如出图只要黑色头发,那练习数据都喂黑色头发,而且删掉雷同“black_hair”的标签。
        2.留下非通用的标签,比如不是每张练习数据都是微笑的,以是对于微笑的数据应该有“smile”标签;不是所有的数据背景都是白色,就要保留“white backgroud”。
        详细保留大概增加什么标签其实没有硬性的规定,还是要根据详细情况反复尝试。
        sd-webui是有打标签的插件的,但是我更喜欢一款小工具,方便多人使用,BooruDatasetTagManager,地点:https://pan.baidu.com/s/1Ff7nkwf95AziCcZWTofIzg?pwd=jfoe 
https://img-blog.csdnimg.cn/direct/f75b1da324024de395e1e0fa127ae3d2.png
        数据和标签准备好后放在一个自界说的目次中待用,有一点需要注意,文件名的格式是数字_字母,前面的数字是每次练习过程中网络练习单张图片的次数,比如10_asianman。这个目次定名很重要,一定不要写错!!!
三、执行练习

        LoRA练习我们使用kohya,kohya是日本人开辟的,以是会经常出现日文,凑活这看吧。
        1.下载kohya,别忘了下载sd-scripts目次中的项目:kohya-ss (Kohya S.) · GitHub,下载后执行:
pip install -r requirements.txt         2.因为我们是对Chilloutmix举行微调,以是先在这里下载Chilloutmix,并放在model目次下。
        3.启动kohya:
python kohya_gui.py --listen 0.0.0.0 --server_port 12348 --inbrowser         4.打开地点http://:12348/ ,并填写配置信息:
https://img-blog.csdnimg.cn/direct/ec31ec0e37984e10b9310de2d1ccac03.png
同时Parameters菜单中另有一些高级设置,比如batch size、train steps、LoRA的秩、Alpha等:
https://img-blog.csdnimg.cn/direct/637778ee33b94b679cf33e0898693ebc.png
https://img-blog.csdnimg.cn/direct/66d2bb62b18d46bcb4dd1d4a94d8bdb5.png
        一些注意:        
        1.练习时的总epoch数是算出来的,上面的Epoch好像没有效,盘算公式是:
Max train steps * Train batch size / (数据总数 * 练习单张图片的次数),这算法很奇怪,他把Train batch size当做了batch size per device
https://img-blog.csdnimg.cn/direct/610ed96294c14bf4bee8dfabfd13685f.png
        2.LoRA的秩用8就可以了,Alpha练习人物一般都设32,64都可以;练习风格可以用到128。
        3. 我看到有的文章说不能直接用safetensors文件直接练习,必须还要有config.json,但是我没有遇到这种情况。如果遇到了可以下载这个,放在项目根目次的openai/clip-vit-large-patch14 和 laion/CLIP-ViT-bigG-14-laion2B-39B-b160k
        4.如果要全参数练习只需选择Dreambooth菜单,别的使用方式和LoRA基本相同:
https://img-blog.csdnimg.cn/direct/12611894b9e94ccfbf824c721239320b.png
        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菜单,则之间跳过该步骤。
https://img-blog.csdnimg.cn/direct/0998d54894ab476d978429dd14906710.png
        安装additional-networks插件,有两种方式:
        a.在“Extensions-URL for extension's git repository”输入https://github.com/kohya-ss/sd-webui-additional-networks就可以安装了。
https://img-blog.csdnimg.cn/direct/a7a3ad6f9b8a4edb9760b6f175646268.png
        b.如果网络不答应的话,就自行下载压缩包解压放到SD的extensions目次下。
        安装完之后一定要重启sd进程!之后我们可以看到选项卡上多了一个Additional Network选项。
(2)将Chilloutmix基础模型放在models/Stable-diffusion目次
(3)将练习完的LoRA模型放在sd-webui的extensions/sd-webui-additional-networks/models/lora目次
(4)使用基础模型重绘一张图片看看,都是小姐姐:https://img-blog.csdnimg.cn/direct/afbbbd6183514bfba0e9cc88e7be5b20.png
(5)使用LORA,再天生看看:
https://img-blog.csdnimg.cn/direct/d6d619bfc1974516afedf8a0253eac05.png
https://img-blog.csdnimg.cn/direct/c54b2f2116b647f89cc19b573bcd7097.png
        emmm,已经有很强的男性特征,证明LoRA生效了。
2.全参数推理

        如果使用全参数练习的模型,模型结果比力大,有几个g。使用更简朴了,放在models/Stable-diffusion中,直接选择这个模型就可以了。
https://img-blog.csdnimg.cn/direct/53b59af5038042fbb22682e155c84d7a.png
        用LoRA练习自己的SD模型就介绍到这里,关注不迷路(#^.^#)
关注订阅号了解更多佳构文章
https://img-blog.csdnimg.cn/direct/c168ea67aa0d45e4a8db954fd4eaa145.jpeg
交流探究、商务合作请加微信
https://img-blog.csdnimg.cn/direct/ddac0a92f7884455ae19fa73f5bf6dbd.jpeg


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 手把手教你用LoRA练习自己的Stable Diffusion模型