Stable Diffusion:使用自己的数据集微调训练LoRA模型

这篇具有很好参考价值的文章主要介绍了Stable Diffusion:使用自己的数据集微调训练LoRA模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

前言

  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入YOLO系列专栏、自然语言处理
    专栏或我的个人主页查看
  • 基于DETR的人脸伪装检测
  • YOLOv7训练自己的数据集(口罩检测)
  • YOLOv8训练自己的数据集(足球检测)
  • YOLOv5:TensorRT加速YOLOv5模型推理
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • 玩转Jetson Nano(五):TensorRT加速YOLOv5目标检测
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
  • Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集
  • YOLOv5:使用7.0版本训练自己的实例分割模型(车辆、行人、路标、车道线等实例分割)
  • 使用Kaggle GPU资源免费体验Stable Diffusion开源项目

前提条件

  1. 安装 Python 3.10.6 :https://www.python.org/downloads/release/python-3106/
  2. 安装 git:https://git-scm.com/download/win
  3. 安装 Visual Studio 2015, 2017, 2019, and 2022 redistributable:https://aka.ms/vs/17/release/vc_redist.x64.exe

相关介绍

  • Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
  • PyTorch 是一个深度学习框架,封装好了很多网络和深度学习相关的工具方便我们调用,而不用我们一个个去单独写了。它分为 CPU 和 GPU 版本,其他框架还有 TensorFlow、Caffe 等。PyTorch 是由 Facebook 人工智能研究院(FAIR)基于 Torch 推出的,它是一个基于 Python 的可续计算包,提供两个高级功能:1、具有强大的 GPU 加速的张量计算(如 NumPy);2、构建深度神经网络时的自动微分机制。
  • AIGC(人工智能生成内容)是指由人工智能系统创建或生成的内容。它涉及使用人工智能技术,如机器学习、自然语言处理和计算机视觉,生成各种形式的内容,包括文本、图像、视频、音乐等。
  • 稳定扩散(Stable Diffusion)是一种用于概率建模和图像处理的方法。它基于扩散过程的理论,旨在对图像进行平滑和去噪处理,同时保持重要的图像结构和细节。
  • 稳定扩散方法通过在图像上应用非线性扩散算子来实现平滑和去噪。与传统的线性扩散方法不同,稳定扩散引入了非线性项,以更好地保留图像的边缘和细节。
  • 稳定扩散的核心思想是在扩散过程中考虑梯度信息,并根据梯度大小和方向来调整扩散速度。这样可以在平滑图像的同时,有效地抑制边缘的模糊和细节的丢失。
  • 稳定扩散方法在图像去噪、边缘保持、纹理增强等方面具有广泛应用。它提供了一种平衡平滑和保持图像结构的方法,可以应用于计算机视觉、图像处理和模式识别等领域。
  • LoRA模型全称是:Low-Rank Adaptation of Large Language Models,可以理解为Stable-Diffusion中的一个插件,仅需要少量的数据就可以进行训练的一种模型。
  • LoRA模型可以用于大语言模型的微调,可以用来降低微调成本。
  • LoRA模型可以和大模型结合使用,干涉大模型产生的结果。
  • LoRA采用的方式是向原有的模型中插入新的数据处理层,从而避免了去修改原有的模型参数,从而避免将整个模型进行拷贝的情况,同时其也优化了插入层的参数量,最终实现了一种很轻量化的模型调校方法。
  • LoRA建议冻结预训练模型的权重并在每个Transformer块中注入可训练层(秩-分解矩阵)。 LoRA还可以用于Stable-diffusion中的交叉关注层,从而改善用文字生成图片的效果。
  • LoRA模型的个头都比较小,常见的都是144MB左右,使用的时候要与精简版(prund)的Stable Diffusion1.5模型配合使用。
    Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

微调训练LoRA模型

下载kohya_ss项目

  • 官方源地址:https://github.com/bmaltais/kohya_ss.git

Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc下载解压后,项目目录,如下图所示。
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

安装kohya_ss项目

  1. 打开终端并导航到所需的安装目录。
    进入kohya_ss目录:

    cd kohya_ss
    
  2. 执行如下命令运行setup脚本:

    .\setup.bat
    

如果没有报错,则安装成功。

运行kohya_ss项目

在Windows上,使用gui.bat脚本并在终端中运行它,命令如下:

gui.bat --listen 127.0.0.1 --server_port 7860 --inbrowser --share

运行成功后,可在浏览器输入http://127.0.0.1:7860/打开,如下图所示。
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

注:详细使用教程可查阅此项目中的README.md文件

准备数据集

在kohya_ss项目下,创建一个train目录,具体内容如下:
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

  • image : 图片放在这里。
  • log:训练记录
  • model:模型保存路径
  • image目录还有一个子目录,比如本文这里是100_Freeman,100表示100个steps,会直接影响训练的步数和效果,Freeman表示图片人物名称。
  • 创建好目录,将处理好的图片放在00_Freeman目录,然后就要准备做关键词生成。

生成关键词

  • 具体步骤:Utilities->Captioning->BLIP Captioning

Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc
成功生成,会出现TXT文件,如下图所示。
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

模型参数设置

预训练模型设置

Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

文件夹设置

Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

训练参数设置

Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

开始训练LoRA模型

Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc
训练完成后,会在model文件夹里生成一个.safetensors模型文件
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

TensorBoard查看训练情况

在页面上,点击Start TensorBoard,打开网址http://127.0.0.1:6006,即可查看。
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

测试训练的LoRA模型

测试模型,需要使用到stable-diffusion-webui项目,具体安装方法,可查阅Window下部署使用Stable Diffusion AI开源项目绘图

  1. 将kohya_ss/train/Freeman/model目录里的Freeman_bs2_epoch50_fp16.safetensors模型文件分别拷贝到stable-diffusion-webui项目里的stable-diffusion-webui/models/Lora目录和stable-diffusion-webui/models/Stable-diffusion目录下。
    Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc
    Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

  2. 在stable-diffusion-webui目录下,使用webui-user.bat脚本并在终端中运行它,命令如下:

webui-user.bat

Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

运行成功后,可在浏览器输入http://127.0.0.1:7861/打开,如下图所示。
Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

  1. 选择自己训练的LoRA模型
    Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc
    Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc
    Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

文字生成图像(txt2img)

 <lora:Freeman_bs2_epoch50_fp16:1>Freeman a beautiful woman with glasses and a white dress,modelshoot style,beautiful light,photo realistic game cg

Stable Diffusion:使用自己的数据集微调训练LoRA模型,自然语言处理,YOLO系列,stable diffusion,人工智能,LoRA,aigc

参考

[1] https://github.com/bmaltais/kohya_ss.git
[2] https://github.com/AUTOMATIC1111/stable-diffusion-webui
[3] https://github.com/camenduru/stable-diffusion-webui
[4] https://www.kaggle.com/code/camenduru/stable-diffusion-webui-kaggle
[5] https://blog.csdn.net/wpgdream/article/details/130607099
[6] https://zhuanlan.zhihu.com/p/620583928文章来源地址https://www.toymoban.com/news/detail-664102.html

  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入YOLO系列专栏、自然语言处理
    专栏或我的个人主页查看
  • 基于DETR的人脸伪装检测
  • YOLOv7训练自己的数据集(口罩检测)
  • YOLOv8训练自己的数据集(足球检测)
  • YOLOv5:TensorRT加速YOLOv5模型推理
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • 玩转Jetson Nano(五):TensorRT加速YOLOv5目标检测
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
  • Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集
  • YOLOv5:使用7.0版本训练自己的实例分割模型(车辆、行人、路标、车道线等实例分割)
  • 使用Kaggle GPU资源免费体验Stable Diffusion开源项目

到了这里,关于Stable Diffusion:使用自己的数据集微调训练LoRA模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • stable-diffusion打造自己的lora模型(使用lora-scripts)

    1、训练图片收集 比如要训练一个自己头像的模型,就可以拍一些自己的照片(20-50张,最少15张),要求画质清晰,脸部轮廓清楚,背景较为简单的照片。 2、使用stable_diffusion的预处理功能进行图片的预处理 这里可以根据自己的情况设置不同的宽高,以及相关的设置项,设置

    2024年02月03日
    浏览(41)
  • 快速训练自己的大语言模型:基于LLAMA-7B的lora指令微调

    前言: 系统:ubuntu 18.04 显卡:A100-80G(蹭的,嘿嘿~) (本次主要记录如何快速进行大模型的指令微调) 地址:https://github.com/Lightning-AI/lit-llama 切换到工程目录 使用pip安装依赖库 (当然,这里可能会遇到网络问题,安装不了lightning) 可使用以下方式安装: 下载lightning工程

    2024年02月11日
    浏览(51)
  • Stable Diffusion训练Lora模型

    以下内容参考:https://www.bilibili.com/video/BV1Qk4y1E7nv/?spm_id_from=333.337.search-card.all.clickvd_source=3969f30b089463e19db0cc5e8fe4583a 第一步,准备训练要使用的图片,即优质的图片 第二部,为这些图片打标,即精准的tag 数量建议20-50张,最多100张图片 不好的图片:模糊的,动作扭曲的,脸部被

    2024年02月12日
    浏览(63)
  • LoRa模型训练教程(炼丹,Stable Diffusion)

    何为LoRA?LoRA并不是扩散模型专有的技术,而是从隔壁语言模型(LLM)迁移过来的,旨在解决避免将整个模型参数拷贝下来才能对模型进行调校的问题。因为大型语言模型的参数量过于恐怖,比如最近新出的GPT-4参数量约为100 万亿。 LoRA采用的方式是向原有的模型中插入新的数

    2024年02月10日
    浏览(38)
  • Stable Diffusion Lora模型训练详细教程

    通过Lora小模型可以控制很多特定场景的内容生成。 但是那些模型是别人训练好的,你肯定很好奇,我也想训练一个自己的专属模型(也叫炼丹~_~)。 甚至可以训练一个专属家庭版的模型(family model),非常有意思。 将自己的训练好的Lora模型放到stableDiffusion lora 目录中,

    2024年02月02日
    浏览(44)
  • 保姆级教程:从0到1使用Stable Diffusion XL训练LoRA模型 |【人人都是算法专家】

    Rocky Ding 公众号:WeThinkIn 【人人都是算法专家】栏目专注于分享Rocky在AI行业中对业务/竞赛/研究/产品维度的思考与感悟。欢迎大家一起交流学习💪 大家好,我是Rocky。 Rocky在知乎上持续撰写Stable Diffusion XL全方位的解析文章: 深入浅出完整解析Stable Diffusion XL(SDXL)核心基础

    2024年02月09日
    浏览(46)
  • stable diffusion打造自己专属的LORA模型

    通过Lora小模型可以控制很多特定场景的内容生成。 但是那些模型是别人训练好的,你肯定很好奇,我也想训练一个自己的专属模型(也叫炼丹~_~)。 甚至可以训练一个专属家庭版的模型(family model),非常有意思。 将自己的训练好的Lora模型放到stableDiffusion lora 目录中,

    2023年04月09日
    浏览(79)
  • 【 stable diffusion LORA模型训练最全最详细教程】

    个人网站:https://tianfeng.space/ 其实想写LORA模型训练很久了,一直没时间,总结一下现在主流的两种LORA模型训练方式,分别是朱尼酱的赛博丹炉和秋叶大佬的训练脚本,训练效果应该是赛博丹炉更好,我个人更推荐朱尼酱的赛博丹炉,界面炫酷,操作简单,作者也是花了很多

    2024年02月09日
    浏览(45)
  • AutoDL 训练stable-diffusion lora模型

    1.创建镜像实例 2. 启动实例  3.启动服务 4.配置参数 4.1 基础模型选择   4.2 文件路径设置  5.点击打印训练信息  6.训练模型(点击Train model)    

    2024年02月16日
    浏览(42)
  • 炼丹!训练 stable diffusion 来生成LoRA定制模型

    LoRA,英文全称Low-Rank Adaptation of Large Language Models,直译为大语言模型的低阶适应,这是微软的研究人员为了解决大语言模型微调而开发的一项技术。 比如,GPT-3有1750亿参数,为了让它能干特定领域的活儿,需要做微调,但是如果直接对GPT-3做微调,成本太高太麻烦了。 LoRA的

    2024年03月27日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包