本讲目录

第 11 讲 · LoRA 实战

第 05 讲推导过它的数学(\(W' = W + s\cdot\frac{\alpha}{r}BA\),冻结主体+低秩旁路),本讲全是落地:怎么接线、strength 怎么定、触发词是什么、叠加的纪律、以及失效时的排查树。工作流对照 wf05_sdxl_lora.json

1. 接线:LoRA 串在"模型的水管"上

Load LoRA 节点有两进两出:MODEL 和 CLIP 各进各出。把它在 Checkpoint Loader 与后续节点之间:

Load Checkpoint ─MODEL─▶ Load LoRA ─MODEL─▶ KSampler
              └─CLIP──▶          └─CLIP──▶ CLIP Text Encode ×2

为什么 CLIP 也要过一遍?很多 LoRA 同时微调了文本编码器(让它认识新概念词),只接 MODEL 会丢一半效果。两条都串是默认正确做法。

两个 strength 滑块的含义(第 05 讲的 \(s\)):

2. 触发词:LoRA 的"开关咒"

训练 LoRA 时,作者通常用一个特定词标注全部训练图(如 myCharacterName 或某个风格代号)。这个词的作用机制:LoRA 微调后的 CLIP 把它编码成"指向新概念的向量",提示词里不写它,cross-attention 里就没有激活新概念的信号——LoRA 挂了等于白挂(最常见的"LoRA 没效果"原因)。

规则:模型页写了触发词就抄进提示词(通常放最前面);写"无需触发词"的(全局画风类)才可省。

3. 叠加纪律:LoRA 不是越多越好

多个 LoRA = 多个 \(\Delta W\) 直接相加(第 05 讲),互相之间没有任何协调机制——都在改同一批 attention 权重,冲突是常态而非例外。实践纪律:

  1. 同时 ≤ 2–3 个,且角色 LoRA 最多 1 个(两个角色 LoRA 相加 = 五官融合事故);
  2. 总强度控制:叠加时各自降到 0.6–0.8,粗略让"总和别太超过 1.2–1.5"(经验值,不是定理——本质是限制 \(\sum \Delta W\) 的总扰动幅度);
  3. 逐个引入:先把单个 LoRA 调到满意,固定种子,再加第二个观察冲突——第 08 讲"一次只动一个变量"的 LoRA 版;
  4. 串接方式就是 Load LoRA 节点首尾相连(A 的输出进 B 的输入),顺序理论上无关(加法交换),实际影响极小可忽略。

4. strength 的手感刻度

固定种子扫一遍 strength 是认识一个新 LoRA 的最快方式(0 / 0.4 / 0.7 / 1.0 / 1.3 五档):

strength 现象
0.3–0.5 若有若无的"调味"——适合给写实图加一点点风格倾向
0.7–1.0 设计意图的完整呈现——多数 LoRA 的目标区间
>1.2 过冲:画面脏、对比度怪、解剖崩——\(\Delta W\) 外推出训练范围
负值 反向应用:从画面里"减去"这种风格(偶尔有奇效的玩具)

5. 排查树:LoRA 不对劲时

完全没效果?
├─ 触发词写了吗? (第 2 节)
├─ 底模配对吗? (Illustrious LoRA × 你的 checkpoint 是同系吗? 第 05/10 讲)
├─ CLIP 线也串过 LoRA 节点了吗? (第 1 节)
└─ strength 是不是被设成 0?

有效果但很丑?
├─ strength 过高 → 降到 0.7 试
├─ 和另一个 LoRA 打架 → 单挂验证, 逐个排除
├─ 底模"同架构不同味" → 效果漂移(能跑但不对), 换回它训练用的底模系
└─ cfg 过高放大了扰动 → cfg 降 1-2

6. 进阶一嘴(知道存在即可)

上机任务

  1. 挂上第 10 讲下载的画风 LoRA,跑通 wf05:固定种子做第 4 节的五档 strength 扫描,存下对比图;
  2. 挂角色 LoRA(带触发词的),先故意不写触发词跑一张、再写上跑一张——把"开关咒"的机制亲眼确认;
  3. 两个 LoRA 同挂,各 1.0 强度出一张(大概率打架),再按第 3 节纪律降到 0.7/0.6 出一张,对比。

画风与角色解决了,下一讲解决"姿势与构图":把你 Mac 上 controlnet_aux 抽好的骨架图喂进 ControlNet——VRChat 素材工作流的关键一环就位。