赛博炼丹师手记

2024-04-07 01:28
文章标签 赛博 手记 炼丹

本文主要是介绍赛博炼丹师手记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 0. 丹炉安置
  • 1. 炼丹手法
    • 1.1 前置准备
    • 1.2 数据标注
    • 1.3 开始炼丹
    • 1.4 结果验收
  • 2. 炼丹心法
    • 2.1 步数相关
    • 2.1 效率相关
    • 2.2 质量相关
  • 3. 相关文献

0. 丹炉安置

个人推荐b站up主朱尼酱出品的道玄丹炉,新手易懂,老手易用。

丹炉下载地址如下:

  • 夸克xyy 盘链接
  • 百度网盘链接

1. 炼丹手法

1.1 前置准备

  1. 首先我们需要准备好我们的底模和触发关键词,同时选择丹炉的风格(一些预制好的参数)。
    在这里插入图片描述
  2. 收集20~30张的素材,对其裁剪为固定尺寸大小,然后上传到丹炉之中

注:裁剪可以使用如下网站进行批量裁剪:birme
在这里插入图片描述

1.2 数据标注

勾选【脸部加强训练】,点击预处理,即可进行AI自动标注:

注:勾选了之后就会再多裁剪出来一组只有脸的照片,这样AI能学到更多的脸部细节

在这里插入图片描述

点击【TAG编辑】,这里面就是形容照片的一些标签,右边是所有照片的标签,单独点击某一张照片就可以看到这张照片的标签。

注1:如果你想保留人物的某个特征,那就要把对应的标签删掉,这样AI就会默认这个人就是有这个特征
注2:如果你想灵活调整某个特征,那就要把这个特征打上标签
在这里插入图片描述

1.3 开始炼丹

点击【开始训练】即可开始炼丹。其中Steps”就是训练步数,每训练50步右下角就会出现一张图片,那样就可以实时看到Lora的泛化能力。

注:Loss可以用来参考模型的好坏,一个好的模型Loss值在0.07~0.09之间具体好不好还是要在Stable Diffusion实际测试才知道

请添加图片描述

1.4 结果验收

等训练完了之后,点击【模型】,就可以看到生成出来模型按照默认参数训练会出来N个模型,但不是说最后一个模型就是最好的。有可能炼到第六第七个模型就已经够了,再往后的模型就已经训练过度了。所以这些模型还要实际在SD测试一下,才知道哪个是最好的
在这里插入图片描述
选了Lora之后,我们就会在关键词的文本框里看到这串Lora的编号
在这里插入图片描述
然后把“000006”那段数值改成“NUM”,把最后的数字“1”改成“STRENGTH”,也就是权重的意思。
在这里插入图片描述
然后滑到最下面找到【脚本】,在脚本里面选择 【X/Y/Z图表】,X轴、Y轴类型都选择 【提示词搜索/替换】:

  • X轴的值输入:NUM,000001,000002,000003,000004,000005,000006,000007,000008,000009,000010

注:这里的序号对应的就是我们10个Lora的编号

  • Y轴值输入:STRENGTH,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1

注:这里的序号代表的是Lora的权重

在这里插入图片描述
最后点击【生成】,可以得到如下的图表,大家根据自己的需要选择合适的模型。
在这里插入图片描述

2. 炼丹心法

注:此章节主要会介绍有关lora 模型训练的超参数

炼制模型的本质是在如下的图像中,找到全局最低点(函数最优解):
在这里插入图片描述

2.1 步数相关

丹炉的步数设置主要给我们暴露的时候如下的两个参数:

  • Repeat:学习步数,其指的是对于一张图片模型要学习多少次。

注:理论上学习次数越多,模型越能习得图片特征。但是这个数值并不是越大越好,当到达某个临界点之后,模型对图片认知就会得到固化,失去了创造能力。这就是模型训练之中的过拟合现象。

经验参数Repeat
人物80~120
风景20~30
二次元20~50
  • Epoch:模型训练循环次数。在每个epoch之中,都需要对一张图片进行Repeat次学习。

注:假如当前的 r e p e a t = 150 , e p o c h = 15 , i m a g e s i z e = 10 repeat = 150, epoch = 15, image_{size} = 10 repeat=150,epoch=15,imagesize=10,则本次模型的总训练步数为 r e p e a t ∗ b a t c h ∗ i m a g e s i z e = 22500 repeat*batch*image_{size}=22500 repeatbatchimagesize=22500
在这里插入图片描述

2.1 效率相关

  • BatchSize:模型一次参数更新中使用的样本数量。

注1:训练数据会被划分为多个小批次进行处理,每次处理的样本(图片)数量就是BatchSize。
注2:此参数会直接影响模型的内存占用和训练速度。假设每一步训练的时间是1s,总步数为22500,BatchSize为5,那么总得训练时间为: ( 22500 / 5 ) ∗ 1 = 4500 s (22500/5)*1 = 4500s (22500/5)1=4500s
注3:此时的模型训练Loss Function为BatchSize个样本结果的平均值,这以为着当BatchSize过大的时候,模型在每次更新时的梯度更新将更为平均,失去一定的拟合泛化能力。当前样本数量仅为20时,建议这个值不要超过4

  • Optimizer:优化器,其用于更新和调整模型参数以最小化训练误差的算法。优化器能够使用损失函数的梯度来指导模型参数的更新,从而帮助模型更好地学习和适应数据。
优化器推荐备注
AdamW8bit1e-4-
DAdaptation1常用作测试最优学习率
Lion-DA最优结果的1/3
  • Save Every N Epochs:每N轮保存一个模型。

注:假设其值为1, E p o c h = 15 Epoch = 15 Epoch=15 ,则每个Epoch结束之后都会保存一个模型,总共会保存15个模型

  • Lr Scheduler:学习率调度器,用于动态调整学习率,避免模型训练中得到局部最优解。
调度器解释
constant恒定学习率,此时学习率为静态学习率在这里插入图片描述
constant with warmup带预热恒定学习率,前期会有一个预热抬升,帮助AI在不熟悉训练集的时候慢慢接触,防止掉入局部最优的陷阱在这里插入图片描述
cosine余弦退火,一开始给出较高学习率,后期使得学习率更加平稳的降低,帮助跳出局部最优在这里插入图片描述
cosine with restarts余弦退火重启,每隔几步会重启在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.2 质量相关

  • Unet Lr:特征提取学习率,其表示学习样本的速度。

注1:学习率高(对应下图中下面那一行,会导致模型得不到最优解)可以更快的完成对样本的学习,但是会导致囫囵吞枣,失去图片的一些细节。学习率过低会导致每一步都学习的特别慢,学习不完整个样本,导致欠拟合。
注2:一般设置为1e-4 到1e-3之间
在这里插入图片描述

  • Text Lr:文本学习率,其主要用于将我们对图片打标的tag转换为AI能够理解的模型或者算法。

注:其通常为Unet Lr的1/10,不超过1e-4

  • Network Dim:神经网络维度,其值越高,网络越密集,可以表现的特征越多,也越容易过拟合。
Network Dim模型大小场景
128144MB实物,风景,人物
6472MB人物
3240MB二次元
  • Network Alpha:生成器和判别器的特征图的数量和分辨率。

注:值越高会学习到更多的特征,但是也会导致过拟合。

在这里插入图片描述

3. 相关文献

[1] 保姆级Lora炼丹教程,一站式整合包,让你实现真人模特定制
[2] [全网最细lora模型训练教程]这时长?你没看错。还教不会的话,我只能说,师弟/妹,仙缘已了,你下山去吧!
[3] 深度学习中的优化器原理(SGD,SGD+Momentum,Adagrad,RMSProp,Adam)
[4]【现代炼丹基础】手动档优化器迭代传奇 持续为您播出
[5] 【AI绘画教程】天书LORA训练进阶——(高级设置讲解|梯度累加|带示例对比)

这篇关于赛博炼丹师手记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/881320

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

Tokyo Cabinet和Tokyo Tyrant安装和调用手记

在编译 tokyocabinet 时会报 configure: error: bzlib.h is required 的错误。 解决方法是:   yum install bzip2-devel configure: error: zlib.h is required 原来没有zlib包  rpm -ql zlib命令查询后发现存在  [root@cenosvmbase tokyoc

css-赛博朋克风动画组件

css-赛博朋克风动画组件 目录 文章目录 前言结果展示代码 前言 Tutorials收费课程中的一种实现。 实现思路: 先绘制盒子制作动画,通过颜色位置变化来实现流转-webkit-box-reflect: below 2px linear-gradient(transparent,#0005);实现倒影 所用功能: border-sizingjustify-con

实习手记(8):增删改查

上周又偷懒了没有按时写博客(扣大分啊啊!)但是好像也没有人看呢~其实最开始也只是想着记录一下实习历程,怕自己之后回过头想关于实习的都想不起来了,个人还是喜欢记录有关自己的学习生活的,就算没啥人看但回过头看不觉得这一段是空白的。 本周总结: 重构新增模特弹框更多模特弹框新增场景弹框更多场景弹框 其实是重构了一个项目,老代码一个页面写了一千多行看着好费劲(密密麻麻)。然后现在是按照页面结构还有功

Flask+LayUI开发手记(三):LayUI表格的后端数据分页展现

前几天写了数据表格table的前端分页展现,思路是把数据一次性取到前端,然后由前端来控制分页展现。这种做法主要目的是为了降低后端数据库读写的次数减轻服务端运行压力。但是,如果功能不单是查询还要进行增删改操作,那么一次数据提取到前端的做法就有些问题了,因为需要保持前后端数据集的同步,这个控制逻辑就比较复杂了(也不是不能写),不如老老实实用传统办法,就是后端根据前端的要求每次提供好分页内

Flask+LayUI开发手记(二):LayUI弹出层表单的校验

LayUI里面layer.open()弹出层是一个十分常用也十分强大的功能,比如我们经常是先把记录以数据表单datatable方式显示出来,然后增删改查的功能就利用layer.open调取另一个form表单页面来进行数据编辑并提交数据完成数据表的更新操作。        同样,Layui-form也是layUI的核心组件,提供了十分丰富的功能实现,特别是lay-verify的校验

uni-app 手记集。

1、uni-app 是一个使用 Vue.js 开发的前端应用的框架,所以不会Vue.js的小伙伴可以先去看看Vue.js的基础教学。 2、.vue文件结构 <template><div class="container"></div></template><script type="text/ecmascript-6">export default {data(){return{// 数据

【炼丹经验积累(一)】梯度消失 学习率自动调节 附代码

问题描述 对 stable diffusion 3 进行 ip-adapter 微调,正常训练 2 w 步后,loss 出现不稳定状态,并出现 Not a number问题定位:由于 loss 并没有变成无限大(梯度爆炸),那么应该是梯度消失。 解决方案 降低学习率 参考 huggingface 官方论坛1,其中有用户提到:“我也遇到过几次了。就我而言,我能够通过降低学习率来解决这个问题

神舟OSCAR数据库试用手记【1】

我们在谈论数据库时谈论的总是那几个世界知名度比较高的,譬如 ORACLE 、Mysql、MSSQL Server.但是对于国内的数据库却知之甚少。那么国产数据库尽有哪些呢?达梦、人大金仓、 东软 、 南通 、 虚谷 然后就是 神舟

AI 已经在污染互联网了。。赛博喂屎成为现实

大家好,我是程序员鱼皮。这两年 AI 发展势头迅猛,更好的性能、更低的成本、更优的效果,让 AI 这一曾经高高在上的技术也走入大众的视野,能够被我们大多数普通人轻松使用,无需理解复杂的技术和原理。 其中,AI 有一个很重要的应用,就是 搜索 。 搜索技术经历了几个主要阶段的发展: 1)1.0 时代:以关键词匹配为主,搜索引擎根据用户输入的关键词在索引数据库中查找匹配的网页。但容易受到垃圾信息