SD1.5 的 LoRA / ControlNet 能在 SDXL 上使用吗?
从结论来说,不能使用。
这不限于 SD1.5 和 SDXL,可以认为 模型间几乎没有兼容性。
打个比方就像插座一样。
- SD1.5 是日本的插座(A型)
- SDXL 是美国的插座(B型)
那个国家的家电 (LoRA / ControlNet),只能在那个国家使用。 即使功能相似,因为连接部分的形状不同,物理上无法安装。
为什么没有兼容性
粗略总结一下技术上的理由如下。
-
前提模型不同
- SD1.5 和 SDXL 因 UNet 的结构・通道数・latent 分辨率等不同, “在哪个层增加什么样的差分”这一 LoRA / ControlNet 的前提不一致。
-
文本编码器也不同
- SD1.5 使用 CLIP,SDXL 使用别种构成的文本编码器, “这个单词这样动”这种学习结果,也无法原样通用于别的模型。
适配器是该模型专用的,这种认识没问题。
- SD1.5 用 LoRA / ControlNet → SD1.5 系模型专用
- SDXL 用 LoRA / ControlNet → SDXL 系模型专用
- Flux 用 LoRA / ControlNet → Flux 系模型专用
实际上会出错误吗?

如果试着将 SDXL 用的 ControlNet 模型连接到 SD1.5 的 ControlNet 工作流中,会显示如上图所示的错误:
y is None, did you try using a controlnet for SDXL on SD1?
像这样,系统侧也会检测到没有兼容性,并返回错误。