摘要
本专栏将分享一个基于Kohya训练脚本的多平台通用WebUI插件,适用于任何kohya脚本的lora训练整合包(比如秋叶包)。提供SD-WebUI插件或直接部署的方式。此脚本类似kohya_ss GUI,使用此插件,你能很快且方便的完成lora训练的参数设置。
关键词:lora训练、插件、参数设置、WebUI,kohya-config-webui
参考:
Kohya:https://github.com/kohya-ss/sd-scripts/
如果你用过我分享的Colab进行过lora训练,我在里面提供了一种基于Colab Notebook风格的交互式参数设定,不知你们觉得使用感受如何。
除了Colab风格,和秋叶包的txt风格,目前还有一比较流行的风格是kohya_ss GUI这种,使用WebUI的方式完成参数指定和开始训练。
但是kohya_ss的部署好像是要连环境一起部署?同时移植性不太行?(我没用过,不确定)
此插件同样提供了WebUI界面,同时不对环境有过多要求,轻量化部署。可以保证在Windows和Colab上一键部署(理论上AutoDL等云平台应该也是可以的,但是我没计算单元来测试)。
这篇专栏是一种要点说明书的风格,看不懂没关系,周末会出一期视频来演示完整流程。
(一)安装方式:
1、SD-WebUI插件方式(请使用2023年第13周稳定版以上):
打开SD-WebUI,扩展
->从网址安装,把这个连接复制进去,安装,重启SD-WebUI即可
https://github.com/WSH032/kohya-config-webui.git
2、直接部署
克隆我的github仓库(链接同上),或直接从github上下载zip并解压(直接下载将无法使用update.bat)
运行目录下的install_webui.ps1安装依赖
完成后运行run_webui.ps1启动插件
(二)原理:
首先我们要知道lora训练时指定参数的原理,目前就三种。
通过命令行的方式传递参数(秋叶包和大多数整合包)
以toml格式指定,这也不算新方法,3月就出了,这是Linaqruf提出来的,但是我一直没见有人用。
以json的格式,这个就更没人用了。
此插件采用的是第二种方法,原理是生成指定参数的toml文件,方便你向各个整合包的脚本传递参数。这种方法的toml格式可读性、移植性都强于命令行方式。但缺点是你要手动去写toml文件。不过此插件会帮你完成这一步。
(三)使用要点:
打开此插件
1、首先看到右上角的写入文件夹,这个插件会生成两个文件:config_file.toml和sample_prompts.txt,写入文件夹决定了这两个文件的生成位置。
2、其他的参数按你自己的情况来填就行,使用的逻辑和Colab里的交互是一样的
3、模型选择,填入你本地的模型文件夹(比如SD-WebUI里你用的模型文件夹),按一下刷新按钮,列表里就出来模型了,你选就行
4、修改模型输出地址和你的lora模型名字
注意这里,你下一次训练别的lora时可以不改那个输出地址,只改lora名字就可以,因为插件会把lora名字和输出地址连一起,比如下图实际的输出位置是E:\novelai-webui-aki-v2\output\output_name\
你要是用过我的Colab就知道是什么意思,因为是参考Colab来写这个插件的。
5、全部参数填好后,按确认,然后按生成toml
注意这里,你只改WebUI是不会更新参数的,你必须按确认,插件才会更新你要的参数。
进阶参数你哪怕不用,也要去点一下确认,或者直接点全部确认。
6、WebUI不会记录上一次的界面,你一刷新或者重开就变成默认界面参数了。所以我提供了保存功能,来记录上一次的参数。
保存只会保存已经确认的参数,不是保存UI上的参数 ; 读取只会更新UI,但不会刷新确认。
也就是说:先确认、后保存;先读取,后确认
(四)训练:
点击生成后会出现两个文件:
到这里插件的使用就已经结束了。那么我们要怎么用这两个文件呢?
最新秋叶包里面有一个train_by_toml.ps1文件,打开
把生成的那两个文件地址填进去,然后右键powershell运行这个train_by_toml.ps1就可以训练了,和之前的秋叶方式一样。
(五)作者想法:
其实写这个插件最开始的目的是为了重构我的Colab。我目前分享的那个Colab是用秋叶脚本魔改的,逻辑很混乱,马上就要变成屎山了;再加上秋叶脚本更新比较频繁,我没有时间立马跟进,一不跟进就很容易出bug。
所以以后的Colab会改版为WebUI风格。参数的添加是我来控制的,我有空就会去改,没空不改也不会报错。
但是这也导致了一个问题,因为目前只有我一人维护这个插件,所以肯定是不能按秋叶频率来添加新功能。你要是感兴趣,可以在github向我pull request。kohya_config_webui.py里面有一段维护指南,添加新参数和维护秋叶包的方式类似(但是python语言)。
下一步的计划是增加多概念分离参数训练的功能,可以同时指定不同的keep tokens等。
吐槽下uncle和aunt,虽说我分享B站不是为了收益,但是入坑两个月,激励=0,连计算单元都买不起,怪不得一堆人退站。
现在的快节奏社会,大家都喜欢看短视频,稍微长一点的视频都没流量(说实话,我也不喜欢看长视频)。
但是知识分享这东西,要是为了流量去压缩时长,讲的不明不白的,反正我是不喜欢。但确实长视频又没人看。
视频这东西,本身就不适合分享干货,制作又麻烦。所以我喜欢写专栏,也喜欢看好专栏。但B站的专栏流量比视频差远了。(也有可能是我写的差)
你要说我做分享是纯菩萨,完全不求回报的,那是不可能的。
我做分享一个是喜欢,一个是一边分享一边学习新技能,最看重的还是的是播放量、浏览量、点赞、收藏数这些数据,让我以后介绍自己有吹嘘的资本是吧[脱单doge]
最后,觉得有用的的话,你可以先试用这个插件,觉得不错再回来点个三连,或者去github点个小星星也是可以的。觉得不好就来点个踩
[WSH032/kohya-config-webui] : https://github.com/WSH032/kohya-config-webui
by Happy_WSH