先给结论:从 U-Net 到 DiT 不是「换个更快的网络」,而是把图像切成 token、让文本与图像在同一组 transformer 块里联合处理;配合 flow matching / rectified flow 的训练目标,去噪轨迹更直,少步采样才变得可行。但「步数少」不等于「总耗时少」,也不能把画质差异单独归因给架构。
理解了这一层,你就不会再拿 SD 1.5 时代的参数直觉去套 FLUX、SD3、Z-Image 或 Qwen-Image。
事实口径:本文核对时间为 2026 年 11 月 10 日。架构与训练目标部分依据公开论文(潜在扩散模型、DiT、Flow Matching、SD3 的 Scaling Rectified Flow Transformers)与各项目官方仓库说明;具体步数、参数量与显存请以你所用版本的官方模型卡为准。
U-Net 时代:图像是特征图,文本在交叉注意力里注入
SD 1.x / 2.x / SDXL 的路线是:VAE 把图压进潜空间,U-Net 在多尺度特征图上做去噪,文本条件通过交叉注意力注入。文本信息先被编码成一个条件向量,再在若干层里与图像特征交互。
这条路线很成熟,生态也最完整:LoRA、ControlNet、各种采样器与调度器几乎都是围绕 U-Net 的结构设计的。它的局限同样来自结构 —— 语言信息进入得相对靠后,想在生成图里写对一串文字一直吃力。
DiT 时代:图像 patch 也是 token
Diffusion Transformer 把潜空间图切成 patch,当作一串 token,与文本 token 一起送进 transformer 块。SD3 的 MMDiT 让两种模态各保留一套权重,但通过联合注意力双向交换信息;Z-Image 的 S3-DiT 则更激进,把文本、视觉语义与图像 VAE token 在序列层面拼成一条统一输入流。
| 维度 | U-Net 路线 | DiT 路线 |
|---|---|---|
| 图像表示 | 多尺度特征图 | patch / token 序列 |
| 文本交互 | 交叉注意力,条件向量注入 | 与图像 token 联合注意力或单流拼接 |
| 文本编码器 | CLIP(SDXL 用双 CLIP) | 常见 T5 / 语言模型 / 视觉语言模型 |
| 训练目标 | DDPM 式逐步反转加噪 | flow matching / rectified flow 为主 |
| 代表型号 | SD 1.5、SDXL | SD3 系列、FLUX、Z-Image、Qwen-Image |
「文本 token 贯穿整个去噪过程」是文字渲染改善最合理的结构解释:模型不再只在入口处拿到一份被压缩的语义,而是能在每一步继续对齐字符、版式与画面。关于编码器窗口本身,另见77 token 上限那篇。
rectified flow 为什么允许少步采样
flow matching 学的是从简单噪声分布到目标数据分布的向量场;rectified flow 进一步鼓励去噪路径尽量平直。轨迹越直,每一步推进得越多,理论上需要的步数就越少。
再加上蒸馏与关闭 CFG,就出现了几个可核对的极端例子:Z-Image-Turbo 官方写 8 NFEs 且 guidance 为 0;FLUX.2 [klein] 9B 官方写 step-distilled 到 4 步。相比之下,U-Net 时代的常规出图普遍在 20–30 步才收敛,这个范围在六个核心参数里也提过。
步数少,为什么不必然更快
三个常被忽略的成本:DiT 每一步的注意力计算更重;大语言模型类文本编码器本身要占显存和时间;CFG 大于 1 时每步要做两次前向。一步更贵、步数更少,乘积未必更小。
所以比较速度必须固定硬件、分辨率、实现版本与精度。只拿「8 步 vs 30 步」下结论,跟只拿模型文件大小估显存是同一类错误。相关的显存拆解写在量化与显存里。
不能把画质差异单归因给架构
两代模型之间,参数量、训练数据、文本编码器、训练目标、后训练与蒸馏策略全都变了。任何「DiT 一定比 U-Net 好看」的说法都无法用单变量实验支撑,厂商榜单也只反映特定评测集。可稳妥成立的判断只有结构性事实:token 化让语言与视觉在更深层次对齐、流匹配让轨迹更直、少步采样在工程上可行。
迁移时真正会踩到的三件事
- LoRA / ControlNet 不通用:挂接的层名、维度与注意力结构全变了,跨架构直接加载通常静默失效或报维度错误。
- 参数语义变了:Turbo 类模型要求关闭 CFG、步数极低,照抄旧工作流的 CFG 7 / 30 步反而会劣化画面。
- 提示词窗口变了:从 77 token 的 CLIP 换成 T5 或视觉语言模型后,长描述才真正被读到,写法也要跟着调整。
前两条在SD 3.5 与 SDXL 的差别里有按型号展开的版本。归根到底:换架构不是换文件,是一次小型迁移。
小结
U-Net → DiT 的本质是「图像变成 token,语言全程参与」;flow matching 的本质是「把去噪路径拉直」。这两点解释了文字渲染和少步采样,但不解释全部画质,也不保证更快。把结构性事实和可变的经验参数分开记,换模型时就不会把一整套旧直觉搬过去。
官方资料:Z-Image 官方仓库(S3-DiT 单流架构说明)、Qwen-Image-2.1 官方博客(Single-Stream DiT)、Stability AI SD 3.5 发布公告、ComfyUI 官方仓库。
评论 0