stable diffusion打造自己专属的LORA模型
通过Lora小模型可以控制很多特定场景的内容生成。
但是那些模型是别人训练好的,你肯定很好奇,我也想训练一个自己的专属模型(也叫炼丹~_~)。
甚至可以训练一个专属家庭版的模型(family model),非常有意思。
将自己的训练好的Lora模型放到stableDiffusion lora 目录中,同时配上美丽的封面图。
(plen_me、plen_vivi,这两个是我训练的和家里人的模型~_~)
这样就可以将你的Lora模型和其他Lora模型融合使用了。
再配上Controlnet基本可以,将自己的pose+特征融入到其他任何lora模型中。
【1】
下面我们看下如何训练自己的模型。
(我的炼丹炉配置,win10+i7F+4080 )
首先,Lora模型可以通过lora-scripts 脚本进行训练。
仓库地址:https://github.com/Akegarasu/lora-scripts
找个目录拉下来,先安装sd-scripts子项目,然后安装lora-scripts项目。
(敲黑板)重点看下sd-scripts 子项目:
https://github.com/kohya-ss/sd-scripts/tree/b5c60d7d62d6bb4a174ac09327dc517fc4446523
要严格按照作者给的步骤安装。(要不然会有很多奇怪的问题)
如果顺利的话大概安装需要30min左右。(需要kexue上网应该就不用多介绍了)
【2】
接下来准备需要训练的图片。
根据最后的生成效果,要找头像清晰的,脸部轮廓清楚的,背景最好是白色的。
然后就需要我们将图片进行预处理。
先将图片放在一个文件夹里,然后定一个预处理之后的文件夹名字。
然后在stablediffusion中找到【训练】【图像预处理】模块
按照说明,填入预处理图片路径和目标目录,然后选择【Deepbooru生成标签】。然后点击【Preprocess】,等处理完成。
到目标目录下,看下生成的标签信息。
这些标签就是训练模型的图片特征了,基本上生成出来的标签还是要check下。
如果某个重要的标签丢失,或者识别错误(girl识别成boy ~_~)会直接影响炼丹质量。
【3】
将预处理目标文件夹复制到lora-scripts脚本的主目录的train目录中。(如果没有就创建一个)
如果你有多个训练集合可以在train中创建一个目录,然后放到这个目录中。
训练自己的专属模型,需要依赖一个主模型。真人特征的模型貌似用 chilloutmix_NiPrunedFp32Fix 比较流行(这个模型很强大,你懂的!)。
模型地址:
https://huggingface.co/naonovn/chilloutmix_NiPrunedFp32Fix/tree/main
将下好的模型文件复制到lora-scripts->sd-models文件夹中。
【4】
准备工作差不多了,我们编辑下训练脚本。
lora-scripts目录中的train.ps1 脚本文件。
# Train data path | 设置训练用模型、图片
$pretrained_model = "./sd-models/chilloutmix_NiPrunedFp32Fix.safetensors" # base model path | 底模路径
$train_data_dir = "./train/test" # train dataset path | 训练数据集路径
$pretrained_model:就是我们下载的训练模型的基础模型,把名字换掉。
$train_data_dir:训练数据目录。
# Train related params | 训练相关参数
$resolution = "512,512" # image resolution w,h. 图片分辨率,宽,高。支持非正方形,但必须是 64 倍数。
$batch_size = 2 # batch size
$max_train_epoches = 20 # max train epoches | 最大训练 epoch
$save_every_n_epochs = 2 # save every n epochs | 每 N 个 epoch 保存一次
$resolution:如果你的图片预处理的时候没有调整过,这里就保持默认。
$batch_size、$max_train_epoches:如果你的卡不是很强,这里的参数可以小一点。(这两个参数主要控制训练的次数和显存加载的张量数据集)。
# Output settings | 输出设置
$output_name = "meoutput" # output model name | 模型保存名称
$output_name:用默认的也行,最好自定义一个名字,避免重复生成覆盖原来模型。
保存,然后右键 【使用PowerShell运行】。
(这里还是要祈祷下,不一定能一次成功。~_~)
脚本在运行过程中会出现一些'triton'加载失败的错误。
但是其实不影响模型的训练(我查了下好像是windows电脑就不支持这个模块)。
这里的错误如果不能正常执行,大概率是前面敲黑板的地方你没有仔细看。
等模型训练完。(我15张图,大概跑了10min左右。)
我们看下output目录输出的模型文件。
这里的模型文件保存的个数,是train.ps1脚本文件里设置的。
最后我们要通过验证这些模型准确度,选用哪一个。
【5】
将这些模型文件全部复制到
E:\stable-diffusion-webui\extensions\sd-webui-additional-networks\models\lora
对应的扩展忙碌下。
如果还没有安装 sd-webui-additional-networks 扩展,记得先到扩展中安装。
也可以直接用git地址安装(有时候这个扩展查询有点问题)
https://github.com/kohya-ss/sd-webui-additional-networks.git
然后我们测试下这几个模型哪一个不错。
顺利安装插件之后,就可以在界面上看到 【Additional Networks】功能菜单。
要测试自己的模型,基础模型还是要选用我们训练的 chilloutmix_NiPrunedFp32Fix 模型。
prompt可以用自己提取的标签作为测试。
批次可以适当多点,到时候可以选择。
这个过程大概需要个20min左右。(可以喝点茶等待创作了~_~)。
来一起见证AI的创作吧 ~~!
图片的上方是每一个模型名称,左边是特征权重,组成的一个二维表格。
有点那个意思 hhh。
下面这些就有点辣眼睛了 。
根据自己的眼光,我们挑选一个相对比较不错的模型。
整体觉得这个模型不错,我们记下模型的名字。
将这个模型复制到 E:\stable-diffusion-webui\models\Lora 目录中。
可以给你的模型配上一个封面,只要文件名和模型名一样就可以了。
【6】
有了自己的专属模型,就可以结合其他lora模型一起使用了。
我们试下水墨风格。
下载lora模型:Moxin_10
下载基础模型:dalcefoPainting_3rd.safetensors
(有些基础模型在C站没有,可以到huggingface上找找,再不行github上肯定有)
点开这个红色的收缩面板。
刷新一下,让lora模型文件重新加载下。
然后选择我们保存的lora文件,此时这个模型的prompt设置会在文本框里。
然后再选择水墨风模型 Moxin。
调整下每一个模型的权重,此时可以将我们自己的模型特征调大些。
如果没啥问题,我们就去C站找这个lora比较好的prompt拿过来用。
这张虽然有点辣眼睛,但是特征是有了。
这一张比较像我女儿 ~_~。
最后,stablediffusion+lora等AIGC属于开挂技术,我们还是要遵纪守法做一个好同志!!!
stable diffusion打造自己专属的LORA模型的更多相关文章
- 使用 LoRA 进行 Stable Diffusion 的高效参数微调
LoRA: Low-Rank Adaptation of Large Language Models 是微软研究员引入的一项新技术,主要用于处理大模型微调的问题.目前超过数十亿以上参数的具有强能力的大 ...
- AI绘画提示词创作指南:DALL·E 2、Midjourney和 Stable Diffusion最全大比拼 ⛵
作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 自然语言处理实战系列:https://www.showmeai.tech ...
- 从 GPT2 到 Stable Diffusion:Elixir 社区迎来了 Hugging Face
上周,Elixir 社区向大家宣布,Elixir 语言社区新增从 GPT2 到 Stable Diffusion 的一系列神经网络模型.这些模型得以实现归功于刚刚发布的 Bumblebee 库.Bum ...
- 基于Docker安装的Stable Diffusion使用CPU进行AI绘画
基于Docker安装的Stable Diffusion使用CPU进行AI绘画 由于博主的电脑是为了敲代码考虑买的,所以专门买的高U低显,i9配核显,用Stable Diffusion进行AI绘画的话倒 ...
- 定制化移动办公APP:打造企业专属的“钉钉”“纷享销客”,实现企业办公管理一体化
一.项目背景 随着信息化社会的高速发展,市场竞争日益激烈,传统的管理和办公系统多且复杂,用户需要使用多个系统才可完成一项工作,而且各个系统的界面和风格存在差异,造成了信息查找不便,大大降低了用户的工作 ...
- 【Microsoft Azure 的1024种玩法】四. 利用Azure Virtual machines 打造个人专属云盘,速度吊打某云盘
[简介] 1.Azure Virtual machines是Azure 提供的多种可缩放按需分配计算资源之一,Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或 ...
- 从零开始打造个人专属命令行工具集——yargs完全指南
前言 使用命令行程序对程序员来说很常见,就算是前端工程师或者开发gui的,也需要使用命令行来编译程序或者打包程序 熟练使用命令行工具能极大的提高开发效率,linux自带的命令行工具都非常的有用,但是这 ...
- Ajax配合vue+element打造个人专属loading
最近有使用到element组件中的loading,主要是处理后台传输数据太大,页面这边较长时间处于一个白屏,这里使用了一个loading组件,来进行一个优化,当然这只是视觉层面的一个简单优化,如果不用 ...
- 打造个人专属网盘nextcloud
原文 https://edu.aliyun.com/course/150/lesson/list?spm=5176.9278281.815111.sence.114d4f3eLLMS53
- AIGC 很火,想微调个自己的模型试试看?(不是卖课的)
去年,我们发布过一篇关于 DreamBooth 编程马拉松的活动通知,获得了全球社区的广泛关注和参与,中国社区的成员们也对这个活动有非常高的热情.同时我们也收到了后台留言反馈说参与活动需要使用的 Go ...
随机推荐
- docker知识篇
什么是Docker?Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机).b ...
- Unity 导出设置iOS 项目
别人的代码 xcode打包部分设置的脚本如下 public class XcodeSetting : MonoBehaviour { private static List<Menu> m ...
- ybtoj 12F
求值的话改为求解前缀和的值,通过两个前缀和相减即可得到每个值. 每次询问相当于给一个方程. 一共有 $n$ 个未知数,因此需要 $n$ 个方程,同时每个数都必须至少在方程中出现一次. 最小生成树求解即 ...
- 剑指offer-删除链表中的重复结点
题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...
- 在虚拟机上安装CentOS6.5(minimal)
在虚拟机上安装CentOS6.5(minimal) 2017年04月04日 09:40:38 kongmd 阅读数:2171 1.安装CentOS6.5 1.首先下载VMware ,和CentOS ...
- window nginx php ci框架环境搭建
下载nginx 后修改配置文件: location / { #try_files $uri $uri/ /index.php?$query_string; root C:\Software\serve ...
- 持续集成环境(5)-Maven安装和配置
在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目. 安装Maven 1.下载Maven软件到jenkins服务器上 wget https://mirrors.aliyun.com/ ...
- cesium 3d tileset 问题总结
Cesium 3d Tileset 中 i3dm 中存储的模型坐标为笛卡尔坐标,占四个字节,因为地球半径比较大,所以只有整数位和小数点后1位有效,因此会损失精度.对于要求精度比较高的模型,会发现位置偏 ...
- 前端复习之DOM、BOM
BOM VS DOM: 1 BOM:浏览器对象模型(API),专门操作浏览器窗口的API 2 没标准! 3 DOM:文档对象模型(API),专门操作网页内容的API 4 可以对网页中任意对象,做任意修 ...
- XML的定义以及XML的编写
什么是XML? 定义 1. XML 是 EXtensible Markup Language 这个单词的简写,中文意思就是:可扩展标记语言. a)可扩展:html 标签是预先定义好的,不能任意定义, ...