2026 ComfyUI NSFW LoRA 叠加指南 | Lewdly Blog
/ ComfyUI / ComfyUI NSFW 生成的 LoRA 叠加指南
ComfyUI 6 分钟阅读

ComfyUI NSFW 生成的 LoRA 叠加指南

叠加三到四个 NSFW LoRA 而不崩坏。权重区间、冲突模式、LoRA Stacker 节点,角色加风格加解剖。

ComfyUI NSFW 生成的 LoRA 叠加指南

单个 LoRA 几乎不足以胜任正式的 NSFW 工作。你需要一个角色 LoRA 来保证面部一致性,一个风格 LoRA 来处理视觉风格,一个解剖 LoRA 来保证露骨细节的还原度,如果你用的基础模型需要帮助,可能还要一个解锁 LoRA。这一组三到四个 LoRA 必须协同工作,而不能其中一个抵消另一个,也不能产出一锅杂烩般的平均结果。大多数人叠加 LoRA 的方式就是把它们全都按默认权重丢进去,然后听天由命。这就是他们的输出看起来像被搅拌机搅过一遍的原因。把 LoRA 叠好是一门手艺活,下面就是我用来从复杂堆栈里得到干净输出的确切流程。

快速答案: 在 ComfyUI 里,串联多个 LoRA Loader 节点,或者使用 Efficiency Nodes 里的 LoRA Stacker。一个典型的堆栈把解锁 LoRA 设为 0.7,角色 LoRA 设为 0.8,风格 LoRA 设为 0.6,解剖 LoRA 设为 0.5。每个 LoRA 都同时拥有模型权重和 CLIP 权重。如果提示词感觉被打乱了,就把 CLIP 权重降低到 0.4 到 0.6。一次只测试一个 LoRA,然后逐步增加。两个想做相似事情的 LoRA 之间的冲突是最常见的失败原因。

关键要点:
  • Efficiency Nodes 里的 LoRA Stacker 是在 ComfyUI 中管理 3 个以上 LoRA 最干净的方式。串联多个 LoRA Loader 也能工作,但视觉上会变得很乱。
  • 大多数 LoRA 都有两个权重参数,strength_model(UNet 影响)和 strength_clip(文本编码器影响)。它们用途不同,应当各自独立地调节。
  • 典型的 NSFW 正式堆栈是解锁加角色加风格加解剖。所有 LoRA 的总合并权重通常应当保持在 2.5 以下。
  • 需要留意的冲突模式包括两个训练在相似风格上的 LoRA 互相打架、角色 LoRA 被强势的风格 LoRA 压制、以及解剖 LoRA 过度强调特征。
  • 用固定种子一次扫描一个权重,以做系统化调节。A/B 测试胜过靠猜。
  • 如果想要完全无需管理 LoRA 的工作流,lewdly.ai 会在服务端处理整个堆栈。

为什么单个 LoRA 几乎不够用

说白了,你之所以无法从单个 LoRA 得到正式的 NSFW 输出,是因为 LoRA 是专才。角色 LoRA 编码了面部特征和身材比例,但它并不知道好的皮肤质感是什么样的。风格 LoRA 编码了光照和色彩处理,但它不认识你角色的脸。解剖 LoRA 填补了露骨内容的空缺,但它对构图没有任何主见。每个 LoRA 都在一个狭窄的频段里携带信息,而好的输出需要多个频段协同工作。

它为什么能这样工作的原理。一个 LoRA 以低秩分解的方式修改基础模型的权重,这意味着它在保持模型大部分不变的同时,把模型的行为往一个特定方向轻推。叠加多个 LoRA 就是把它们的轻推组合起来,只要这些轻推大致朝着正交的方向,组合效果就是它们各自能力的并集。

叠加出问题的地方在于两个 LoRA 朝相似方向轻推。如果你把两个写实皮肤 LoRA 都按满强度加载,它们都在把模型往写实皮肤推,组合效果就是“过度写实皮肤”,通常表现为蜡感或细节过头。这是最常见的叠加失败,每当创作者不去思考每个 LoRA 实际在做什么就加载它们时,就会发生。

正确的思维模型。把每个 LoRA 想象成风格空间里的一个向量。叠加 LoRA 就是把这些向量相加。如果两个向量指向相似方向,你会在那个方向上得到一个过火的结果。如果它们指向不同方向,你会得到一个平衡的组合。叠加多样的 LoRA,而不是冗余的 LoRA。

具体到 NSFW 工作,典型的正式堆栈覆盖四个频段:

  • 解锁频段: 帮助基础模型产出露骨内容(主要用于 Flux)
  • 角色频段: 锁定特定的面部和身材特征
  • 风格频段: 控制视觉处理(写实、电影感、时尚)
  • 解剖频段: 提升露骨内容的还原度

这四者足够正交,所以可以全部叠加而不产生大的冲突。在这之外再加更多 LoRA 通常会引入冗余并降低输出质量。

模型权重与 CLIP 权重

每个 ComfyUI LoRA Loader 都有两个权重参数,分别叫 strength_model 和 strength_clip。大多数教程都对它们之间的区别一笔带过。理解这个区别是认真叠加的钥匙。

strength_model 控制 LoRA 对 UNet(也就是扩散模型本身)的修改程度。这是视觉影响。strength_model 越高,LoRA 的视觉特征在输出中就显现得越强。这就是大多数人所理解的“LoRA 强度”。

strength_clip 控制 LoRA 对文本编码器(CLIP)的修改程度。这会影响模型如何解读提示词。strength_clip 越高,LoRA 越会把提示词理解偏向它所训练的内容。

大多数情况下,你想让 strength_model 和 strength_clip 大致取相同的值。模型和文本编码器需要对这个 LoRA 想要什么达成一致。如果它们偏离太远,你会得到打乱的输出,模型在渲染一样东西,而文本编码器却以为你要的是另一样。

但有一些特定情况你会想让它们不同:

  • 角色 LoRA: 往往受益于略低的 CLIP 权重(0.6 到 0.7,相对于 0.8 的模型权重),因为 CLIP 修改可能会过度强调角色名触发词,让提示词感觉受束缚。
  • 风格 LoRA: 有时受益于较高的 CLIP 权重,以推动模型用该 LoRA 的风格词汇来解读提示词。
  • 解剖 LoRA: 通常想要较低的 CLIP 权重(0.4 到 0.5),以避免模型在提示词解读中过度强调解剖。
  • 解锁 LoRA: 想要 strength_model 在 0.7 到 0.8,strength_clip 在 0.5 到 0.6,因为把 CLIP 调得过猛会开始破坏提示词语义。

一个在 2026 年管用的常见起点:

  • strength_model: 0.8
  • strength_clip: 0.6

这是一个轻微的不平衡,既给出视觉影响又不打乱提示词。从这里出发,根据你的堆栈感觉来调。

LoRA Stacker 节点设置

要干净地叠加 3 个以上的 LoRA,Efficiency Nodes 里的 LoRA Stacker 节点是合适的工具。它把多个 LoRA Loader 操作打包进一个节点,让你的图保持可读。通过 ComfyUI Manager 安装 Efficiency Nodes。这个节点会以“LoRA Stacker”的名字出现在 loaders 分类里。

LoRA Stacker 节点有:

  • lora_count: 要暴露的 LoRA 槽位数量(设为你的堆栈大小)
  • mode: “simple”或“advanced”(simple 每个 LoRA 用一个权重,advanced 把模型和 CLIP 分开)
  • 每个槽位: lora_name(可用 LoRA 的下拉菜单),strength(或在 advanced 模式下的 strength_model 和 strength_clip)

做 NSFW 工作时我总是用 advanced 模式,因为模型和 CLIP 权重的区分很重要。simple 模式用来随便试试没问题,但会限制你的调节选项。

这个节点输出一个 LORA_STACK,你把它连到一个下游节点,由它一次性应用所有叠加的 LoRA。标准模式是:

  1. CheckpointLoader → 输出 model 和 clip
  2. LoRA Stacker → 输入 lora_count 和每个 LoRA 的设置 → 输出 LORA_STACK
  3. Apply LoRA Stack → 输入 model、clip、LORA_STACK → 输出修改后的 model 和 clip
  4. KSampler 使用修改后的 model 和 clip

即使堆栈里有 5 个以上的 LoRA,这样在视觉上也保持干净。相比串联的 LoRA Loader(每个 loader 都是一个独立节点),Stacker 方案在正式工作流中可读性高得多。

另一个值得知道的 stacker 选项是 ShmuelRonen 的 multi-lora-stack,它有更动态的界面,可以在运行时切换 LoRA。对实验性工作流很有用,但正式工作我用的是标准的 Efficiency Nodes Stacker。

配方:解锁加角色加风格加解剖

这个四频段堆栈覆盖了大多数正式 NSFW 工作。这些设置只是起点,要根据你具体的 LoRA 和基础模型来调。

用于 Pony Realism v2.2 或类似的 Pony 系 SDXL:

LoRA 1 (Unlock, optional for Pony):
  lora_name: pony_nsfw_unlock.safetensors (if needed)
  strength_model: 0.4 (Pony already knows NSFW)
  strength_clip: 0.3

LoRA 2 (Character):
  lora_name: <your_character>.safetensors
  strength_model: 0.85
  strength_clip: 0.7

LoRA 3 (Style):
  lora_name: photoreal_skin.safetensors
  strength_model: 0.6
  strength_clip: 0.5

LoRA 4 (Anatomy):
  lora_name: anatomy_detail.safetensors
  strength_model: 0.5
  strength_clip: 0.4

总合并模型权重:2.35。这落在 SDXL 系列模型的安全区间内。超过 3.0 你就开始有输出退化的风险。低于 1.5 你大概是在浪费这个堆栈。

用于 RealVisXL V5(没有内置 NSFW 先验):

LoRA 1 (Unlock):
  lora_name: realvis_nsfw.safetensors
  strength_model: 0.75
  strength_clip: 0.55

LoRA 2 (Character):
  lora_name: <your_character>.safetensors
  strength_model: 0.8
  strength_clip: 0.65

LoRA 3 (Style):
  lora_name: cinematic_lighting.safetensors
  strength_model: 0.55
  strength_clip: 0.5

LoRA 4 (Anatomy):
  lora_name: anatomy_detail.safetensors
  strength_model: 0.55
  strength_clip: 0.4

总合并模型权重:2.65。略高一些,因为 RealVisXL 需要解锁 LoRA 更大的推力,才能对抗它写实人像训练带来的偏置。

用于 Flux Dev 或 Flux Schnell:

LoRA 1 (Unlock, critical):
  lora_name: flux_nsfw_unlock.safetensors
  strength_model: 0.85
  strength_clip: 0.65

LoRA 2 (Character):
  lora_name: <your_flux_character>.safetensors
  strength_model: 0.8
  strength_clip: 0.7

LoRA 3 (Style):
  lora_name: flux_photoreal.safetensors
  strength_model: 0.5
  strength_clip: 0.45

总共三个 LoRA,因为 Flux 的 LoRA 生态较小,叠加更多时更容易引入冲突。总合并模型权重:2.15。

免费ComfyUI工作流

查找本文技术的免费开源ComfyUI工作流。 开源很强大。

100%免费 MIT许可证 可用于生产 星标并试用

上面这些模式都是起点。真正的功夫在于扫描各个权重,看看对你具体的 LoRA 组合和基础模型什么管用。

冲突模式与如何诊断

认出冲突模式,是靠猜和靠调之间的区别。下面是最常见的几种失败,以及它们在输出中的样子。

风格争抢(最常见): 两个 LoRA 在做相似的事。输出看起来“浑浊”或“过火”。具体迹象包括皮肤看起来发蜡、光照感觉人造、以及颜色过饱和。

解决方法:把其中一个争抢的 LoRA 的 strength_model 降到 0.4 到 0.5,或者干脆移除它。

风格 LoRA 导致的角色漂移: 角色 LoRA 的脸被一个强势的风格 LoRA 盖过去了。具体迹象包括同一提示词在多次生成之间脸型变化、种族漂移、以及表情变得平淡。

解决方法:把风格 LoRA 的 strength_model 降到 0.4 到 0.5。把角色 LoRA 的 strength_model 提到 0.9。专门把风格 LoRA 的 strength_clip 降到 0.3 到 0.4。

解剖过度强调: 解剖 LoRA 把身体细节拉得太用力。具体迹象包括卡通般夸张的解剖特征、明显像是被 LoRA 硬塞进去的身体部位、以及关于非解剖细节的提示词被忽略。

解决方法:解剖 LoRA 的 strength_model 最多到 0.4。CLIP 权重尤其要非常低(0.3 到 0.4),因为正是 CLIP 修改让 LoRA 在提示词中过度强调那些特征。

解锁 LoRA 渗入 SFW 内容: 解锁 LoRA 把所有生成都偏向 NSFW,即便提示词并没有要求。具体迹象包括每次生成都倾向露骨,哪怕提示词本应是 SFW,以及模型在未被要求的情况下加入 NSFW 元素。

解决方法:解锁 LoRA 的 strength_model 最多到 0.6。如果你做 SFW 和 NSFW 混合的工作,为各自分别搭建工作流,只在 NSFW 工作流里使用解锁 LoRA。

整个堆栈的色偏: 多个 LoRA 训练在不同的色彩处理上。输出在多次生成之间色温不一致。具体迹象包括同一提示词下皮肤这次生成偏粉、下次生成偏黄。

解决方法:找出哪个 LoRA 对颜色最有主见(通常是一个风格或写实 LoRA)。把那个 LoRA 锁定在一个适中的权重(0.5 到 0.6),围绕它来调其余的。

想跳过复杂性吗? Lewdly 无需技术设置即可立即为您提供专业的AI结果。

零设置 相同质量 30秒内开始 免费试用Lewdly
无需信用卡

针对任何冲突的诊断方法。除一个之外,禁用所有 LoRA。生成。加入下一个 LoRA。生成。对比。哪个 LoRA 一加进来就破坏了输出,它就是冲突来源。降低它的权重或者移除它。

权重扫描流程

系统化的权重调节胜过靠猜。我用的流程:

  1. 固定种子。 挑一个曾产出可接受输出的种子,在整个扫描过程中锁定它。这能把 LoRA 效果从种子波动里隔离出来。

  2. 建立基线。 用所有 LoRA 都按“合理起始权重”(上面的配方)生成一次。把它存为基线。

  3. 一次扫描一个 LoRA。 在一个区间内(通常是 0.3、0.5、0.7、0.9)改变某一个 LoRA 的 strength_model。保持其余所有 LoRA 在基线权重。在每个设置下生成一次。

  4. 为那个 LoRA 选出最佳设置。 看这四张输出。挑出在不破坏整体输出的前提下、这个 LoRA 贡献最强的那一张。锁定那个权重。

  5. 进行下一个 LoRA。 用堆栈里的下一个 LoRA 重复扫描,把之前调好的 LoRA 锁在它的最佳权重上。

  6. 必要时反复迭代。 有时调到第 3 个 LoRA 时会发现第 1 个 LoRA 的设置需要调整。不要害怕回头重来。

这个流程对一个四 LoRA 的堆栈大约要花 20 到 40 次生成,但结果是一个能稳定产出你想要的东西的调好的堆栈。相比“把所有 LoRA 都按 1.0 丢进去”这种有 60% 概率产出杂乱输出的做法,这点时间投入很快就能回本。

要在 ComfyUI 里把这个自动化,XY Plot 扩展能让你在一次参数扫描中自动批量生成。把扫描的两个轴设为两个 LoRA 的强度,一次批处理就生成完整的网格。比手动扫描快得多。

关于在复杂堆栈中平衡权重的更多内容,我的 Pony Realism vs RealVisXL 对比文章讨论了 LoRA 兼容性在两个生态之间的差异,这会影响哪些堆栈是根本可行的。如果你在 8 GB 显存上跑堆栈,低显存设置指南讲了你在撞上显存溢出之前实际能加载多少个 LoRA。

保存堆栈预设

一旦你有了一个调好的堆栈,就把它存为预设。ComfyUI 有多种方式来做这件事:

创作者计划

创作内容每月赚取$1,250+

加入我们的独家创作者联盟计划。根据病毒视频表现获得报酬。以完全的创作自由按您的风格创作内容。

$100
300K+ views
$300
1M+ views
$500
5M+ views
每周支付
无前期费用
完全创作自由

把整个工作流存为 JSON。 在画布上右键,保存工作流。这会连同其余一切(采样器、提示词、ControlNet 等)一起保留 LoRA 堆栈。需要这个堆栈时作为模板重新加载即可。

只把堆栈存为节点模板。 选中 LoRA Stacker 节点,右键,存为模板。这只保存堆栈配置,你可以把它丢进任何工作流。

使用 ComfyUI Manager 的工作流库。 把调好的工作流存在那里,方便跨项目复用。

做正式工作时,我维护大约 8 到 10 个命名的堆栈预设,覆盖常见用途:

  • 写实人像
  • 写实全身
  • 电影感生活方式
  • 编辑风时尚
  • 动漫人像
  • 动漫全身
  • 多角色场景
  • 主图(最大细节)

每个预设都有自己调好的堆栈,我根据要做的东西在它们之间切换。这比为每个项目重新调节快得多。

三个可复用的 NSFW 堆栈

三个完整的堆栈预设,覆盖常见的正式场景。可以直接用,也可以作为你自己调节的起点。

堆栈 1:写实生活方式人像(RealVisXL 基础)

1. realvis_nsfw_v3: model 0.7, clip 0.55
2. <character>: model 0.85, clip 0.7
3. cinematic_lighting: model 0.5, clip 0.5
4. detailed_skin: model 0.45, clip 0.4

最适合单一主体的人像或上半身、可控光照、写实美学。不适合以露骨解剖为重点的工作(解锁 LoRA 是适中的,不是强势的)。

堆栈 2:露骨全身(Pony Realism 基础)

1. <character>: model 0.85, clip 0.7
2. photoreal_skin_pony: model 0.65, clip 0.5
3. anatomy_v2: model 0.55, clip 0.4
4. (optional) pose_detail: model 0.4, clip 0.35

最适合以解剖为重点的露骨内容、全身覆盖、写实风格。Pony Realism 不需要解锁 LoRA。不适合以人像为重点的工作(解剖 LoRA 对只截脸的画面而言过度强调了)。

堆栈 3:动漫 NSFW(NoobAI XL 或 Illustrious 基础)

1. anime_nsfw_unlock: model 0.7, clip 0.55
2. <character>: model 0.85, clip 0.7
3. anime_style: model 0.5, clip 0.45
4. detailed_eyes: model 0.4, clip 0.35

最适合带角色一致性的动漫风格 NSFW。风格 LoRA 是输出的个性所在,所以要根据你的美学目标来选(更偏绘画感、更偏赛璐珞描边等)。不适合写实工作。

这三个都是起点。跑权重扫描,根据你具体的 LoRA 来精调。把每个都存为预设,意味着你可以按项目迭代而无需重新调节基础。

要做完全无需管理的 LoRA 工作流,lewdly.ai 会把提示词通过服务端预调好的堆栈来路由。用户描述自己想要什么,平台就以合适的权重应用合适的 LoRA。如果管理 LoRA 堆栈不是你想花时间去做的事,这就是合适的抽象层级。坦白说,我也参与构建了它。

常见问题

在 SDXL 上我一次最多能叠加多少个 LoRA? 实际上在适中权重下是 4 到 5 个 LoRA。超过 5 个,冲突和质量退化会变得很严重。有些工作流技术上支持 8 个以上的 LoRA,但其输出很少能比得上一个更小、调得好的堆栈所能得到的效果。

LoRA Stacker 和串联的 LoRA Loader 有什么区别? 功能相似但视觉上不同。LoRA Stacker 把多个 LoRA 打包进一个节点以获得更干净的图。串联的 LoRA Loader 是每个 LoRA 一个显式节点。两者产出等价的输出。Stacker 更适合 3 个以上的 LoRA,单独的 Loader 用于 1 到 2 个就够了。

为什么我用了多个 LoRA 后输出看起来很乱? 最常见的原因是两个 LoRA 在高权重下做相似的事。一次禁用一个 LoRA 来找出冲突。降低或移除那个破坏输出的 LoRA。总合并模型权重超过 3.0 也是一个常见原因。

strength_clip 是否应该总是等于 strength_model? 通常不是。把 strength_clip 略微降低(0.6 到 0.7,相对于 0.8 的模型权重)有助于防止提示词被打乱。对解剖 LoRA 尤其如此,低得多的 CLIP 权重(0.3 到 0.4)能防止过度强调。对角色 LoRA,较低的 CLIP 权重能防止过度固着于角色名触发词。

我能在同一个堆栈里混用 Pony LoRA 和 SDXL LoRA 吗? 技术上可以,实际上不行。它们的潜空间不同,而且这些 LoRA 训练在不同的底层模型上。你可以在一个已经共享同一潜空间的 Pony 系基础模型上以降低的权重使用 Pony LoRA。跨生态混用通常会产生瑕疵。

那 LoRA 合并而不是叠加呢? LoRA 合并是把多个 LoRA 合并进单个 LoRA 文件。这产生的效果与运行时叠加等价,但在采样过程中显存占用更低。对稳定的正式堆栈值得一做。合并工具(在 ComfyUI Manager 里或通过 kohya 脚本)能处理这件事。一旦合并,组合后的 LoRA 作为单个 LoRA 用一个权重加载。

我怎么知道一个 LoRA 是否在和另一个冲突? 单独用每个 LoRA 生成一次,再和堆栈输出对比。如果堆栈输出里缺了某个 LoRA 可见的特征,那个 LoRA 就是被堆栈里的别的东西压制了。如果堆栈输出里有任何单个 LoRA 都没有的奇怪瑕疵,那就是两个 LoRA 在互相放大。

LoRA 在堆栈里的顺序重要吗? 在大多数 stacker 实现里,不重要。LoRA 是作为它们权重修改的总和来组合的,顺序不会改变结果。某些旧式串联 loader 实现有轻微的顺序效应,但可以忽略不计。

我能在不把 LoRA 从工作流里移除的情况下禁用它吗? 可以。把它的 strength_model 设为 0,strength_clip 设为 0。这个 LoRA 被加载了但什么也不贡献。这对 A/B 测试很有用。只要记得想让它重新参与时把权重调回去。

我能设置的最大强度是多少? 大多数 LoRA Loader 接受 0 到 2.0 甚至更高的值。超过 1.0 会把 LoRA 过度强调到它训练范围之外,通常会产生瑕疵。正式工作请待在 0.3 到 1.0 的区间内。1.0 以上的区间只用于实验。

正确的思维模型

LoRA 叠加是作曲,不是相加。把每个 LoRA 想象成合奏团里的一件乐器。一把独奏小提琴本身就很有趣。三把小提琴演奏同一条旋律线只是更响,并不更好。一把小提琴、一把中提琴和一把大提琴演奏互补的声部,那才是音乐。同样的原理适用于 LoRA 堆栈。承担不同角色的多样 LoRA 是音乐。高权重下冗余的 LoRA 是噪音。

在正式 NSFW 工作流里叠了两年 LoRA 后最大的一课。有纪律的权重调节胜过昂贵的硬件。一个在适中基础模型上调好的三 LoRA 堆栈,产出的效果好过在最好硬件上随便堆的六 LoRA 堆栈。决定上限的是投入到调节里的功夫,而不是 LoRA 的数量或者设备。

对那些想要干净输出又不愿自己去管理调节的人来说,那正是 lewdly.ai 的服务端 LoRA 路由所处理的事。平台根据提示词分析来挑选堆栈和权重,用户完全不必去想这些。对大多数用户来说那是合适的抽象层级。对想要完全掌控的技术型用户来说,这里描述的手动 ComfyUI 工作流才是路子。

参考资源包括 Efficiency Nodes ComfyUI GitHub(提供 LoRA Stacker 节点)、multi-lora-stack 仓库(一个替代实现),以及 Civitai LoRA 文档(里面有社区编写的、关于哪些具体 LoRA 组合效果好的指南)。

准备好创建你的AI网红了吗?

加入115名学生,在我们完整的51节课程中掌握ComfyUI和AI网红营销。

早鸟价结束倒计时:
--
:
--
小时
:
--
分钟
:
--
立即占位 - $199
节省$200 - 价格永久涨至$399