本文主要讲解两点:
- lora中的strength_model和strength_clip在代码中是如何起作用的;
- 解释提示词的权重
如:(girl:1.2)
是如何起作用的。
解析
-
lora中的strength_model和strength_clip在代码中是如何起作用的;strength_model是控制lora在unet中的权重;strength_clip是控制lora在clip中的权重;
a. 如下图代码所示,首先获取lora的两个低秩矩阵;
b. 然后获取计算尺度因子alpha;
b. 然后两个矩阵相乘得到lora_diff;
c. 最后,模型的原始权重 = 模型的原始权重 + strength_model* alpha* lora_diff,完成;
-
解释提示词的权重
如:(girl:1.2)
是如何起作用的。
a. 如果提示词有权重的话,会获取一些特殊的字符的id,to_encode中有两个列表,每个列表长度(77,);
b. 把to_encode放到encode中得到feature,out(2,77,1280);第一个是prompt feature把它作为x0,第二个是empty feature把它作为x1;
c. 第三步返回的提示词特征的计算公式就是:out = weight*x0+(1-weight)*x1;