stable diffusion(Lora的训练)

2023-11-04

以坤坤为例,上网随便找了几个坤坤的人脸图像,作为训练的数据集 

1 训练环境搭建

建议看一遍教程,虽然这个up主好像不是很专业的样子,不过流程差不多是这样的,重点关注一下虚拟环境搭建完之后,在终端选择配置的操作,就是一堆yes no,的选项,跟着视频来就行了。

1.1 git clone 项目

本地找个训练环境存放的文件夹,利用git工具拉取训练webui环境

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

拉取后会有这样的目录,执行红框内的setup.bat文件就能安装训练的虚拟环境了(和之前搭建的SD框架虚拟环境类似,但是安装的python库版本会有所出入,如果不想有版本冲突的话,建议直接在这里就不需要操作任何配置了)

1.2 cuda加速安装

项目网站上有安装的教程,用于加速训练过程的,支持30和40系显卡

1.3 打开训练的webui

和打开SD webui类似,直接点击这个目录下的gui.bat文件,看到url网址出现就能打开网站了。

2 图片的预处理

 简单来说训练过程中需要图像和对应的图像描述,类似于其他机器学习中的数据和标签。在stable diffusion的webui里可以找到图像预处理模块。输入到lora训练网络中的数据集应该长这样:

结果展示

2.1 裁剪

因为本文一开头搜集到的图像分辨率不一样,训练过程中最好使用同一的分辨率,这里可以通过剪裁网站批量处理人物图像。这里推荐使用512*512的分辨率。这个网站还能同一重命名图片,有强迫症的人很支持。

2.2 利用stable diffusion webui预处理

在ui的这个界面输入刚刚批量裁剪完的图像,和输出的目录。就能得到以下21张512*512并且带有描述文本的训练集了。

 ……这里坤坤的被预处理自动标记为1girl了,大家可以手动修改一下这个标签,然后检查其他的描述是否存在不合理的情况,酌情删除和增加即可。

3 模型的训练和使用

3.1 文件路径安排

回到lora训练的webui上,在dreambooth LoRA栏目下添加源模型,因为本次训练的是真实人物模型,笔者就选择了这个比较合适的大模型。

 子栏目Folders按照这个格式放置刚刚处理的图片,这里的文件命名只需要注意10_cxk,前面的数字,是每次训练过程中网络训练单张图片的次数。其余的路径名大家可以自定义。

 子栏目training parameter就是训练过程中需要炼丹的参数,大家根据自己电脑的配置来修改,数据量大的,显存足够的情况下,batchsize可以调高。学习率和epoch次数都是比较常见的修改参数。这里用了8个epoch去训练,每次epoch结束后都会保存当前的Lora模型。结果是这样的:

 大家可以根据训练的loss值来选择计算机认为较好的结果,当然loss越小拟合得越好,太小则会过拟合,泛化性能不足。

3.2 lora模型挑选

刚刚一共训练了八个cxk_lora模型,但看loss值不好挑选最佳的模型,这里回到stable diffusion webui里,利用脚本来观察那个lora模型比较好。

3.2.1 插件安装

需要安装红框里的插件,才能利用脚本一次性使用多个lora进行对比,当然,大家可以不用插件,一个一个去生成,但是就是会比较麻烦,有插件就方便一些。

3.2.2 比较模型 

把刚刚整完的lora模型放到这个插件的model/lora目录下,就能在界面看到这样的效果。记得大模型要选择你训练的时候的基底模型。附加网络随机选取,这个插件不用选择开启。但是网络类型和模型是需要选取的,为的是让后面的脚本能识别你要进行对比的lora模型。

 脚本里这样设置,选择XYZ 绘图脚本

X轴类型选择刚刚插件内的额外网络模型(也就是你的Lora模型)

Y轴选择这个模型需要运用的程度,等价于prompt语法中的<lora:cxk_model_xxx:0.5>,因为有些情况下,会出现模型的过拟合,若是应用占比过大,反而效果不好。

出图结果:

 可以看到拉,cxk_lora-7这个模型配合上0.9左右的占比,实现的效果比较好。

3.3 lora应用

选择刚刚合适的模型,放入到这个目录下(其实应该可以修改代码,这样就不用复制来复制去了。。还占用空间,不过fine拉,看代码也是个很长的过程)

 然后就能在stable diffusion webui里愉快地出图啦~

 这里的插件和脚本都不需要开启了。记得关闭。

相关链接

训练工程——kohya_ss

剪裁工具——photosoft

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stable diffusion(Lora的训练) 的相关文章

  • git 匹配多个单词的标签

    我们可以得到最后一个 git 标签 它以一个单词 例如 TEST 开头 如下所示 git describe tag dirty match TEST 我想知道如何获得最后一个以 word1 开头的标签orword2 例如测试OR跑步 我尝试
  • git config --global user.email 重新安装后不会让我更改电子邮件

    嘿 我完全重新安装了 Github 删除了所有文件 现在我再次安装了它 但是当我尝试设置它时 我遇到了一些问题 git config global user email 电子邮件受保护 cdn cgi l email protection
  • .gitconfig 别名函数调用

    我在 gitconfig 中定义了以下别名 alias teamcity tc tc是我在我的中定义的一个shell函数 bashrc文件 由于某种原因 我收到以下错误 aafghani 03 git workday amirafghani
  • 默认情况下 git merge -Xignore-space-change

    我该如何设置该选项ignore space change对于所有合并使用git config 我也许可以使用别名merge 但因为我希望该设置应用于git stash pop git stash apply git pull and git
  • Jenkins 和 Github 不使用 SSH 密钥

    我已将 Jenkins 设置为从 Github 上的私有存储库中提取特定作业 尽管我已经生成了私钥 公钥并将其作为部署密钥添加到 github 但 Jenkins 似乎并未使用 SSH 密钥 当我从 Jenkins 用户进行 git clo
  • 从 GitHub 上托管的 Spring Cloud Config Server 访问存储库的身份验证问题

    我在 GitHub 上的存储库中托管配置 如果我将回购公开 一切都好 但如果我将其设为私有 我将面临 org eclipse jgit errors TransportException https github com my user m
  • 在 Azure DevOps 项目之间移动存储库时保留拉取请求

    我在同一帐户内有两个 Azure DevOps 项目 我想将存储库从一个项目移动到另一个项目 这一页探索如何在具有完全保真历史记录的团队项目之间移动 git 存储库 https learn microsoft com en us azure
  • 使用终端时 Git 推送在总计后卡住了?

    我尝试将一些文件推送到Github 总大小只有22 2M 我不知道为什么它在总行之后卡住了 我读过推送到 Github 时 Git 推送挂起 https stackoverflow com questions 16906161 git pu
  • apt-get 无法在 ubuntu dockerfile 中工作

    我对 docker 相当陌生 正在尝试通过编写自己的镜像来学习 并且目前正在阅读 Docker 的实际操作 ISBN 1633430235 在我自己的代码和书中的示例 第 146 页 中 我想通过 dockerfile 安装 git My
  • 如何将工作树与提交进行比较?

    我在用着 git diff mycommit 用于比较我的工作树mycommit 但它似乎忽略当前索引中不存在的文件 您可以按如下方式重现它 git init echo A gt A txt git add git commit m A g
  • git 日志历史记录图,每次提交一行,彩色,带有日期

    我需要的格式如下 git log decorate graph oneline date order 但我也需要它 包含日期 短 具有相同的颜色 I tried git log decorate graph oneline date ord
  • `git Reset HEAD file` 是否也检查该文件?

    我错误地向 git 添加了一个目录 当我按照提示操作时here https stackoverflow com questions 348170 undo git add通过执行以下操作来撤消添加git reset HEAD
  • GIT:以下未跟踪的工作树文件将被签出覆盖

    我有两个分支 一个称为 master 另一个称为 dev 我目前位于 master 分支 我想转到 dev 分支将文件移动到开发服务器 但是当我执行 git checkout dev 我收到消息 以下未跟踪的工作树文件将被覆盖 查看 pag
  • Git 到 TFS 源代码管理迁移

    我想看看 TFS 如何为我的命令工作 所以我想将我们当前的 GIT 存储库移动到 TFS 数据库 我们使用 GIT 来获得普遍的分支支持 因此我想使用 TFS 2010 来解决该问题 现在的问题是 如何将 GIT 存储库导出到 TFS 显然
  • 无法通过 Git Bash 克隆 git 存储库

    在尝试使用克隆存储库时git clone 它显示以下错误 致命 无法访问 https github com microsoft c9 python getting started git https github com microsoft
  • Git 更改丢失 - 为什么?

    我们的开发团队正在使用 git 最近我们至少两次丢失了文件更改 我们正在使用私人 Github 存储库 在当前情况下 我们可以返回 Github 上的日志并查看我对文件所做的一些更新 后来 另一位团队成员更改了文件的不同部分 它似乎破坏了我
  • `git push` -- 没有输出,什么也没有发生

    touch test git add test git commit m test git push u origin master 这奏效了 该文件已上传到存储库 rm test cp R website website git rm t
  • 如何在不在存储库中的情况下执行 Git 命令?

    有没有一种方法可以在不位于存储库的情况下对存储库执行 Git 命令 例如这样的事情 git home repo log 请不要告诉我cd到它 我正在通过一个exec call Use C作为 git 的第一个参数 git C home re
  • git 2.32 git push -u origin master 没有任何反应

    I ve starting to use git github and I m stucked on how to push my codes to github I m following some tutorials and when
  • BRISK 特征检测器检测零个关键点

    下面显示的 Brisk 探测器没有给我任何关键点 有人可以提出一个问题吗 我将尝试用一些代码解释我在下面所做的事情 include opencv2 features2d features2d hpp using namespace cv u

随机推荐

  • ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memor

    在Docker容器中利用Pytorch训练模型的时候 出现了题目中的错误 ERROR Unexpected bus error encountered in worker This might be caused by insufficie
  • 【 AMEsim的安装教程】

    AMEsim的安装教程 AMEsim2021 1安装包百度网盘链接 链接 https pan baidu com s 1WwDbD1v7TGqxu6G0Nfm9Zw pwd gyg6 提取码 gyg6 1 下载完所有压缩包后 解压第一个压缩
  • MD5碰撞

    前言 在CTF中可以说是经常碰到md5加密了 一般都是进行强比较抑或是弱比较 考法非常多 但是万变不离其中 只要我们掌握了原理 一切问题便迎刃而解了 文章首发于 我的博客 格式可能比较清晰 有兴趣了解CTF中MD5碰撞的伙伴可以移步查看 简
  • Causal Inference

    文章目录 Standardization 非参数情况 Censoring 参数模型 Time varying 静态 IP weighting 无参数 Censoring 参数模型 censoring 条件下 V Time varying G
  • 计算二叉树的深度,结点的个数。

    计算二叉树的深度 结点的个数 算法5 5 计算二叉树的深度 结点的个数 include
  • 调用外部的搜索引擎(百度和Google)

    调用的百度和Google的代码如下
  • 程序员常用的10个Linux命令

    本文将为开发者分享10个有用的Linux命令 希望对你会有所帮助 以下就是今天我们要介绍的Linux命令 man touch cat and less sort and grep cut sed tar find diff uniq chm
  • 【生产篇】_Oracle ADG同步技术 ——DBA必备的一种“后悔药”

    note taker Ethan Yang recording time 2019 09 23 number of docs 11 引言 所有高可用性方案的本质就是 冗余 当然预算开支也会随着高可用性要求的提升而变得异常昂贵 大家在构建数据
  • 配置apache2.4.46虚拟目录

    配置虚拟目录 修改httpd conf 定位IfModule alias module这个模块 在 Alias webpath full filesystem path下按照格式改写 在模块末尾 lt Ifmodule gt 的上面加一段
  • Markdown编辑器【Typora 1.5.10】免费版下载、安装教程(亲测有效!!!)

    文章涉及Markdown版本为1 5 10 一 简介 1 Typora是一款非常好用的 Markdown 编辑器和阅读器 2 支持实时预览的轻量级 Markdown 编辑器 二 安装包及所涉及插件下载 阿里云盘 https www aliy
  • 测试面试LeetCode系列:一维数组的动态和

    每日一刷的LeetCode题目又来了 寒冬之下 助你拿一个大厂的测开offer 给你一个数组 nums 数组 动态和 的计算公式为 runningSum i sum nums 0 nums i 请返回 nums 的动态和 示例 1 输入 n
  • Qualcomm AR SDK之替换模型(已解决模型贴图问题)

    ARVR技术交流群 129340649 欢迎加入 求从事移动应用开发以及基于移动终端的AR应用开发的朋友 一起做一些事 有兴趣可以给我私信 谢谢 1 将模型转换为 obj格式 这个通过很多三维软件都可以实现 我用的是3Dmax 2 将obj
  • Flutter上你需要一个简单实用的验证码输入Widget

    现在很多app都有填写验证码的需求 而这个验证码的UI流行非普通的输入框 毕竟移动开发主要矛盾是设计师日益增长的天马行空同落后的开发之间的矛盾 作为跨平台方案的Flutter自然也会用到这种控件 本着少造轮子 多copy的原则 想去找个验证
  • 《Python进阶系列》六:Python中的文件对象

    文件对象的seek 和tell 打开一个文件 读取内容 是很常见的操作 不过有的时候我们还需要反复读取文件中的内容 如果多次打开文件读取再多次关闭 显然不是特别好的操作 我们可以借助Python文件对象的seek 和tell 函数 来实现反
  • 为什么那么多人用小智ai

    ChatGPT丨小智ai丨chatgpt丨人工智能丨OpenAI丨聊天机器人丨AI语音助手丨GPT 3 5丨OpenAI ChatGPT GPT 4 GPT 3 人机对话 ChatGPT应用 小智ai 小智ai 小智ai 小智ai Chat
  • Shader理论(2):Unity中的各种坐标系

    目录 前言 一 坐标系 1 1 世界坐标系 World Space 1 2 本地坐标系 Local Space 模型坐标系 1 3 屏幕坐标系 Screen Space 1 4 观察坐标系 ViewPort Space 视口坐标系 1 5
  • 如何设计一个短信发送功能

    本文主要分享了如何设计一个发送短信功能 一 总结简述 1 梳理多个平台短信API的发送参数 集成封装提供统一的API 支持多个短信平台 阿里云 腾讯云 百度云 京东云 七牛云 灵活切换 2 提供存储方案 表结构设计 3 提供真实生产项目代码
  • 内核配置中的:Multifunction device drivers

    Multifunction Device Drivers 多功能设备Linux下驱动开发 先来一个英文简介 Multifunction devices embed several functions e g GPIOs touchscree
  • kafka的一些基本命令

    kafka brokers test 8090 zookeeper servers test 2181 1 查看test服务器中的所有topic bin kafka topics sh list zookeeper test 2181 2
  • stable diffusion(Lora的训练)

    以坤坤为例 上网随便找了几个坤坤的人脸图像 作为训练的数据集 1 训练环境搭建 建议看一遍教程 虽然这个up主好像不是很专业的样子 不过流程差不多是这样的 重点关注一下虚拟环境搭建完之后 在终端选择配置的操作 就是一堆yes no 的选项