Stable Diffusion LoRA模型部署与产品训练(附详细图解)

本文共3748字,可根据需要在目录跳转阅读


前言

简单介绍一下LoRA模型:LoRA是Low-Rank Adaptation of Large Language Models(大模型的低秩序自适应) 的缩写,也就是在大模型的基础上对部分神经网络进行调整训练。通俗来说,LoRA是“微调”大模型的对比训练一个大模型的成本,“微调”大大降低了训练的成本同时更有效率地满足需求,造车也就不必从头再造轮子。LoRA的优势在于对特定风格及特定对象的训练,例如,对图片的统一风格化生成和特定IP形象的训练。

本文要点

在我的学习过程中搜寻到的大部分参考文章都是以人像或IP形象为例进行的LoRA模型训练,苦于缺少LoRA模型在实体产品设计上的应用经验分享。本篇就以咖啡机为例分享LoRA模型在实体产品上训练的过程及应用效果分享(入门级实验性的训练,更多的实验反馈能够帮助学习优化模型效果)。

  1. LoRA训练环境的线上及线下部署经验
  2. 素材收集及训练过程
  3. 模型不同生成参数的效果对比和优化方法

一、设备要求

  • 能跑得动的GPU(至少是消费级显卡)mac缺乏CUDA支持,推荐线上部署用云服务器跑
  • 稳定的魔法

二、LoRA训练环境 & Stable Diffusion WebUI 部署

—本地部署

  • kohya_ss 训练脚本及GUI

    https://github.com/bmaltais/kohya_ss

进入链接的github页面,下滑到readme的installation部分

安装以上依赖的软件

python

—(推荐)下载anaconda,方便管理环境(这很重要)

https://www.anaconda.com/download/success

官网下载安装后创建环境,在电脑菜单栏搜索打开anaconda prompt,并输入以下代码(其中name是可以自定义的,版本号我们就选依赖要求的3.10.11)

conda create -n name python=3.10.11

创建成功后,通过输入以下代码就能成功进入环境了

conda activate name(自定义的环境名)

— 也可以直接安装,记得在安装时添加python到路径环境变量即可

CUDA 12.4 toolkit

直接下载,官网会自动识别你的电脑配置

​​​​​​​

Git,Visual Studio 2015,2017,2019 and 2022 redistributable​​​​​​​ 

直接下载安装

https://git-scm.com/downloads/win
https://aka.ms/vs/17/release/vc_redist.x64.exe

 所有依赖安装完成后,若使用anaconda的,先在终端通过输入conda activate name进入环境,再执行以下命令,直接安装python的可直接在终端执行以下命令

git clone https://github.com/bmaltais/kohya_ss.git
cd kohya_ss
.\setup.bat

到这里kohya_ss的训练脚本和GUI部署就完成了

  • Stable Diffusion WebUI

再打开个终端界面,若使用anaconda的记得进入环境,执行以下命令

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
.\webui-user.bat

到这里sd webui的部署也完成了


​​​​​​​—线上部署(Google Colab)

优势:无需自己配置环境,不受硬件限制(相当于在云端借着别人的电脑在训练)

缺点:免费使用量有限额,一旦与云服务器断开,即失去记忆,重新再跑一遍

  • Stable Diffusion webUI​​​​​​​

https://github.com/camenduru/stable-diffusion-webui-colab

进入这个网址,下滑看到Colab,选择第一行的stable版本

 更改运行类型为gpu

  • kohya_ss trainer

https://github.com/Linaqruf/kohya-trainer

 

 Google Colab与Google Drive联用的,复制到自己的Google Drive,训练集上传到Drive及训练生成的模型文件也会保存在Drive


三、实物产品LoRA训练过程及应用到SD生图

—LoRA训练过程

素材准备

在<kohya_ss>文件夹下新建<train>文件夹(用于放置所有训练相关的文件),再在<train>下新建<coffee machine>文件夹(用于放置本次训练的文件)

在<coffee machine>文件下新建以下三个文件夹

在<image>文件夹中新建<100_cof>文件夹用于存放素材(该文件夹命名的数字会影响训练步数,可根据需要更改)

素材要主体清晰,尽量多角度,也可以添加在场景中的

素材打标

若用anaconda的要conda activate进入相应环境,在终端执行以下命令,打开sd webui界面

cd stable-diffusion-webui
.\webui-user.bat

将<100_cof>的文件夹地址复制粘贴到以下页面的【Input directory】和【Output directory】,并在【Caption]中选中【Deepbooru】或【BLIP】(也可以同时选中)

生成后即可在<100_cof>文件夹中看到每张图片对应的标签(.txt文件),并根据需要手动优化 

训练设置

在对应环境下,开个新的终端页面,执行以下命令,打开kohya_ss的训练界面

cd kohya_ss
.\gui.bat

图片中标注的四处是训练必填的,分别是1️⃣lora模型名称 2️⃣image文件夹地址 例如:kohya_ss/train/image 3️⃣模型结果保存地址 例如:kohya_ss/train/model

4️⃣训练日志存放地址 例如:kohya_ss/train/log,点击“start training” 开始训练

 训练开始后,点击“start tensorboard”可以看到实时训练日志,如果训练结束后还想看某次训练的日志情况,只用填4️⃣的文件夹,再“start tensorboard”就可以看到了

 —LoRA应用到Stable diffusion生图

模型导入

产品生图目前sd在civitai最火的就是名为ProductDesign的大模型,该网址可直接下载

https://civitai.com/models/23893/product-design-minimalism-eddiemauro

下载后将该模型移入【stable-diffusion-webui】文件夹下【models】文件夹下的【stable-diffusion】文件夹中 (该文件夹存放checkpoint大模型)

(ps:使用该大模型,prompt的第一个词必须得是"3D product render"或"product render"以激活使用)

并将训练好的safetensors后缀的模型文件复制或移动到【stable-diffusion-webui】文件夹下的【models】文件夹下的【LoRA】文件夹中

打开sd webui可以刷新看到,点击即可以选择ProductDesign大模型并在prompt中调用LoRA模型

生图测试 

在sd生图我们常要对各种可能影响的参数进行测试,以达到较好的生图效果,X/Y/Z plot是不可以错过的生图脚本。

通过更改xyz的type,可以同时对不同采样器(sampler),采样步数(steps),LoRA模型权重进行列表对比

例如:X type为sampler  values选择了不同的采样器,Y type为steps values选择 

例如:X type为sampler/X values为不同的采样器,Y type为steps/Y values为5,10,15,20,25,30

 Sampler目前来说效果比较好的是DPM++2M,schedule type:karras,Steps大概在20-30会较为理想

同时LoRA对光影风格的迁移学习能力会较强,以下是用了xiaomi su7仅4张图片训练的LoRA配合咖啡机训练的LoRA生图的测试

更多LoRA模型训练与SD生图在产品上的应用要点总结会在后续分享 

​​​​​​​

### 使用 Stable DiffusionLoRA 进行局部重绘训练 #### 准备工作 为了使用 Stable Diffusion 结合 LoRA 模型进行局部重绘训练,需先准备好基础环境和资源。确保安装并配置好 Stable Diffusion 的运行环境,并下载所需的预训练模型文件。 对于特定需求提到的 `RevAnimated_v122.safetensors` 作为基底模型以及两个 LoRA 文件——IvoryGoldAI (增加金属质感) 和 more_details (增强图像细节)[^1],这些都将用于微调过程中的风格调整。 #### 数据集准备 创建一个专门的数据集,其中包含需要重新绘制部分的目标图片及其对应的掩码(mask),该掩码用来指示哪些区域应该被修改。每张图其对应mask应成对存在,以便于后续处理脚本读取。 #### 配置参数命令执行 在启动训练之前,定义必要的超参数如 batch size, learning rate 等。同时,在命令行中指定加载的基础模型路径、LoRA权重位置以及其他必要选项: ```bash python train.py \ --base_model_path ./models/revanimated_v122.safetensors \ --lora_weights "./loras/IvoryGoldAI.lora", "./loras/more_details.lora" \ --data_dir /path/to/dataset \ --output_dir output_directory_name \ --learning_rate=5e-6 \ --max_train_steps=800 ``` 此段代码展示了如何通过 Python 脚本来发起一次基于给定条件下的训练任务[^2]。 #### 应用负向提示优化结果质量 为了避免某些不希望出现的效果,可以在训练过程中加入负面提示(negative prompt)。例如利用 badhandv4 或 EasyNegativeV2 来防止手部变形等问题的发生;而 Deep Negative 则有助于改善人体结构准确性等方面的表现[^3]。 #### 实践建议 理论知识固然重要,但实践才是检验真理的标准。鼓励读者跟随具体项目操作一遍完整的流程,这样不仅能加深理解还能积累宝贵经验[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值