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的核心价值在于:
- 低成本高效:相比传统全量微调,Lora仅需少量数据和计算资源,训练时间缩短50%以上。例如,微调一个14GB的大模型可能仅需40MB的Lora参数。
- 灵活性与兼容性:Lora参数可叠加或独立存储,支持多任务适配、参数混合(如不同风格Lora按比例融合)。
- 性能无损:通过低秩逼近保留原模型能力,推理时与基础模型合并,性能接近全量微调。
典型应用场景包括图像生成(如Stable Diffusion风格定制)、语言模型领域适配(如法律/医疗文本生成)等。
使用
- 点击任意一个 LORA 模型,会自动填写到格式形如<lora:模型文件名称:权重>的 Prompt 到提示词输入框中。
- 触发词 (trigger)):单纯引入模型,很多时候并不会触发LORA 的效果,因为LORA 在训练时基本都会加入若干个特殊的触发词,所以使用时也需要在提示词中输入触发词才能激活 LORA 的效果。
- 存储位置:/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. 数据打标
打标有以下几种方式
-
手动打标:手动为每一张图片的内容制作标签文本,这种方式速度慢,但准确度高,稳定性好,适用于训练集较少的情况。
-
自动打标:使用打标脚本来帮助打标,这种方式速度很快,但准确度不高,会出现重复标签和冲突标签,适用于庞大的训练集
-
🚩自动打标手动校准:先用脚本自动打标,逐个检查每个标签文件,删去重复标签,增加触发词等等,这是我们最推荐的打标方式
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步保存检查点。
-
效果验证:
- 基础测试:使用触发词生成多尺寸图片,验证特征一致性。
- 泛化测试:组合不同风格提示词(如“赛博朋克+水墨”),检验兼容性。
💡 具体方法:
- 提示词添加<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,对应模型权重值- 生成图像,定位最合适的lora
5. 部署与迭代
- 将训练完成的Lora模型(通常为
.safetensors
文件)部署至Stable Diffusion的models/Lora
目录,通过WebUI动态加载。 - 根据用户反馈进行2-3轮微调迭代,逐步优化特征权重和泛化能力。
总结
作为AI产品落地的关键技术,Lora通过“轻量适配”解决了大模型定制化成本高、灵活性差的痛点。未来,随着多模态模型的发展,Lora在视频生成、3D建模等场景的应用潜力将进一步释放。产品经理需重点关注训练工具链的易用性优化(如自动化标注、云端训练平台)及商业化场景挖掘(如企业专属风格模型库)。
相关文章:

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

【Swift 算法实战】城市天际线问题解法
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...
易错点abc
在同一个输入流上重复创建Scanner实例可能会导致一些问题,包括但不限于输入流的混乱。尤其是在处理标准输入(System.in)时,重复创建Scanner对象通常不是最佳实践,因为这可能导致某些输入数据丢失或者顺序出错。 为什么…...
C++ 正则表达式分组捕获入门指南
在 C 中,正则表达式(regex)是一种用于匹配字符串模式的强大工具。正则表达式不仅能帮助你查找符合特定模式的字符,还能捕获匹配的子字符串(即分组捕获)。这篇文章将介绍 C 正则表达式中的分组捕获机制&…...

AI人工智能机器学习之降维和数据压缩
1、概要 本篇学习AI人工智能机器学习之降维和数据压缩,以主成分分析(PCA, Principal Component Analysis)为例,从代码层面讲述机器学习中的降维和数据压缩。 2、降维和数据压缩 - 简介 在机器学习和数据分析中,降维&…...
17 款电脑压缩工具详解及下载指南(2025 年最新版)
在数字时代,文件压缩是日常工作与生活中不可或缺的操作。无论是视频剪辑师压缩视频以便上传,还是普通用户节省存储空间,一款优质的压缩软件都能极大提升效率。本文将详细介绍 17 款热门电脑压缩软件,涵盖它们的特点、下载地址及适用场景,助你找到最适合自己的工具。 一、…...

DeepSeek开源周Day5压轴登场:3FS与Smallpond,能否终结AI数据瓶颈之争?
2025年2月28日,DeepSeek开源周迎来了第五天,也是本次活动的收官之日。自2月24日启动以来,DeepSeek团队以每天一个开源项目的节奏,陆续向全球开发者展示了他们在人工智能基础设施领域的最新成果。今天,他们发布了Fire-F…...
ROS2软件调用架构和机制解析:Publisher创建
术语 DDS (Data Distribution Service): 用于实时系统的数据分发服务标准,是ROS 2底层通信的基础RMW (ROS Middleware): ROS中间件接口,提供与具体DDS实现无关的抽象APIQoS (Quality of Service): 服务质量策略,控制通信的可靠性、历史记录、…...

【落羽的落羽 C++】C++入门基础·其之一
文章目录 一、C简介1. C的发展历史2. C参考文档 二、namespace命名空间1. C语言的一个缺陷2. namespace3. 命名空间的使用3.1 命名空间成员访问3.2 using展开 一、C简介 1. C的发展历史 C起源于1979年的贝尔实验室,Bjarne Stroustrup(本贾尼博士&#…...

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

每日一题-设计食物评分系统,哈希表的有效使用
本题出自LeetCode2353.设计食物评分系统,连着一星期都是设计类的题目哈 题目 设计一个支持下述操作的食物评分系统: 修改 系统中列出的某种食物的评分。返回系统中某一类烹饪方式下评分最高的食物。 实现 FoodRatings 类: FoodRatings(Strin…...
大模型应用:多轮对话(prompt工程)
概述 在与大型语言模型(如ChatGPT)交互的过程中,我们常常体验到与智能助手进行连贯多轮对话的便利性。那么,当我们开启一个新的聊天时,系统是如何管理聊天上下文的呢? 一、初始上下文的建立 1. 创建新会…...

WSDM24-因果推荐|因果去偏的可解释推荐系统
1 动机 可解释推荐系统(ERS)通过提供透明的推荐解释,提高用户信任度和系统的说服力,如下图所示,然而: 1:现有工作主要关注推荐算法的去偏(流行度偏差),但未显…...
VScode在Windows11中配置MSVC
因为MSVC编译器在vs当中,所以我们首先要安装vs的一部分组件。如果只是需要MSVC的话,工作负荷一个都不需要勾选,在单个组件里面搜索MSVC和windows11 SDK,其中一个是编译器,一个是头文件然后右下角安装即可。搜索Develop…...

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

cuda-12.4.0 devel docker 中源码安装 OpenAI triton
1,准备 docker 容器 下载docker image: $ sudo docker pull nvidia/cuda:12.6.2-devel-ubuntu20.04 创建容器: 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,或者兼容 Hive Metatore 的元数据服务,Doris 可以自动获取 Hive 的库表信息,并进行数据查询。 除了 Hive 外,很多其他系统也会使用 Hive Metastore 存储元数据。所以通过 Hive Catalog,我们不…...

【LeetCode】131.分割回文串
目录 题目描述输入输出示例及数据范围思路C 实现 题目描述 这道题目来自 LeetCode 131. 分割回文串。 题目描述如下: 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 输入输出示例及数据…...
JeeWMS graphReportController.do SQL注入漏洞复现(CVE-2025-0392)
免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x0…...

基于Python+django+mysql旅游数据爬虫采集可视化分析推荐系统
2024旅游推荐系统爬虫可视化(协同过滤算法) 基于Pythondjangomysql旅游数据爬虫采集可视化分析推荐系统 有文档说明 部署文档 视频讲解 ✅️基于用户的协同过滤推荐算法 卖价就是标价~ 项目技术栈 Python语言、Django框架、MySQL数据库、requests网络爬虫…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...