训练自己的个性化Stable diffusion模型,LORA

news2024/11/22 19:47:08

一、背景

需要训练自己的LORA模型

二、分析

1、有sd-webui有训练插件功能

2、有单独的LORA训练开源web界面

两个开源训练界面

1、秋叶写的SD-Trainer

https://github.com/Akegarasu/lora-scripts/ 没成功,主要也是cudnn和nvidia-smi中的CUDA版本不一致退出

2、Kohya's GUI

GitHub - bmaltais/kohya_ss   成功了

遇到问题1,cudnn和nvidia-smi中的CUDA版本不一致

解决方法:unset LD_LIBRARY_PATH解决了我的问题

问题2:报错量化错误

优化器Optimizer 选 :AdamW

三、步骤

1、下载代码

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

2、有Python 3.10.8环境

cd kohya_ss

chmod +x ./setup.sh

./setup.sh

./gui.sh --listen=0.0.0.0 --headless

不要自己去安装python包,巨坑。

3、准备数据

下载该数据

https://huggingface.co/datasets/lambdalabs/pokemon-blip-captions/tree/main

#安装处理该数据的包
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple fastparquet
# pip install pyarrow

from fastparquet import ParquetFile
datadir = r'./'
filename = datadir + r'下载的数据.parquet'
pf = ParquetFile(filename)

dF = pf.to_pandas()

from PIL import Image
import io
import base64


# 将byte数据转换为PIL图像对象
def save_png(name,image_bytes):
    image = Image.open(io.BytesIO(image_bytes))

    # 保存图像到文件
    filename = 'lora_data/'+str(name)+'.jpg'
    print(filename)
    # 调整尺寸
    new_image = image.resize((512, 512))
    new_image.save(filename)
def save_txt(name,text):
    # text = "这是要保存的文本内容"
    filename = 'lora_data/'+str(name)+'.txt'
    with open(filename, 'w') as file:
        file.write(text)
保存数据的
for index, row in dF.iterrows():
    # print(index,row['text'],row['image.bytes']) # 输出列名
    save_txt(index,row['text'])
    save_png(index,row['image.bytes'])
    if index==20:
        break

4、创建数据目录

在kohya_ss项目下,创建一个train目录,具体内容如下:


image : 图片放在这里。
log:训练记录
model:模型保存路径
image目录还有一个子目录,比如本文这里是100_pokemon,100表示100个steps,会直接影响训练的步数和效果,pokemon表示图片人物名称。

5、训练

训练数据目录填 /home/.../image 不要写到/home/.../image/100_pokemon

基础模型写全/media/...../openjourney-v4.ckpt

一定可以训练成功的,有数据有模型有步骤,不清楚可以联系我

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1273992.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

操作系统背景知识

一、程序分类 程序按其运行环境分为: 裸机程序:直接运行在对应硬件上的程序 应用程序:只能运行在对应操作系统上的程序 二、计算机系统的层次结构 计算机系统两种层次结构: 2.1 无操作系统的简单的两层结构 2.2 有操作系统的…

SpringBoot中的部分注解

1.SpringBoot/spring SpringBootApplication: 包含Configuration、EnableAutoConfiguration、ComponentScan通常用在主类上; Repository: 用于标注数据访问组件,即DAO组件; Service: 用于标注业务层组件; RestController: 用…

使用ApexSQLLog工具恢复数据库

目录 前言 一、ApexSQLLog是什么? 二、使用步骤 1.连接你要恢复的数据库 2.选择你要恢复的时间点的数据 3.恢复指定操作的数据 4.恢复指定的表 5.输出结果方式 6.输出结果方式 7.生成还原的sql语句 总结 前言 我们在操作数据库的时候可能误操作把数据修…

Ps:用好钢笔工具

使用钢笔工具时,应随时注意鼠标指针的形状。 ◆ ◆ ◆ 基本操作方法 1、绘制闭合路径 路径绘制结束时回到起点即可创建闭合路径。 2、绘制开放路径 想结束绘制时,按住 Ctrl 键点击画布空白处,或者,直接按 Esc 键,即可…

qt-C++笔记之点击按钮弹出文件资源管理器选择文件后把文件路径赋值给一个QString

qt-C笔记之点击按钮弹出文件资源管理器选择文件后把文件路径赋值给一个QString code review! 文章目录 qt-C笔记之点击按钮弹出文件资源管理器选择文件后把文件路径赋值给一个QString1.运行2.main.cpp3.qt_FileDialog.pro4.QFileDialog类详解 1.运行 2.main.cpp 代码 #inclu…

达索系统SOLIDWORKS 2024工程图新功能

工程图概述 设计模型不仅能比绘制直线更快;SOLIDWORKS 从模型中生成工程图,模型的参数和几何关系在工程图中被保留,这样工程图可反映模型的设计意图;模型或工程图中的更改反映在其相关文件中,这样更改起来更容易&…

基于AT89C51单片机的电子闹钟设计

1.设计任务 利用AT89C51单片机为核心控制元件,设计一个电子闹钟,设计的系统实用性强、操作简单,实现了智能化、数字化。 (1)按开始键自动进入时间显示,开始为0,按K1键进入更改时间&#xff0c…

AMEYA360:思瑞浦TPS32 MCU两大全新产品系列介绍

TPS32混合信号微控制器依托思瑞浦出色的数模混合信号处理技术能力,围绕垂直应用开发产品,优化产品设计,助力客户实现终端产品的差异化。思瑞浦提供完整的开发生态系统支持,包含简单易用的配套嵌入式软件包、硬件和软件开发工具&am…

时序预测 | Python实现TCN时间卷积神经网络价格预测

时序预测 | Python实现TCN时间卷积神经网络时间序列预测 目录 时序预测 | Python实现TCN时间卷积神经网络时间序列预测预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 时间卷积网络,TCN。 利用CNN技术处理时间序列数据。 卷基础层有三种,第一种是一维CNN,用于输…

某60区块链安全之薅羊毛攻击实战一学习记录

区块链安全 文章目录 区块链安全薅羊毛攻击实战一实验目的实验环境实验工具实验原理实验内容薅羊毛攻击实战一 实验步骤EXP利用 薅羊毛攻击实战一 实验目的 学会使用python3的web3模块 学会分析以太坊智能合约薅羊毛攻击漏洞 找到合约漏洞进行分析并形成利用 实验环境 Ubun…

latex中算法的几种模板

latex中算法的几种模板_latex算法模板-CSDN博客文章浏览阅读6.2k次,点赞3次,收藏45次。latex中几种算法模板_latex算法模板https://blog.csdn.net/weixin_50514171/article/details/125136121?spm1001.2014.3001.5506 latex排版原理 常用算法排版伪代码…

程序/进程替换(讲解)

本文旨在讲解进程替换的知识!希望读完本文,能使读者对进程替换有更深一步的认识!!好的,废话不多说,干货来了! 进程替换的引进! 为什么要引进进程替换呢?我们创建子进程总…

cpu飙高问题,案例分析(三)——非标导入引发CPU彪高,与RateLimiter限流

一、背景 非标导入使用easyexcel组件进行导入处理,10几万的数据量引发CPU彪高。 二、排查思路 查看线程栈相关信息;pinpoint监控查看性能及代码调用情况;是否存在大量阻塞慢SQL;是否存在短时间内频繁日志输出; 三、…

linux拨号服务器如何创建爬虫ip池

作为一个爬虫技术员,除了要熟练掌握至少一种编程语言外,还应该创建属于自己的爬虫ip池。我们都知道,在进行爬虫采集时,经常会遇到网站各种发爬机制,如果有自己的ip池,将会让爬虫这项枯燥无味的工作变得非常…

cmake和vscode 下的cmake的使用详解(一)。

本文的内容 参考如下内容。 1.【基于VSCode和CMake实现C/C开发 | Linux篇】https://www.bilibili.com/video/BV1fy4y1b7TC?vd_source0ddb24a02523448baa69b0b871ab50f7 2.Notion – The all-in-one workspace for your notes, tasks, wikis, and databases. 3.关于如何利用…

通过navicat工具将excel文件导入数据库的表中

文章目录 1.navicat可视化工具2. 导入文件 1.navicat可视化工具 这里使用的是navicat数据库可视化工具,不是直接通过数据库指令导入的 前提是连接好数据库,建立好表,如下图,test为连接名,随便起,data为数据…

SQL Sever 基础知识 - 数据排序

SQL Sever 基础知识 - 二 、数据排序 二 、对数据进行排序第1节 ORDER BY 子句简介第2节 ORDER BY 子句示例2.1 按一列升序对结果集进行排序2.2 按一列降序对结果集进行排序2.3 按多列对结果集排序2.4 按多列对结果集不同排序2.5 按不在选择列表中的列对结果集进行排序2.6 按表…

uni-app 自带返回方法onBackPress,返回上一级并且刷新页面内容获取最新的数据

onBackPress 返回上一级并且刷新页面内容获取最新的数据 onBackPress 方法是uinapp自带返回键方法,也就是在app和H5返回键 onBackPress() {setTimeout(() > {uni.switchTab({url: /pages/Users/index,})}, 300)return true}, methods: {}在这里 uni.switchTab…

Goby 漏洞发布| CrushFTP as2-to 认证权限绕过漏洞(CVE-2023-43177)

漏洞名称: CrushFTP as2-to 认证权限绕过漏洞(CVE-2023-43177) English Name:CrushFTP as2-to Authentication Permission bypass Vulnerability (CVE-2023-43177) CVSS core: 9.8 影响资产数: 38695 漏洞描述&…

【投稿优惠|稳定出版】2023年信息科学和大数据应用国际会议 (ICISBDA 2023)

2023年信息科学和大数据应用国际会议 (ICISBDA 2023) 2023 International Conference on Information Science and Big Data Applications (ICISBDA 2023) 一、会议简介 🎉🎉🎉🎉🎉&…