LoRA-Scripts环境配置全攻略:从零开始搭建LoRA训练环境

1. 准备工作与环境搭建

1.1 硬件与系统要求

在开始配置LoRA训练环境前,我们需要确保硬件和系统满足基本要求:

  • 显卡要求:至少需要NVIDIA显卡(推荐RTX 3060及以上),显存8GB以上
  • 操作系统:支持Linux(推荐Ubuntu 20.04+)和Windows 10/11
  • Python版本:Python 3.8-3.10
  • CUDA版本:CUDA 11.3-11.7(根据PyTorch版本选择)

对于Windows用户,建议安装WSL2以获得更好的开发体验。以下是检查硬件配置的方法:

# 检查显卡信息
nvidia-smi

# 检查Python版本
python --version

# 检查CUDA版本
nvcc --version

1.2 安装基础依赖

我们推荐使用conda创建虚拟环境来隔离项目依赖:

# 创建conda环境
conda create -n lora-scripts python=3.10
conda activate lora-scripts

# 安装PyTorch(根据CUDA版本选择)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

# 安装其他基础依赖
pip install transformers accelerate peft datasets

2. LoRA-Scripts安装与配置

2.1 获取lora-scripts代码

lora-scripts是一个开源项目,我们可以直接从GitHub克隆最新版本:

git clone https://github.com/Akegarasu/lora-scripts.git
cd lora-scripts

# 安装项目依赖
pip install -r requirements.txt

2.2 目录结构说明

了解项目目录结构有助于后续配置和使用:

lora-scripts/
├── configs/          # 训练配置文件
├── data/             # 训练数据集存放位置
├── models/           # 基础模型存放位置
├── output/           # 训练输出目录
├── tools/            # 实用工具脚本
├── train.py          # 主训练脚本
└── requirements.txt  # 依赖列表

2.3 下载基础模型

根据你的训练目标,需要下载对应的基础模型:

  • Stable Diffusion:从HuggingFace下载v1.5或XL版本
  • LLM模型:如LLaMA-2、ChatGLM等

以Stable Diffusion v1.5为例:

mkdir -p models/Stable-diffusion
cd models/Stable-diffusion

# 下载模型文件(需先登录HuggingFace)
wget https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.safetensors

3. 数据准备与预处理

3.1 训练数据收集

LoRA训练的数据质量直接影响最终效果:

  • 图片数量:50-200张(风格训练)或20-50张(人物训练)
  • 图片质量:分辨率≥512×512,主体清晰,背景干净
  • 内容一致性:保持风格或主体的一致性

将收集的图片放入data/目录下的子文件夹,例如:

data/
└── style_train/
    ├── img001.jpg
    ├── img002.jpg
    └── ...

3.2 自动标注与metadata生成

lora-scripts提供了自动标注工具:

python tools/auto_label.py --input data/style_train --output data/style_train/metadata.csv

生成的metadata.csv文件格式如下:

img001.jpg,"a cyberpunk cityscape with neon lights"
img002.jpg,"a futuristic street with holographic advertisements"

3.3 手动优化标注

自动生成的标注往往不够精确,建议手动优化:

  1. 删除不相关的描述(如水印、边框等)
  2. 添加风格关键词(如"cyberpunk style")
  3. 确保描述准确反映图片内容

4. 训练配置与启动

4.1 配置文件详解

复制默认配置文件并修改:

cp configs/lora_default.yaml configs/my_lora_config.yaml

关键配置项说明:

# 数据配置
train_data_dir: "./data/style_train"
metadata_path: "./data/style_train/metadata.csv"

# 模型配置
base_model: "./models/Stable-diffusion/v1-5-pruned.safetensors"
lora_rank: 8  # LoRA矩阵的秩,影响模型容量

# 训练配置
batch_size: 4  # 根据显存调整
epochs: 10
learning_rate: 2e-4

4.2 启动训练

使用配置好的文件启动训练:

python train.py --config configs/my_lora_config.yaml

训练过程中可以监控loss变化:

tensorboard --logdir ./output/my_style_lora/logs --port 6006

然后在浏览器访问http://localhost:6006查看训练曲线。

5. 模型使用与测试

5.1 获取训练结果

训练完成后,在输出目录可以找到LoRA权重:

output/
└── my_style_lora/
    ├── pytorch_lora_weights.safetensors  # LoRA权重文件
    └── logs/  # 训练日志

5.2 在Stable Diffusion中使用

将.safetensors文件复制到WebUI的Lora目录:

cp output/my_style_lora/pytorch_lora_weights.safetensors /path/to/sd-webui/models/Lora/

在WebUI中通过以下语法调用:

cyberpunk cityscape, <lora:my_style_lora:0.8>

5.3 在代码中直接加载

也可以直接在Python代码中加载使用:

from diffusers import StableDiffusionPipeline
import torch

pipe = StableDiffusionPipeline.from_pretrained(
    "runwayml/stable-diffusion-v1-5",
    torch_dtype=torch.float16
).to("cuda")

pipe.load_lora_weights("./output/my_style_lora")

image = pipe("cyberpunk cityscape", lora_scale=0.8).images[0]
image.save("result.png")

6. 常见问题与优化建议

6.1 显存不足解决方案

如果遇到CUDA out of memory错误,可以尝试:

  1. 降低batch_size(1-2)
  2. 减小图片分辨率(但不要低于512×512)
  3. 启用梯度累积:
batch_size: 1
gradient_accumulation_steps: 4

6.2 训练效果不佳调整

如果生成效果不理想:

  1. 检查数据质量与标注准确性
  2. 适当增加lora_rank(16-32)
  3. 调整学习率(1e-4到3e-4之间)
  4. 增加训练epochs(10-20)

6.3 其他实用技巧

  1. 增量训练:可以在已有LoRA基础上继续训练
  2. 多Lora融合:可以同时使用多个LoRA权重
  3. 模型合并:将LoRA权重合并到基础模型中

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐