【stable diffusion】如何训练一个非常像的真人LoRA

在本篇文章中,我们将探索如何训练一个能够将喜爱的人物置入任何场景中并实现高度一致性的LoRA模型。借助LoRA,我们能够创造出极为逼真的人物图像,就如同我为斯嘉丽训练的LoRA模型所展示的那样。

scarlett johansson

那么,让我们一起深入了解如何训练LoRA。

Kohya训练器

在多种工具中,Kohya训练器因其全面的功能——不仅限于训练LoRA,也包括DreamBooth和Text Inversion——而广受欢迎。

国内也有一些开发者制作出了一些好用的训练器,比如赛博丹炉和秋叶丹炉。它们的原理和Kohya一样,设置好参数以后,最终都会转化为脚本进行训练。所以说,掌握了Kohya训练器以后,其他的训练器也不在话下。

安装Kohya相对简单,其详细的安装指南可在项目的Github主页(github.com/bmaltais/ko…)找到。

此外,B站的知名UP主Nenly也提供了一份详细的安装攻略(gf66fxi6ji.feishu.cn/wiki/Q4EYwQ…),非常值得参考。

LoRA训练流程

训练LoRA的流程包括以下几个关键步骤:

1️⃣ 准备数据集:选取适合训练的图片。

2️⃣ 图片预处理:进行裁剪和打标,为图片添加合适的标注或提示词。

3️⃣ 设置训练参数:在Kohya训练器中进行参数设置。

4️⃣ 开启训练:通过命令行查看训练进度。

5️⃣ 测试训练结果:挑选出效果最佳的LoRA文件进行测试。

LoRA训练的底层逻辑

为了解决可能出现的疑惑,本段落将深入解释LoRA训练的底层逻辑。通过深入了解这一过程,您将能更清晰地把握如何训练出一个高质量的LoRA模型。

LoRA训练概述

LoRA模型的训练目标是生成的图片与原训练图像高度相似。这是通过在Diffusion模型上添加额外权重来实现的,这些权重被保存在一个称作LoRA文件的单独文件中。可以将LoRA文件视为Diffusion模型的一种插件,这种插件会根据训练过程不断调整权重,以达到与原始训练图相似的效果。

训练过程详解

  1. 添加初始噪声:首先,我们会给训练图像添加一些初始噪声,这一步骤是为了模拟Diffusion过程中的噪声添加和去除过程,提高模型的泛化能力。
  2. 打标与去噪:在添加噪声后,Diffusion模型将根据训练图上的标注(例如“1girl”)进行去噪处理。这解释了为何我们需要在训练前为训练图打上标签的重要性。
  3. 计算Loss值:去噪后,我们将得到一张新的图片,用于与之前添加噪声的图片进行对比,通过这一比较,计算出两张图片之间的差异性,即Loss值。这个值反映了经过初步训练后的图片与原始训练图之间的差异。根据这个Loss值,AI会调整附加在Diffusion模型上的权重,使得模型去噪后的图片与原始训练图更加接近。
  4. 迭代优化:这一过程会不断重复,通过迭代调整权重,LoRA文件的训练效果将逐步提升。这个迭代次数也就是我们在Kohya训练器里设置的最大训练步数。
  5. 重复次数和轮次:在训练过程中,每张图都会被训练多次,这一次数称为重复次数(Repeats)。所有图片经过若干重复次数的训练后,完成的总体过程称为一个轮次(Epoch),这个参数也是在Kohya训练器中进行设置的。

通过上述步骤,LoRA模型的训练涉及到精细的权重调整和优化,确保了生成图像与原始训练图之间的高度相似性。希望这一解析能帮助您更好地理解LoRA模型的训练机制。

正式开始LoRA训练:以斯嘉丽为例

在理解了LoRA训练的底层逻辑后,我们现在可以开始实际的训练过程了。本次我们将以众所周知的好莱坞明星斯嘉丽·约翰逊为例,展开训练。下面是详细的步骤和一些建议,希望能帮助你顺利完成LoRA模型的训练。

第一步:准备训练集

成功的LoRA训练起始于高质量的数据集。以下是一些建议,帮助你准备一个合格的训练集:

选择合适的图片作为训练集是至关重要的第一步。优质的数据集直接影响训练结果的质量。

第二步:图片预处理

裁剪

为了让AI更好地学习人物的脸部特征,建议以1比1的宽高比进行裁剪,主要聚焦于头部区域。稍微包含一些肩膀部分也是可以的。这样的裁剪策略有助于生成更加逼真的LoRA图像。这样可以让AI充分学习人物的脸部特征,生成的LoRA也更像。如果到时候我们训练出的LoRA生成的图片只有大头照也没关系,因为我们可以先生成其他人物的全身照,然后用LoRA生成的大头照进行换脸。 这几张斯嘉丽的图片我就是这样生成的。灵活度很高,想要什么风格就什么风格。

### 使用 Stable Diffusion 进行 LoRA 训练指南 #### 准备工作 为了使用 Web UI 对不同模型(如 SD 1.5 和 SD 2.1)进行 LoRA 训练,需先安装并配置好 Stable Diffusion 的环境。这通常涉及下载预训练的基础模型以及设置必要的依赖项和库[^1]。 #### 数据集准备 数据对于任何机器学习项目都是至关重要的。针对特定领域或风格的数据集有助于提高生成图像的质量。收集高质量、多样化的图片作为训练素材,并按照指定格式整理这些文件以便于后续处理过程中的读取与解析。 #### 配置参数调整 通过修改配置文件来设定超参数,比如批次大小(batch size),迭代次数(iterations), 学习率(learning rate)等关键因素影响着最终效果的好坏。合理的选择可以加速收敛速度同时获得更优的结果;反之则可能导致过拟合或者欠拟合现象的发生。 #### 开始训练流程 启动 Web 用户界面后,在界面上加载之前准备好的基础权重(Base Weights)及自定义LoRA模块(Low-Rank Adaptation Module)。接着上传已标注完毕的数据集至平台内部存储空间内供算法调用。最后点击“Start Training”按钮即可开启自动化训练进程。 ```python from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler import torch model_id = "runwayml/stable-diffusion-v1-5" pipeline = StableDiffusionPipeline.from_pretrained(model_id).to("cuda") # Load the LoRA module into pipeline here. lora_path = "./path_to_your_lora_module" def train_with_lora(): # Implement your training logic using lora_path and other configurations. pass train_with_lora() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值