当前位置:AIGC资讯 > AIGC > 正文

ComfyUI系列教程(4)--ComfyUI基础节点LoRA

ComfyUI基础节点LoRA

2. ComfyUI基础节点 2.1. LoRA 2.1.1.LoRA原理 2.1.2.LCM-LoRA 2.1.3.ComfyUI示例

2. ComfyUI基础节点

本文主要介绍LoRA模型及ComfyUI中LoRA的连接方式。

2.1. LoRA

LoRA是一种低成本微调大模型的方法,可以通过训练LoRA模型增强对应版本大模型的生成能力。比如训练一种画风LoRA,可以让大模型生成对应风格的图片。

2.1.1.LoRA原理

LoRA(Low-Rank Adaptation)本质上是对特征矩阵进行低秩分解的一种近似数值分解技术,可以大幅降低特征矩阵的参数量,但是会伴随着一定的有损压缩。在AI绘画领域,可以使用SD模型+LoRA模型的组合微调训练方式,只训练参数量很小的LoRA模型,就能在一些细分任务中取得不错的效果。训练过程中,LoRA微调技术虽然整体计算量与微调SD模型相比没有变化甚至更多,但参数量、显存占用、训练数据量和训练时长都较小。推理时,参数量、显存占用、推理耗时相对于SD模型,也没有改变。
LoRA模型的训练逻辑是首先冻结SD模型的权重,然后在SD模型的U-Net结构中注入LoRA权重,主要作用于Cross Attention部分,并只对这部分的参数进行微调训练。尽管SD模型的参数量很大,但每个细分任务对应的本征维度(Intrinsic Dimension)并不大,所以我们设置较小的秩就能获得一个参数量远小于SD模型的LoRA模型,并在一些细分任务中获得较好的效果。

使用LoRA时,可以调节LoRA权重;也可以使用多个LoRA模型同时作用于一个SD模型,并配置他们的各自权重。

2.1.2.LCM-LoRA

潜在一致性模型Latent Consistency Models(LCM)采用一致性蒸馏Latent Consistency Distillation(LCD)的方法,相比原始的DPM++30步扩散过程可加速10倍以上。
LCM蒸馏的过程是在已有的预训练模型上进行的,可以将蒸馏看做是预训练模型的微调,因此可以使用LoRA来表示。将加速功能独立成为一个LoRA后,不仅在训练时使用更少的资源,而且得到的LCM-LoRA具有很强的泛化能力,可以和风格LoRA线性叠加。此外,在前向推理时,可将训练好的LCM-LoRA模型用于任何一个微调后的SD模型,无需再对SD模型重新进行训练。所以LCM-LoRA在ComfyUI中的使用方法与LoRA一致,注意采样方式改成lcm,适当减少采样步数即可。

2.1.3.ComfyUI示例

在ComfyUI中,使用Load LoRA节点加载LoRA,需要放在大模型与提示词中间,将model和clip对应节点连上。如果需要加载多个LoRA模型,复制对应数量的Load LoRA然后串联起来即可,两边的model和clip分别接入。

节点中主要参数有strength_model和strength_clip;strength_model修改大模型的扩散强度;strength_clip修改CLIP模型的强度。通常会修改strength_model在0.6~0.8之间,不同的LoRA模型以及应用场景适用的权重值不同。此外,有的LoRA还需要在提示词中填写对应的触发词进行激活。LoRA模型的作者通常会给出推荐的权重、触发词等信息。如图是5-1 SD1.5文生图LoRA工作流。

以国风山水风格LoRA为例,可以看到随着strength_model权重增大(横轴),LoRA的作用越明显,而strength_clip的作用并不明显(纵轴)。

总结

### ComfyUI基础节点LoRA总结
**LoRA概述**
LoRA(Low-Rank Adaptation)是一种针对大模型的低成本、高效率的微调技术。通过仅训练参数量极小的LoRA模型,便可大幅增强特定版本大模型的生成能力,如生成特定风格的图片。这一方法避免了全面微调大型模型所需的巨大计算资源与时间成本。
**LoRA原理**
LoRA利用特征矩阵的低秩分解来近似数值分解,大幅减少参数量,实现有损压缩,在保持效果的前提下减少计算负担。在AI绘画中,结合SD(Stable Diffusion)模型,LoRA能够针对特定任务(如不同画风)进行精简而有效的训练。通过冻结SD模型的权重,将LoRA权重注入SD模型的U-Net结构中的Cross Attention部分,专注于优化这一部分的参数。此方法减少了模型训练所需的显存、数据量及时长,同时推理性能与SD模型保持一致。
**LCM-LoRA**
LCM(Latent Consistency Models)采用LCD(Latent Consistency Distillation)方法,显著加速了DPM++等模型的推理速度,可达10倍以上。LCM的蒸馏过程亦可视为预训练模型的微调,因此可用LoRA表示这一加速功能。LCM-LoRA在训练中资源消耗少且泛化能力强,能与风格LoRA线性叠加使用。其应用方式与常规LoRA相同,前向推理时适用范围广,可直接应用于任何微调后的SD模型。
**ComfyUI中的LoRA应用**
在ComfyUI平台上,LoRA模型通过“Load LoRA”节点加载。此节点需置于大模型与提示词节点之间,通过连接对应的model和clip节点进行集成。支持多LoRA模型的链式加载,以便组合不同效果。关键参数包括`strength_model`(调整大模型的扩散强度)和`strength_clips`(调整CLIP模型的强度),具体值依据LoRA模型及应用场景而定。部分LoRA还需在提示词中插入触发词以激活特定效果。
**实践示例**
以国风山水风格LoRA为例,通过调整`strength_model`的值,可直观观察LoRA效果随权重增大而增强的现象,而`strength_clips`的影响则相对有限。此实例展示了LoRA模型在ComfyUI中的灵活应用及高效调优方式。

更新时间 2024-09-25