先给结论:Stable Diffusion 3.5 与 SDXL 的差别不止是「版本更新」,而是换掉了主干网络与训练目标 —— SDXL 是 U-Net + 双 CLIP 文本编码器,SD 3 系列改成 MMDiT(Diffusion Transformer)+ rectified flow,并引入 T5 文本编码器;授权上 SD 3.5 走 Stability AI Community License,年收入低于 100 万美元可免费商用,超过需企业授权。所以旧工作流里的参数经验、LoRA 与 ControlNet 都不能直接搬过去。
很多人把「SD 3.5 出了」理解成「把 checkpoint 换一下」,结果 LoRA 全失效、提示词写法也不灵。这篇把两代之间的结构性差异和官方许可边界分开说清。
事实口径:本文核对时间为 2026 年 11 月 10 日,许可条款取自 Stability AI 官方发布公告与官方 License 页面;架构部分依据 SD 3 论文与公开的推理实现。SD 3.5 于 2024 年发布(Medium 变体于同年 10 月 29 日追加)。具体参数量、步数与显存数字随实现和版本变化,落地前以你所用权重的官方模型卡为准。
官方发布的三个变体,定位并不相同
官方公告列出 Stable Diffusion 3.5 Large、Stable Diffusion 3.5 Large Turbo,以及 10 月 29 日追加的 Stable Diffusion 3.5 Medium。公告对三者的描述分别是:Large 在提示词遵循上领先、画质可对标更大的模型;Large Turbo 是蒸馏版,推理速度显著更快且画质与提示词遵循仍具竞争力;Medium 面向消费级硬件,在效率与质量之间取平衡。
注意「Turbo」的含义:它减少的是所需采样步数,不是把同一个模型压缩得更小。这和量化省的是每参数字节数、蒸馏省的是步数,是两件可以叠加也可以分开讨论的事。我们在采样器怎么选里说过,步数变化要连着调度一起看。
从 U-Net 到 MMDiT:文字渲染改善的结构原因
SD 1.x / 2.x / SDXL 的主干是 U-Net,文本条件主要通过交叉注意力在较晚阶段注入;SD 3 引入的 MMDiT 让图像 patch 与文本 token 一起通过 transformer 块,两种模态各保留一套权重,但通过联合注意力双向交换信息,文本表示会随去噪过程持续参与。
这解释了为什么「在生成图里写正确的字母」在 SD3 一代明显改善:语言信息不再只在入口被压成一个向量,而是贯穿整个去噪过程。同一时期 FLUX、Z-Image、Qwen-Image 也都走 DiT 路线,只是单流/双流取舍不同,对照可以看DiT 与 U-Net 那篇。
三个文本编码器,也带来新的显存结构
SD3 系列用 CLIP-L、CLIP-G 与 T5-XXL 三个文本编码器:两个 CLIP 提供全局语义与池化向量,T5 提供长文本的词元级表示。公开实现里三者的嵌入会拼接后送进 MMDiT。
论文与实现都支持在推理时移除 T5 来省显存:模型仍能工作,但复杂构图提示词与文字渲染会下降。这给低显存用户提供了一条比换卡更实际的路径,代价是长提示词的理解能力。这跟只靠调 CFG 救不回问题的情况不同 —— 这里是明确的容量取舍,不是参数没调好。
rectified flow 改变的是「怎么从噪声走到图像」
传统 DDPM 框架学习逐步反转加噪过程;flow matching / rectified flow 学习一条从噪声分布到数据分布的向量场,并鼓励去噪轨迹尽量平直。轨迹更直,意味着每一步能推进更多,少步采样才有可行性。
但要避免一个常见误推:步数少不等于总耗时一定更低。DiT 每一步的计算量、文本编码器开销、以及是否用了 CFG(每步可能要两次前向)都要计入。判断快慢必须固定硬件、分辨率与实现,只比「步数」没有意义。
Community License 的边界在哪里
官方公告与 License 页面把条款写得很具体:
| 情形 | 官方口径 |
|---|---|
| 非商业用途、科研 | 免费 |
| 商业用途,年营收低于 100 万美元 | 免费,无需付费授权 |
| 年营收超过 100 万美元 | 需联系官方购买 Enterprise License |
| 生成物归属 | 用户保留生成媒体的所有权,不受额外授权限制 |
| 做 LoRA / 微调并出售 | 官方 FAQ 明确:低于 100 万美元营收时无需付费,衍生作品同样免费 |
两个容易读错的地方:第一,门槛看的是「你或你的组织全年总营收」,不是这个模型赚了多少;第二,纯研究用途在官方 FAQ 里不受营收门槛限制,但若研究成果最终进入商用产品/服务,规则会变。「输出归你」也不等于「权重授权无条件」,这两层要分开看。
为什么旧 LoRA 和 ControlNet 不能直接搬过来
LoRA 是挂在特定注意力层维度上的低秩适配器。主干从 U-Net 换成 transformer 块、文本条件结构也变了,层名与维度对不上,加载器通常静默跳过或报维度错误。所以在 SDXL 上训的 LoRA 不能直接用在 SD 3.5 上,反过来也一样;同理,针对 U-Net 结构写的 ControlNet 也需要对应版本。这部分排查顺序写在模型文件类型与排障里。
换底座前该做的四件事
- 确认权重仓库的 LICENSE 与你的营收档位,别只看论坛里的「免费商用」结论。
- 把常用 LoRA、ControlNet、VAE 按底座分组归档,标清适用架构。
- 固定种子和分辨率,用同一批提示词跑一次 A/B,别拿旧参数经验直接套新模型。
- 低显存时优先评估移除 T5 或换精度,而不是先降画质相关参数。
小结
SD 3.5 相对 SDXL 是架构级更换:主干、训练目标、文本编码器全变了。把它当「新 checkpoint」迁徙,最容易在 LoRA 失效和显存暴涨上翻车;把它当「新架构 + 新许可」重新过一遍清单,反而省时间。
评论 0