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

lora训练模型 打造个人IP

准备工作

  • 下载秋叶炼丹器
  • 整理自己的照片
  • 下载底膜 https://rentry.org/lycoris-experiments
  • 在这里插入图片描述

实操步骤

  1. 解压整合包 lora-scripts,先点击“更新”

在这里插入图片描述

  1. 训练图片收集

比如要训练一个自己头像的模型,就可以拍一些自己的照片(20-50张,最少15张),要求画质清晰,脸部轮廓清楚,背景较为简单的照片。

建议整理成512*512大小 , 推荐工具
在这里插入图片描述

  1. 使用WD1,4 标签器的预处理功能进行图片的预处理
    将准备好的图片,放入目录 train/XXX[自定义]/ [数值, 图片数量]_XXX[自定义]
    在这里插入图片描述

这里可以根据自己的情况设置不同的宽高,以及相关的设置项,设置完成之后,点击“预处理”就可以进行图像的预处理了,预处理进度会在右侧显示。处理完成之后的文件夹内文件统一转成了512*512的png格式,并且多了一个txt文件,这个文件里面就是图片内容的提示词。

  1. 点击启动, 对照片打标签
    在这里插入图片描述

执行完毕后, 照片文件夹会自动生成txt文件
在这里插入图片描述
5. 使用lora训练-新手模式
在这里插入图片描述
在这里插入图片描述

lora-scripts环境搭建

若新手从零开始, 请参考本专栏基础知识, 此处简略说明下安装环境

  1. 先将lora-scripts项目(
GitHub - Akegarasu/lora-scripts: LoRA training scripts use kohya-ss's trainer, for diffusion model.
https://github.com/Akegarasu/lora-scripts

)克隆到本地,可以放在stable-diffusion下面,也可以放在其他目录下面。

  1. 克隆完之后,进入该目录删除sd-scripts文件夹,然后克隆sd-scripts项目(
GitHub - kohya-ss/sd-scripts
https://github.com/kohya-ss/sd-scripts

)到该目录下。

  1. 安装环境,有两种方式。一种是在lora-scripts下直接执行./install.ps1命令,自动安装相关环境。另外一种是进入到lora-scripts/sd-scripts中,使用以下命令进行安装(可以参考该项目下的说明文档)。
##  创建并激活虚拟环境
python -m venv venv
.\venv\Scripts\activate## 安装cuda
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116## 安装相关包,可以加上 -i 国内源 快一点儿!
pip install --upgrade -r requirements.txt## 安装xformers,这里可以先用下载工具把文件下载下来,用本地路径安装,不然网络不稳定很容易中断
pip install -U -I --no-deps https://github.com/C43H66N12O12S2/stable-diffusion-webui/releases/download/f/xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl## 复制相关文件到虚拟环境
cp .\bitsandbytes_windows\*.dll .\venv\Lib\site-packages\bitsandbytes\
cp .\bitsandbytes_windows\cextension.py .\venv\Lib\site-packages\bitsandbytes\cextension.py
cp .\bitsandbytes_windows\main.py .\venv\Lib\site-packages\bitsandbytes\cuda_setup\main.py## 加速器配置
accelerate config

这里要注意的是,cuda和xformers的版本这里是对应好的,如果版本不对会报错。另外,后面的相关操作都是在venv的虚拟环境下操作的,所以如果重新进入的话,需要重新激活虚拟环境。

accelerate config这个命令进入之后,对于多项选择的可以用上下键,或者使用(0,1,2…)去选择相关的选项,yes or no的直接输入然后回车,大部分配置项选择默认就可以了,我这里没有使用DeepSpeed,所以这一项,我选择的No,根据自己的实际情况去选就行了,不知道啥意思的可以挨个查下。

  1. 准备训练

训练有两种方式,方式一:直接执行训练命令(执行 ./train.ps1),方式二:使用webui的方式(执行 ./run_gui.ps1 打开web页面)。

(1)将预处理过的图片目录(qige)拷贝到lora-scripts/train/qg_imgs目录下(train目录不存在可以新建一个,这里要注意,图片和文本存放的最终目录是lora-scripts/train/qg_imgs/qige)

(2)修改配置。

方式一,直接修改train.ps1文件,修改以下配置

## Train data path | 设置训练用模型、图片
$pretrained_model = "./sd-models/chilloutmix_NiPrunedFp32Fix.safetensors" # base model path | 底模路径
$train_data_dir = "./train/qg_imgs" # train dataset path | 训练数据集路径## 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 保存一次$output_name = "qg" # output model name | 模型保存名称

chilloutmix_NiPrunedFp32Fix.safetensors 的下载地址为:

naonovn/chilloutmix_NiPrunedFp32Fix at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
https://huggingface.co/naonovn/chilloutmix_NiPrunedFp32Fix/tree/main

也可以使用其他的模型,上面的模型地址也可以改成stable-diffusion中已有的模型路径,可以节约点儿磁盘空间,毕竟单个模型都是好几个G。另外这个目录设置要注意,不是到最后那一层的目录,是到最后一层的上一层目录。

方式二,直接在webui上设置,比较直观

在这里插入图片描述

  1. 开始训练
    本文最开始 的几个步骤

如果使用的是方式二,可以直接点击右侧的“直接开始训练”按钮就可以开始训练,与方式一一样,相关的输出信息可以在命令行终端上看到。一般不会一下就成功,可以根据相关的报错信息进行修改。我用的是3060的显卡,之前将batch_size和max_train_epoches设置得较大,中途会出现显存不够用的情况,然后逐步调整,才最终跑完。训练的过程见下图。

在这里插入图片描述

最后会在output目录中,输出训练好的模型文件。

  1. 模型使用

将训练好的模型.safetensors文件拷贝到stable-diffusion文件夹下的models/lora/文件夹下,在提示词中加入lora:训练的模型:权重就可以生成自己的图像了,效果还行。如果用更多图片,有更强悍的机器,训练出来的效果应该会更好…

相关文章:

lora训练模型 打造个人IP

准备工作 下载秋叶炼丹器整理自己的照片下载底膜 https://rentry.org/lycoris-experiments 实操步骤 解压整合包 lora-scripts,先点击“更新” 训练图片收集 比如要训练一个自己头像的模型,就可以拍一些自己的照片(20-50张,最少15张&…...

mybatis+postgresql,无感读写json字段

1.实体类中字段类型 import com.alibaba.fastjson.JSONObject;Data public class TestDto {private String name;//对应数据库的JSON字段private JSONObject page_detail;} 2.自定义实现typeHandler package base.utils;import com.alibaba.fastjson.JSONObject; import org…...

苍穹外卖学习记录

苍穹外卖学习 文章目录 苍穹外卖学习知识前提&#xff1a;**<font color"red">Nginx****<font color"red">Swagger** 1.管理员登录思路&#xff1a;详细步骤&#xff1a; 1.1新增员工问题1&#xff1a;在新增员工时&#xff0c;需要将当前登录…...

大数据成功应用商业解决方案的例子

大数据技术在商业领域的广泛应用已经成为现代商业决策和运营优化的关键驱动力。企业利用大数据分析获取洞察&#xff0c;从而提高运营效率、改善客户体验并实现更高的盈利。以下是几个典型的成功案例&#xff0c;这些企业通过大数据技术在各自领域中取得了显著的成果。 亚马逊…...

《Python使用sqlite3数据库》

《Python使用sqlite3数据库》 1、连接数据库2、创建游标3、执行SQL语句4、提交更改5、查询数据6、关闭连接 Python可以使用多种数据库&#xff0c;以下是一般步骤和示例&#xff1a; 1、连接数据库 首先要安装对应的数据库驱动。如使用MySQL数据库&#xff0c;要安装pymysql库…...

XHCI 1.2b 规范摘要(14)

系列文章目录 XHCI 1.2b 规范摘要&#xff08;一&#xff09; XHCI 1.2b 规范摘要&#xff08;二&#xff09; XHCI 1.2b 规范摘要&#xff08;三&#xff09; XHCI 1.2b 规范摘要&#xff08;四&#xff09; XHCI 1.2b 规范摘要&#xff08;五&#xff09; XHCI 1.2b 规范摘要…...

(蓝桥杯C/C++)——基础算法(下)

目录 一、时空复杂度 1.时间复杂度 2.空间复杂度 3.分析技巧 4.代码示例 二、递归 1.递归的介绍 2.递归如何实现 3.递归和循环的比较 4.代码示例 三、差分 1.差分的原理和特点 2.差分的实现 3.例题讲解 四、枚举 1.枚举算法介绍 2.解空间的类型 3. 循环枚举解…...

详解Rust标准库:VecDeque 队列

theme: github highlight: an-old-hope 查看本地官方文档 安装rust后运行 rustup doc查看The Standard Library即可获取标准库内容 std::connections::VecDeque定义 队列是遵循先入先出规则的线性数据结构&#xff0c;在内存中不一定连续 VecDeque定义&#xff1a;可增长…...

网络协议都有哪些?

网络协议是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。以下是一些常见的网络协议&#xff1a; TCP/IP协议&#xff1a;传输控制协议/因特网互联协议&#xff0c;又名网络通讯协议&#xff0c;是Internet最基本的协议、Internet国际互联网络的基础。由网络层的…...

非公平锁和公平锁的区别

公平锁&#xff08;Fair Lock&#xff09;&#xff1a; 公平锁遵循 FIFO&#xff08;先进先出&#xff09;原则。当多个线程在等待锁时&#xff0c;公平锁会确保等待时间最长的线程优先获得锁。 这种锁机制可以避免线程饥饿&#xff08;starvation&#xff09;&#xff0c;即某…...

11月7日星期四今日早报简报微语报早读

11月7日星期四&#xff0c;农历十月初七&#xff0c;早报#微语早读。 1、河南&#xff1a;旅行社组织1000人次境外游客在豫住宿2夜以上&#xff0c;可申请激励奖补&#xff1b; 2、主播宣称下播后商品恢复原价构成欺诈&#xff0c;广州市监&#xff1a;罚款5万元&#xff1b;…...

【Python】轻松实现机器翻译:Transformers库使用教程

轻松实现机器翻译&#xff1a;Transformers库使用教程 近年来&#xff0c;机器翻译技术飞速发展&#xff0c;从传统的基于规则的翻译到统计机器翻译&#xff0c;再到如今流行的神经网络翻译模型&#xff0c;尤其是基于Transformer架构的模型&#xff0c;翻译效果已经有了质的飞…...

【数据集】【YOLO】【目标检测】道路结冰数据集 1527 张,YOLO目标检测实战训练教程!

数据集介绍 【数据集】道路结冰数据集 1527 张&#xff0c;目标检测&#xff0c;包含YOLO/VOC格式标注。数据集中包含2种分类&#xff1a;“clear_road, ice_road”。数据集来自国内外图片网站和视频截图&#xff0c;部分数据经过数据增强处理。检测范围监控视角检测、无人机视…...

Java链表及源码解析

文章目录 创建一个ILindkedList接口创建方法(模拟实现链表方法)创建MyLinkedList来实现接口的方法创建链表节点addFirst方法&#xff08;新增头部属性&#xff09;addLast方法&#xff08;新增到末尾一个属性&#xff09;remove方法&#xff08;删除指定属性&#xff09;addInd…...

十、快速入门go语言之方法

文章目录 方法:one: 方法的概念:star2: 内嵌类型的方法和继承:star2: 多重继承 &#x1f4c5; 2024年5月9日 &#x1f4e6; 使用版本为1.21.5 方法 1️⃣ 方法的概念 ⭐️ 在Go语言中没有类这个概念&#xff0c;可以使用结构体来实现&#xff0c;那类方法呢&#xff1f;Go也…...

JVM 处理多线程并发执行

JVM&#xff08;Java Virtual Machine&#xff09;在处理多线程并发执行方面具有强大的支持&#xff0c;主要依赖于其内置的线程模型、内存模型以及同步机制。 JVM 通过以下关键机制和组件来管理多线程并发执行&#xff1a; 1. 线程模型 Java 线程与操作系统线程&#xff1a;…...

【D3.js in Action 3 精译_039】4.3 D3 面积图的绘制方法及其边界标签的添加

当前内容所在位置&#xff1a; 第四章 直线、曲线与弧线的绘制 ✔️ 4.1 坐标轴的创建&#xff08;上篇&#xff09; 4.1.1 D3 中的边距约定&#xff08;中篇&#xff09;4.1.2 坐标轴的生成&#xff08;中篇&#xff09; 4.1.2.1 比例尺的声明&#xff08;中篇&#xff09;4.1…...

布谷直播源码部署服务器关于数据库配置的详细说明

布谷直播源码搭建部署配置接口数据库 /public/db.php&#xff08;2019年8月后的系统在该路径下配置数据库&#xff0c;老版本继续走下面的操作&#xff09; 在项目代码中执行命令安装依赖库&#xff08;⚠️注意&#xff1a;如果已经有了vendor内的依赖文件的就不用执行了&am…...

Xfce桌面设置右键菜单:用右键打开VSCode

前言 AlmaLinux安装VSCode之后始终没有找到如何用右键菜单打开VSCode&#xff0c;比Windows麻烦多了。每次都需要先找到文件夹&#xff0c;然后用系统自带的Open In Terminal打开终端&#xff0c;再输入code .&#xff0c;才能够在当前文件夹中快速打开VSCode。那么&#xff0…...

【NLP自然语言处理】深入探索Self-Attention:自注意力机制详解

目录 &#x1f354; Self-attention的特点 &#x1f354; Self-attention中的归一化概述 &#x1f354; softmax的梯度变化 3.1 softmax函数的输入分布是如何影响输出的 3.2 softmax函数在反向传播的过程中是如何梯度求导的 3.3 softmax函数出现梯度消失现象的原因 &…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...