当前位置: 首页 > news >正文

AIGC生图产品PM必须知道的Lora训练知识!

hihi,其实以前在方向AIGC生图技术原理和常见应用里面已经多次提到Lora的概念了,但是没有单独拿出来讲过,今天就耐心来一下!
🔥 一口气摸透AIGC文生图产品SD(Stable Diffusion)!

一、什么是Lora?

痛点

在自然语言处理领域,一种重要的范式是对通用领域数据进行大规模预训练,然后将模型适应到特定任务或领域。随着预训练模型越来越大,完全微调(重新训练所有模型参数)的成本越来越高。例如,对于拥有1750亿参数的GPT-3 175B模型,部署独立的微调模型实例是非常昂贵的。

Low-Rank Adaptation (LoRA)是一种解决方案,它通过在Transformer架构的每一层中注入可训练的低秩分解矩阵,将预训练模型的权重固定,并在下游任务中大大减少了可训练的参数数量。这样可以显著降低下游任务中需要微调的参数数量。
在这里插入图片描述

定义

Lora(Low-Rank Adaptation,低秩自适应)是一种针对大型AI模型的高效微调技术,由微软研究人员提出。其核心原理是通过低秩矩阵分解,仅调整原模型的一小部分参数(通常为0.1%-1%),即可实现特定任务的适配。

  • 低秩(Low Rank):在数学中,秩(Rank)是一个描述矩阵信息量的概念。低秩意味着这个矩阵包含的信息比较少。在机器学习中,常常使用低秩的方法来简化问题,因为包含的信息少,计算就更快,更容易处理。
  • 适应(Adaptation):适应是指模型可以根据新的数据自我调整,使得模型在新的数据上表现得更好。这对于处理那些数据分布可能会变化的问题非常有用。

从产品视角看,Lora的核心价值在于:

  1. 低成本高效:相比传统全量微调,Lora仅需少量数据和计算资源,训练时间缩短50%以上。例如,微调一个14GB的大模型可能仅需40MB的Lora参数。
  2. 灵活性与兼容性:Lora参数可叠加或独立存储,支持多任务适配、参数混合(如不同风格Lora按比例融合)。
  3. 性能无损:通过低秩逼近保留原模型能力,推理时与基础模型合并,性能接近全量微调。

典型应用场景包括图像生成(如Stable Diffusion风格定制)、语言模型领域适配(如法律/医疗文本生成)等。

使用

  1. 点击任意一个 LORA 模型,会自动填写到格式形如<lora:模型文件名称:权重>的 Prompt 到提示词输入框中。
    在这里插入图片描述
  2. 触发词 (trigger)):单纯引入模型,很多时候并不会触发LORA 的效果,因为LORA 在训练时基本都会加入若干个特殊的触发词,所以使用时也需要在提示词中输入触发词才能激活 LORA 的效果。
  3. 存储位置:/models/LORA

二、常见五大应用场景

1. 描绘特定人物形象

LoRA 最广的应用场景没有之一,在图生图里面的赛博Coser 就是一个典型例子,另外还包括打造动画、漫画、游戏里面的角色等等也属于这个场景的应用范畴。
在这里插入图片描述

2. 描绘特定画风

实现画风、或者视觉风格的微调。对应C站的 Model 分类为 Style
在这里插入图片描述

3. 描绘特定概念、特效

“概念”,它类似画风但又比画风更抽象。
在这里插入图片描述

4. 穿着特定服饰

给人物换上特定的服装,同系列、同主题或者同色彩的服装,例如汉服、机甲、武装。
在这里插入图片描述

5. 添加特定元素

借助蒙板功能,可以给原图像的局部添加或替换特定的元素。
在这里插入图片描述

三、训练步骤

从产品落地的全流程视角,Lora训练可分为以下阶段:

1. 数据准备

📢 常规要求

 ① 不少于 15 张的高质量图片,一般可以准备 20-50 张图;② 減少重复或相似度高的图片;③ 图片主体内容清晰可辨、特征明显,图片构图简单,避免其它杂乱元素④ 覆盖目标特征的多角度、多场景(如人物需包含正/侧/仰视)。 如果是人物照,尽可能以脸部特写为主(多角度、多表情),再放几张全身像(不同姿势、不同服装)

📢 避免

① 脸部有遮挡的不要(比如麦克风、手指、杂物等)②背景太复杂的不要(比如一堆字的广告板,或夜市太乱的背景)③分辨率太低的不要④光影比较特殊的不要(比如暗光,背光等)⑤不像本人特征的不要(比如大部分训练集都是长发,那么短发显脸大的不要,大笑毁形象的不要)⑥化妆太浓重的、美颜太严重的不要

🌰 案例

不同的训练目标所需要准备的训练集数量不同,eg:
- 真人类lora:30-50张图,需要有不同角度,不同姿势,面部特写等各种类型的图
- 二次元lora:10-30张图,需要有不同角度,不同姿势,面部特写等各种类型的图
- 画风类lora:100张图以上,需要不同的主题,丰富的细节。

💥 注意

① 去掉杂乱背景:如抠图,移除背景;② 标准归一化:如统一宽高;🔥 网站:https://www.birme.net(将需要处理的图片上传,调整好保留的区域,然后保存为压缩包即可。)③ 训练集数量不是越多越好,训练集的质量更是重中之重,训练集的质量可以从两个角度衡量
- 像素值越大,图片细节越多越好
- 美学价值越高越好,如特定的构图,经典的画作,摄影作品

2. 数据打标

打标有以下几种方式

  1. 手动打标:手动为每一张图片的内容制作标签文本,这种方式速度慢,但准确度高,稳定性好,适用于训练集较少的情况。

  2. 自动打标:使用打标脚本来帮助打标,这种方式速度很快,但准确度不高,会出现重复标签和冲突标签,适用于庞大的训练集

  3. 🚩自动打标手动校准:先用脚本自动打标,逐个检查每个标签文件,删去重复标签,增加触发词等等,这是我们最推荐的打标方式

    Step 01自动化打标

    • 方法一:SD自带的Tagger
      在这里插入图片描述在这里插入图片描述

    • 方法二:秋叶大神WD 1.4 Tagger自动打标
      在这里插入图片描述

    • 方法三:LLAVA(我们公司用的是这个)

    Step 02标签清洗:清洗噪声标签,添加核心触发词。

    💥 注意(思考🤔一下):希望保留的特征要删去,以人物的lora为例,如人物的发色,富有个人特点的饰品等等,所有删除的标签会被集合到触发词中,从而达到生成特定人物的目的。

    • 保留/添加标签:等价于引入基础模型中该标签的特征,表示在使用LoRA 时、这个位置的标签是可自定义的,画面可调范围就大;
    • 删除标签的作用:等价于将素材图片特征与 LoRA 做绑定,可以理解为训练出来的LORA 特征会覆盖基础模型同名标签所指向的特征;
      在这里插入图片描述

3. 参数配置与优化

在这里插入图片描述

  • 基础配置:推荐使用Kohya GUI工具,设置网络秩(Rank=32)、学习率(1e-4)、批量大小(Batch Size=2)。
  • 调优技巧
    • 动态学习率:初始1e-4,损失波动时降至5e-5。
    • 抗过拟合:增加Network Alpha值或提前终止训练。
      在这里插入图片描述

4. 模型训练与验证

  • 训练监控:通过TensorBoard观察损失曲线,每200步保存检查点。
    在这里插入图片描述

  • 效果验证

    • 基础测试:使用触发词生成多尺寸图片,验证特征一致性。
    • 泛化测试:组合不同风格提示词(如“赛博朋克+水墨”),检验兼容性。

💡 具体方法:

  1. 提示词添加<lora:模型 -NUM-STRENGTH> + 添加controlnet参考图
    在这里插入图片描述2. 在 Webul页面最底部的脚本栏中调用 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,对应模型权重值在这里插入图片描述
  2. 生成图像,定位最合适的lora
    在这里插入图片描述

5. 部署与迭代

  • 将训练完成的Lora模型(通常为.safetensors文件)部署至Stable Diffusion的models/Lora目录,通过WebUI动态加载。
  • 根据用户反馈进行2-3轮微调迭代,逐步优化特征权重和泛化能力。

总结

作为AI产品落地的关键技术,Lora通过“轻量适配”解决了大模型定制化成本高、灵活性差的痛点。未来,随着多模态模型的发展,Lora在视频生成、3D建模等场景的应用潜力将进一步释放。产品经理需重点关注训练工具链的易用性优化(如自动化标注、云端训练平台)及商业化场景挖掘(如企业专属风格模型库)。

相关文章:

AIGC生图产品PM必须知道的Lora训练知识!

hihi&#xff0c;其实以前在方向AIGC生图技术原理和常见应用里面已经多次提到Lora的概念了&#xff0c;但是没有单独拿出来讲过&#xff0c;今天就耐心来一下&#xff01; &#x1f525; 一口气摸透AIGC文生图产品SD&#xff08;Stable Diffusion&#xff09;&#xff01; 一、…...

【Swift 算法实战】城市天际线问题解法

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…...

易错点abc

在同一个输入流上重复创建Scanner实例可能会导致一些问题&#xff0c;包括但不限于输入流的混乱。尤其是在处理标准输入&#xff08;System.in&#xff09;时&#xff0c;重复创建Scanner对象通常不是最佳实践&#xff0c;因为这可能导致某些输入数据丢失或者顺序出错。 为什么…...

C++ 正则表达式分组捕获入门指南

在 C 中&#xff0c;正则表达式&#xff08;regex&#xff09;是一种用于匹配字符串模式的强大工具。正则表达式不仅能帮助你查找符合特定模式的字符&#xff0c;还能捕获匹配的子字符串&#xff08;即分组捕获&#xff09;。这篇文章将介绍 C 正则表达式中的分组捕获机制&…...

AI人工智能机器学习之降维和数据压缩

1、概要 本篇学习AI人工智能机器学习之降维和数据压缩&#xff0c;以主成分分析&#xff08;PCA, Principal Component Analysis&#xff09;为例&#xff0c;从代码层面讲述机器学习中的降维和数据压缩。 2、降维和数据压缩 - 简介 在机器学习和数据分析中&#xff0c;降维&…...

17 款电脑压缩工具详解及下载指南(2025 年最新版)

在数字时代,文件压缩是日常工作与生活中不可或缺的操作。无论是视频剪辑师压缩视频以便上传,还是普通用户节省存储空间,一款优质的压缩软件都能极大提升效率。本文将详细介绍 17 款热门电脑压缩软件,涵盖它们的特点、下载地址及适用场景,助你找到最适合自己的工具。 一、…...

DeepSeek开源周Day5压轴登场:3FS与Smallpond,能否终结AI数据瓶颈之争?

2025年2月28日&#xff0c;DeepSeek开源周迎来了第五天&#xff0c;也是本次活动的收官之日。自2月24日启动以来&#xff0c;DeepSeek团队以每天一个开源项目的节奏&#xff0c;陆续向全球开发者展示了他们在人工智能基础设施领域的最新成果。今天&#xff0c;他们发布了Fire-F…...

ROS2软件调用架构和机制解析:Publisher创建

术语 DDS (Data Distribution Service): 用于实时系统的数据分发服务标准&#xff0c;是ROS 2底层通信的基础RMW (ROS Middleware): ROS中间件接口&#xff0c;提供与具体DDS实现无关的抽象APIQoS (Quality of Service): 服务质量策略&#xff0c;控制通信的可靠性、历史记录、…...

【落羽的落羽 C++】C++入门基础·其之一

文章目录 一、C简介1. C的发展历史2. C参考文档 二、namespace命名空间1. C语言的一个缺陷2. namespace3. 命名空间的使用3.1 命名空间成员访问3.2 using展开 一、C简介 1. C的发展历史 C起源于1979年的贝尔实验室&#xff0c;Bjarne Stroustrup&#xff08;本贾尼博士&#…...

docker使用代理的简单配置

1准备代理服务器 准备代理服务器&#xff0c;例如192.168.120.168:52209 配置docker.service文件 查看service文件的位置 systemctl status docker 编辑service文件 vim /usr/lib/systemd/system/docker.service 添加代理配置 ... [Service] Environment"HTTP_PROXY…...

每日一题-设计食物评分系统,哈希表的有效使用

本题出自LeetCode2353.设计食物评分系统&#xff0c;连着一星期都是设计类的题目哈 题目 设计一个支持下述操作的食物评分系统&#xff1a; 修改 系统中列出的某种食物的评分。返回系统中某一类烹饪方式下评分最高的食物。 实现 FoodRatings 类&#xff1a; FoodRatings(Strin…...

大模型应用:多轮对话(prompt工程)

概述 在与大型语言模型&#xff08;如ChatGPT&#xff09;交互的过程中&#xff0c;我们常常体验到与智能助手进行连贯多轮对话的便利性。那么&#xff0c;当我们开启一个新的聊天时&#xff0c;系统是如何管理聊天上下文的呢&#xff1f; 一、初始上下文的建立 1. 创建新会…...

WSDM24-因果推荐|因果去偏的可解释推荐系统

1 动机 可解释推荐系统&#xff08;ERS&#xff09;通过提供透明的推荐解释&#xff0c;提高用户信任度和系统的说服力&#xff0c;如下图所示&#xff0c;然而&#xff1a; 1&#xff1a;现有工作主要关注推荐算法的去偏&#xff08;流行度偏差&#xff09;&#xff0c;但未显…...

VScode在Windows11中配置MSVC

因为MSVC编译器在vs当中&#xff0c;所以我们首先要安装vs的一部分组件。如果只是需要MSVC的话&#xff0c;工作负荷一个都不需要勾选&#xff0c;在单个组件里面搜索MSVC和windows11 SDK&#xff0c;其中一个是编译器&#xff0c;一个是头文件然后右下角安装即可。搜索Develop…...

数据库基础二(数据库安装配置)

打开MySQL官网进行安装包的下载 https://www.mysql.com/ 接着找到适用于windows的版本 下载版本 直接点击下载即可 接下来对应的内容分别是&#xff1a; 1&#xff1a;安装所有 MySQL 数据库需要的产品&#xff1b; 2&#xff1a;仅使用 MySQL 数据库的服务器&#xff1b; 3&a…...

cuda-12.4.0 devel docker 中源码安装 OpenAI triton

1&#xff0c;准备 docker 容器 下载docker image: $ sudo docker pull nvidia/cuda:12.6.2-devel-ubuntu20.04 创建容器&#xff1a; sudo docker run --gpus all -it --name cuda_LHL_01 -v /home/hongleili/ex_triton/tmp1:/root/ex_triton/tmp1 nvidia/cuda:12.6…...

doris: Hive Catalog

通过连接 Hive Metastore&#xff0c;或者兼容 Hive Metatore 的元数据服务&#xff0c;Doris 可以自动获取 Hive 的库表信息&#xff0c;并进行数据查询。 除了 Hive 外&#xff0c;很多其他系统也会使用 Hive Metastore 存储元数据。所以通过 Hive Catalog&#xff0c;我们不…...

【LeetCode】131.分割回文串

目录 题目描述输入输出示例及数据范围思路C 实现 题目描述 这道题目来自 LeetCode 131. 分割回文串。 题目描述如下&#xff1a; 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 输入输出示例及数据…...

JeeWMS graphReportController.do SQL注入漏洞复现(CVE-2025-0392)

免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x0…...

基于Python+django+mysql旅游数据爬虫采集可视化分析推荐系统

2024旅游推荐系统爬虫可视化&#xff08;协同过滤算法&#xff09; 基于Pythondjangomysql旅游数据爬虫采集可视化分析推荐系统 有文档说明 部署文档 视频讲解 ✅️基于用户的协同过滤推荐算法 卖价就是标价~ 项目技术栈 Python语言、Django框架、MySQL数据库、requests网络爬虫…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...