扫一扫 扫一扫 扫一扫 扫一扫 上篇文章我分享了 47 个高质量的 Stable Diffusion 模型,这些模型都是别人训练好的,使用起来非常方便。 出图效率倍增!47个高质量的 Stable Diffusion 常用模型推荐“选用适当的模型,随随便便出个图,都要比打上一堆提示词的效果要好。 阅读文章 >但是如果我们要生成特定人物、物品或画风,别人的这些模型就满足不了了,这时候就需要通过训练自己的专属模型来实现。 目前 Stable Diffusion 主要有四种模型训练方法:Dreambooth、LoRA、Textual Inversion、Hypernetwork。本文主要介绍如何训练 LoRA 模型,LoRA 是一种轻量化的模型微调训练方法,是在原有大模型的基础上,对模型进行微调,从而能够生成特定的人物、物品或画风。该方法具有训练速度快,模型大小适中,训练配置要求低的特点,能用少量的图片训练出想要的风格效果。 一、训练数据集准备这个过程主要做三件事:
1. 训练素材处理 首先确定你的训练主题,比如某个人物、某种物品、某种画风等。以下我就以训练这种大手大脚的画风主题为例进行讲解。 确定好画风后,就需要准备用于训练的素材图片,素材图的质量直接决定了模型的质量,好的训练集有以下要求:
素材图准备完毕后,需要对图片做进一步处理:
2. 图像预处理 这一步的关键是对训练素材进行打标签,从而辅助 AI 学习。这里介绍两种打标签的方法: 方法一:把训练素材文件夹路径填写到 Stable Diffusion 训练模块中的图像预处理功能,勾选生成 DeepBooru,进行 tags 打标签。 方法二:安装 tagger 标签器插件,进行 tags 打标签。 网址:https://github.com/toriato/stable-diffusion-webui-wd14-tagger 选择批量处理, 输入目录填写处理好的图片目录,设置标签文件输出目录,阈值设置为 0.3(生成尽可能多的标签来描述图片内容),开始打标签。 3. 打标优化 预处理生成 tags 打标文件后,就需要对文件中的标签再进行优化,一般有两种优化方法: 方法一:保留全部标签 就是对这些标签不做删标处理, 直接用于训练。一般在训练画风,或想省事快速训练人物模型时使用。 优点:不用处理 tags 省时省力,过拟合的出现情况低。 缺点:风格变化大,需要输入大量 tag 来调用、训练时需要把 epoch 训练轮次调高,导致训练时间变长。 方法二:删除部分特征标签 比如训练某个特定角色,要保留蓝眼睛作为其自带特征,那么就要将 blue eyes 标签删除,以防止将基础模型中的 blue eyes 引导到训练的 LoRA 上。简单来说删除标签即将特征与 LoRA 做绑定,保留的话画面可调范围就大。 一般需要删掉的标签:如人物特征 long hair,blue eyes 这类。 不需要删掉的标签:如人物动作 stand,run 这类,人物表情 smile,open mouth 这类,背景 simple background,white background 这类,画幅位置等 full body,upper body,close up 这类。 优点:调用方便,更精准还原特征。 缺点:容易导致过拟合,泛化性降低。 什么是过拟合:过拟合会导致画面细节丢失、画面模糊、画面发灰、边缘不齐、无法做出指定动作、在一些大模型上表现不佳等情况。 批量打标:有时要优化等标签会比较多,可以尝试使用批量打标工具 BooruDatasetTagManager:https://github.com/starik222/BooruDatasetTagManager 二、训练环境参数配置训练数据集准备完毕后,开始训练环境配置。一般有本地和云端两种训练环境:
以下我以云端训练为例,介绍如何使用 Google Colab 进行云端训练环境配置。 1. 训练环境配置 这里推荐使用基于 kohya-ss 的训练脚本,例如: https://colab.research.google.com/github/WSH032/kohya-config-webui/blob/main/kohya_train_webui.ipynb 进入 Colab 后,点击连接。 ① 建立训练文件夹 连接成功后,展开(一)环境配置:
② 运行克隆 github的库、安装依赖 ③ 设置训练用底模型
2. 训练参数配置 展开(二)训练参数,运行启动 WebUI 来设置参数,出现 https://localhost:xxxxx/ 链接后点击打开训练参数配置界面。 先点击读取,完成默认参数配置,再进行基础参数和采样参数设置。 ① 基础参数设置 基础设置
输出设置
学习率设置
② 采样参数设置
完成训练参数设置后,点击全部参数确认、生成 toml 参数与采样配置文件,并保存配置文件。 三、模型训练训练参数配置保存完成后,点击开始训练。 这里的 steps 代表总训练步数。一般总训练步数不低于 1500,不高于 5000。 总训练步数=(Image 图片数量 x Repeat 每张图片训练步数 x Epoch 训练轮次)/ batch_size 并行数量。 训练完成后,模型文件会保存到设置的输出目录。比如 epoch 训练轮次设置了 5,就会得到 5 个训练好的 LoRA 模型。 四、模型测试模型训练完成后,要对训练好的这些模型进行测试,以找出最适合的那个模型(哪个模型在哪个权重值下表现最佳)。 ① 把训练好的 LoRA 模型全部放入 LoRA 模型目录 stable-diffusion-webui/models/Lora。 ② 打开 Stable Diffusion WebUI,在 Stable Diffusion 模型里先加载个模型训练时的底模,LoRA 模型里加载一个刚才训练好的 LoRA 模型,如 000001 模型,填上一些必要的提示词和参数。 划重点:把引入的 LoRA 模型提示词,改成变量模式,如: 改成 ,NUM 变量代表模型序号,STRENGTH 变量代表权重值。 ③ 在 Stable Diffusion WebUI 页面最底部的脚本栏中调用 XYZ plot 脚本,设置模型对比参数。 划重点:其中 X 轴类型和 Y 轴类型都选择「提示词搜索/替换」Prompt S/R。 X 轴值输入:NUM,000001,000002,000003,000004,000005,对应模型序号 Y 轴值输入:STRENGTH,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,对应模型权重值 这样就形成了一张模型测试对比表。 设置完毕后,点击「生成」,开始生成模型测试对比图。 通过对比生成结果,选出表现最佳的模型和权重值。 把选出的 LoRA 训练模型做一个规范化命名,比如 bighand_lora_v1,重新刷新 LoRA 模型列表就能加载使用啦。在实际应用中,我们可以结合 ControlNet 来使用,以提升可控性。 最后总结下 LoRA 模型训练的要点:
欢迎添加作者微信共同交流探讨(备注:来自优设) 手机扫一扫,阅读下载更方便˃ʍ˂ |
@版权声明
1、本网站文章、帖子等仅代表作者本人的观点,与本站立场无关。
2、转载或引用本网版权所有之内容须注明“转自(或引自)网”字样,并标明本网网址。
3、本站所有图片和资源来源于用户上传和网络,仅用作展示,如有侵权请联系站长!QQ: 13671295。