当前位置: 首页 > news >正文

【kohya】训练自己的LoRA模型

文章目录

  • 序言
  • 准备环境
  • 准备图片
  • 处理图片
  • 下载kohya_ss代码
  • 修改pyvenv.cfg
  • 启动界面
  • 访问地址
  • 生成字幕
  • 准备训练的文件夹
  • 配置训练参数
  • 开始训练
  • 遇到的问题:

序言

在把玩stable diffusion的webUI和comfyUI后,思考着自己也微调一个个性化风格的checkpoint、LyCORIS或LoRA。

做好,环境问题搞崩心态的准备。
我的旧电脑,GPU才4G,直接跑蹦了三次。

在没有好电脑的情况下,还是别自己制作模型啦,费时间、费电脑,GPU不够的情况下,肯定跑不出来。

准备环境

python:3.10.9(官方推荐),官方强调一定不能是3.11+,否则跑不了。

准备图片

大概需要准备10-20张图片。
这里我们用华仔的图片:

https://stable-diffusion-art.com/wp-content/uploads/2023/09/lora_training_captions.zip

在这里插入图片描述

处理图片

这个是在线图片处理网站:https://www.birme.net/

在这里插入图片描述

下载kohya_ss代码

https://github.com/bmaltais/kohya_ss#setup

git clone https://github.com/bmaltais/kohya_ss.git

下载好了后,在目录下打开cmd
运行:

.\setup.bat

安装过程中,会有报错信息,如下面我的安装信息,就有error错误的。
这时,我们再单独安装他们即可。

我的安装信息如下:

07:30:01-098969 INFO     Python 3.10.9 on Windows
07:30:01-114591 INFO     nVidia toolkit detected
07:30:22-313445 INFO     Torch 2.0.1+cu118
07:30:27-317148 INFO     Torch backend: nVidia CUDA 11.8 cuDNN 8700
07:30:27-524602 INFO     Torch detected GPU: NVIDIA GeForce GTX 960M VRAM 4096 Arch (5, 0) Cores 5
07:30:27-546322 INFO     Installing modules from requirements_windows_torch2.txt...
07:30:27-571730 INFO     Installing package: torch==2.0.1+cu118 torchvision==0.15.2+cu118 --index-urlhttps://download.pytorch.org/whl/cu118
07:30:31-836436 INFO     Installing package: xformers==0.0.21
07:31:57-013124 INFO     Installing package: bitsandbytes==0.35.0
07:32:51-316790 INFO     Installing package: tensorboard==2.12.3 tensorflow==2.12.0
07:37:59-014316 ERROR    Error running pip: install --upgrade tensorboard==2.12.3 tensorflow==2.12.0
07:37:59-014316 INFO     Installing modules from requirements.txt...
07:37:59-014316 WARNING  Package wrong version: accelerate 0.23.0 required 0.19.0
07:37:59-014316 INFO     Installing package: accelerate==0.19.0
07:38:03-229388 INFO     Installing package: aiofiles==23.2.1
07:38:06-751172 INFO     Installing package: altair==4.2.2
07:38:38-267155 INFO     Installing package: dadaptation==3.1
07:38:51-524642 INFO     Installing package: diffusers[torch]==0.18.2
07:38:59-209713 INFO     Installing package: easygui==0.98.3
07:39:02-399649 WARNING  Package wrong version: einops 0.6.1 required 0.6.0
07:39:02-415277 INFO     Installing package: einops==0.6.0
07:39:06-136609 INFO     Installing package: fairscale==0.4.13
07:39:25-893111 INFO     Installing package: ftfy==6.1.1
07:39:29-690634 INFO     Installing package: gradio==3.36.1
07:40:36-392666 WARNING  Package wrong version: huggingface-hub 0.17.2 required 0.15.1
07:40:36-400190 INFO     Installing package: huggingface-hub==0.15.1
07:40:40-941236 INFO     Installing package: invisible-watermark==0.2.0
07:41:24-129685 INFO     Installing package: lion-pytorch==0.0.6
07:41:30-507921 INFO     Installing package: lycoris_lora==1.8.3
07:41:37-013021 INFO     Installing package: open-clip-torch==2.20.0
07:41:50-051513 INFO     Installing package: opencv-python==4.7.0.68
07:42:25-089723 INFO     Installing package: prodigyopt==1.0
07:42:28-598267 INFO     Installing package: pytorch-lightning==1.9.0
07:42:38-209014 WARNING  Package wrong version: rich 13.5.3 required 13.4.1
07:42:38-215011 INFO     Installing package: rich==13.4.1
07:42:43-854357 WARNING  Package wrong version: safetensors 0.3.3 required 0.3.1
07:42:43-860357 INFO     Installing package: safetensors==0.3.1
07:42:48-383515 INFO     Installing package: timm==0.6.12
07:42:54-170484 INFO     Installing package: tk==0.1.0
07:42:57-803992 INFO     Installing package: toml==0.10.2
07:43:01-527071 WARNING  Package wrong version: transformers 4.33.2 required 4.30.2
07:43:01-533037 INFO     Installing package: transformers==4.30.2
07:43:24-744913 INFO     Installing package: voluptuous==0.13.1
07:43:29-529060 INFO     Installing package: wandb==0.15.0

修改pyvenv.cfg

我的路径:E:\openai\project\kohya_ss\venv
我习惯性的改为true。原因是:1.来节省空间,2来已经安装过的模块,就不用再安装一遍了。

include-system-site-packages = true

启动界面

kohya_ss目录下,双击gui.bat文件,进行启动。
在这里插入图片描述

访问地址

http://127.0.0.1:7860/

这个地址和stable diffusion webUI是同一个地址。

生成字幕

打开我们启动的页面:
路径:Utilities – Captioning – BLIP CaptioningWD14 Captioning也可以)

选择文件夹,选择我们处理好图片的文件夹
在这里插入图片描述
最后点击:Caption images。就可以帮我们生成字幕了。
命令行中打印的日志如下:

To create a public link, set `share=True` in `launch()`.
19:29:13-558295 INFO     Captioning files in E:/下载/AI绘图/AIGC/hanli...
19:29:13-561260 INFO     ./venv/Scripts/python.exe "finetune/make_captions.py" --batch_size="1" --num_beams="1"--top_p="0.9" --max_length="75" --min_length="5" --beam_search --caption_extension=".txt""E:/下载/AI绘图/AIGC/hanli"--caption_weights="https://storage.googleapis.com/sfr-vision-language-research/BLIP/models/model_large_caption.pth"
Current Working Directory is:  E:\openai\project\kohya_ss
load images from E:\下载\AI绘图\AIGC\hanli
found 13 images.
loading BLIP caption: https://storage.googleapis.com/sfr-vision-language-research/BLIP/models/model_large_caption.pth
Downloading ()solve/main/vocab.txt: 100%|███████████████████████████████████████████| 232k/232k [00:00<00:00, 360kB/s]
Downloading ()okenizer_config.json: 100%|██████████████████████████████████████████████████| 28.0/28.0 [00:00<?, ?B/s]
Downloading ()lve/main/config.json: 100%|████████████████████████████████████████████████████| 570/570 [00:00<?, ?B/s]
100%|█████████████████████████████████████████████████████████████████████████████| 1.66G/1.66G [09:01<00:00, 3.30MB/s]
load checkpoint from https://storage.googleapis.com/sfr-vision-language-research/BLIP/models/model_large_caption.pth
BLIP loaded
100%|██████████████████████████████████████████████████████████████████████████████████| 13/13 [00:30<00:00,  2.36s/it]
done!
19:41:08-386110 INFO     ...captioning done

可以看出,它下载了一个1.6G的文件,这个问题,存在路径:C:\Users\yutao\.cache\torch\hub\checkpoints\model_large_caption.pth
可以看出存放在C盘,非常不友好。

生成字幕,效果如下:
在这里插入图片描述
随便打开一个:

在这里插入图片描述

准备训练的文件夹

设置准备训练的文件夹。
在这里插入图片描述

点击Prepare training data按钮,会生成如下图所示的文件夹:

在这里插入图片描述

配置训练参数

路径: LoRa – Training – source model

在这里插入图片描述
路径: LoRa – Training – Folders

在这里插入图片描述
路径: LoRa – Training – parameters – basic

在这里插入图片描述

参数:

Optimizer extra arguments : scale_parameter=False relative_step=False warmup_init=False

在这里插入图片描述

在这里插入图片描述
路径: LoRa – Training – parameters – advanced
在这里插入图片描述

在这里插入图片描述

参数说明:LoRA-training-parameters

开始训练

点击“Start training” 开始训练。


遇到的问题:

这里我遇到了一个警告

WARNING[XFORMERS]: xFormers can't load C++/CUDA extensions. xFormers was built for:PyTorch 2.0.1+cu118 with CUDA 1108 (you have 2.0.1+cpu)Python  3.10.11 (you have 3.10.9)Please reinstall xformers (see https://github.com/facebookresearch/xformers#installing-xformers)Memory-efficient attention, SwiGLU, sparse and more won't be available.

上面是说,CUDA没法使用,也就意味着,我们无法调用GPU来跑,只能调用CPU来跑。

执行如下命令:

pip uninstall -y torch torchvision torchaudiopip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

即可解决


参考地址:

SDXL LORA Training locally with Kohya

How to train Lora models

AnimateDiff|高质量文本到动画视频生成

LoRA-training-parameters

相关文章:

【kohya】训练自己的LoRA模型

文章目录 序言准备环境准备图片处理图片下载kohya_ss代码修改pyvenv.cfg启动界面访问地址生成字幕准备训练的文件夹配置训练参数开始训练遇到的问题&#xff1a; 序言 在把玩stable diffusion的webUI和comfyUI后&#xff0c;思考着自己也微调一个个性化风格的checkpoint、LyCO…...

[尚硅谷React笔记]——第1章 React简介

目录&#xff1a; 第1章 React简介 React的基本使用:虚拟DOM的两种创建方式&#xff1a; 使用jsx创建虚拟DOM使用js创建虚拟DOM(一般不用)虚拟DOM与真实DOM:React JSX:JSX练习&#xff1a;模块与组件、模块化与组件化的理解 模块组件模块化组件化 第1章 React简介 中文官网: …...

Debezium系列之:快照参数详解

Debezium系列之:快照参数详解 一、snapshot.select.statement.overrides二、min.row.count.to.stream.results三、snapshot.delay.ms四、snapshot.fetch.size五、snapshot.lock.timeout.ms六、incremental.snapshot.allow.schema.changes七、incremental.snapshot.chunk.size八…...

redis单机版搭建

title: “Redis单机版搭建” createTime: 2022-01-04T20:43:1108:00 updateTime: 2022-01-04T20:43:1108:00 draft: false author: “name” tags: [“redis”] categories: [“install”] description: “测试的” redis单机版搭建 安装环境 redis版本redis-5.0.7虚拟机系统…...

物联网边缘网关

物联网边缘网关 边缘网关的定义边缘网关的分类边缘计算网关平台相关产品有哪些 百度边缘计算平台(BIE)华为边缘计算平台(IEF)产品应用拓扑图产品价格区间...

docker部署springboot程序时遇到的network问题

对应问题&#xff0c;因为刚开始接触docker&#xff0c;所以问题可能比较简单&#xff0c;但是做个记录 1、启动一个springboot项目获取本地ip的时候获取到的是172.17.0.x这个ip&#xff1b;在使用一些注册中心&#xff0c;mq的时候又要表明自己的本机器ip的时候会比较头疼&…...

RASP hook插桩原理解析

javaagent技术&#xff0c;实现提前加载类字节码实现hook&#xff0c;插桩技术 javassist技术ASM字节码技术 像加载jar&#xff0c;有两种方式 premain启动前加载&#xff1a;每次变动jar包内容&#xff0c;都需要进行重启服务器利用java的动态attch加载原理&#xff0c;采用pr…...

Pygame中Sprite的使用方法6-5

3 碰撞检测 蓝色方块会随着鼠标移动&#xff0c;当碰到绿色方块时&#xff0c;则当前分数加1&#xff0c;当碰到红色方块时&#xff0c;当前分数减1。因为要随时进行碰撞检测&#xff0c;因此需要在while True循环中实现以下功能。 3.1 蓝色方块随鼠标移动 将蓝色方块的位置…...

浅谈为什么多态只能是指针或引用

其实在很早之前&#xff0c;我一直没有注意到这个问题&#xff0c;直到今天碰见了一道题&#xff0c;顺便前面的博客中&#xff0c;继承写到&#xff0c;子类中不包含父类&#xff0c;子类只是继承了父类的成员变量和函数&#xff0c;由这一点&#xff0c;引发了我对切片以及赋…...

js看代码说输出

目录 原型 Function与Object new fn() 原型链 constructor function.length 默认参数:第一个具有默认值之前的参数个数 剩余参数&#xff1a;不算进length 闭包 循环中 函数工厂&#xff1a;形参传递 IIFE&#xff1a;匿名闭包 let&#xff1a;闭包 forEach()&am…...

Java笔记:使用javassist修改class文件内方法

1.前言 在工作突然有一个需求。线上运维的一个tomcat的web项目&#xff0c;运行的程序不正常。需要修改代码。可是这个项目代码非常的老&#xff0c;并且公司存储的源代码跟线上的不一致。 我了个擦&#xff0c;没有源代码但是还要结局客户的问题。只能到线上将对应程序的clas…...

华为云云耀云服务器L实例评测 |云服务器性能评测

通过上一篇文章华为云云耀云服务器 L 实例评测 &#xff5c;云服务器选购&#xff0c;我已经购买了一台 Centos 系统的云耀云服务器 L 实例。 在获得云耀云服务器 L 实例后&#xff0c;首要任务是熟悉云耀云服务器 L 实例的性能&#xff0c;对云耀云服务器 L 实例的性能进行测…...

iphone的safari浏览器实现全屏的pwa模式,并修改顶部状态栏背景颜色

要想修改顶部背景颜色&#xff0c;需要用到这个属性&#xff1a;content就是你要设置的颜色 <!-- 状态栏的背景色 --><meta name"theme-color" content"#f8f8f8" /> 然后再加上下面的设置&#xff1a; <!-- 网站开启对 web app 程序的支持…...

springboot对接rabbitmq并且实现动态创建队列和消费

背景 1、对接多个节点上的MQ&#xff08;如master-MQ&#xff0c;slave-MQ&#xff09;&#xff0c;若读者需要自己模拟出两个MQ&#xff0c;可以部署多个VM然后参考 docker 安装rabbitmq_Steven-Russell的博客-CSDN博客 2、队列名称不是固定的&#xff0c;需要接受外部参数&…...

Spring的后处理器-BeanFactoryPostprocessor

目录 Spring后处理器 Bean工厂后处理器-BeanFactoryPostProcessor 修改beanDefinition对象 添加beanDefiniton对象 方法一 方法二 自定义Component Spring后处理器 Spring后处理器是Spring对外开放的重要拓展点&#xff08;让我们可以用添加自己的逻辑&#xff09;&…...

Flutter 必备知识点

Flutter 升级 确保在项目根目录下&#xff08;含有 pubspec.yaml 的文件夹&#xff09; 在命令行中输入命令&#xff1a; flutter channel输出&#xff1a; Flutter channels: * mastermainbetastable这个可以在 pubspec.yaml 中查看&#xff1a; 切换分支也很简单&#xf…...

什么是FMEA(失效模式和影响分析)?

失效模式和影响分析&#xff08;FMEA&#xff09;是一个在开发阶段&#xff0c;用于确定产品或流程可能的风险和失败点的有条理的过程。FMEA团队会研究失效模式&#xff0c;也就是产品或流程中可能出错的地方&#xff0c;以及这些失效可能带来的影响&#xff08;如风险、损害、…...

Redis面试题(三)

文章目录 前言一、怎么理解 Redis 事务&#xff1f;二、Redis 事务相关的命令有哪几个&#xff1f;三、Redis key 的过期时间和永久有效分别怎么设置&#xff1f;四、Redis 如何做内存优化&#xff1f;五、Redis 回收进程如何工作的&#xff1f;六、 加锁机制总结 前言 怎么理…...

Python错误处理指南:优雅应对异常情况

目录 一. 异常是什么&#xff1f;二. 使用 try 和 except三. 捕获多个异常四. 使用 else五. 使用 finally六. 自定义异常七.Python中常见异常处理类型八.Python中常见异常处理实例九.异常处理最佳实践十.结论 当编写Python代码时&#xff0c;错误处理是一个重要的方面&#xff…...

MySQL学习笔记12

MySQL 查询语句&#xff1a; 1、查询五子句&#xff1a;&#xff08;重点&#xff09; mysql> select */字段列表 from 数据表名称 where 子句 group by 子句 having 子句 order by 子句 limit 子句; 1&#xff09;where 子句&#xff1b;条件筛选。 2&#xff09;group…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制&#xff0c;展现出显著的技术优势&#xff1a; 深层组织穿透能力&#xff1a;适用于活体组织深度成像 高分辨率观测性能&#xff1a;满足微观结构的精细研究需求 低光毒性特点&#xff1a;减少对样本的损伤…...