1. 先分三类:diffusion、flow 与自回归不是同义词

扩散模型定义从数据到噪声的随机过程,并学习反向去噪;flow matching 学习把噪声连续运输到数据的速度场,推理时求解 ODE。两者在工程上都表现为“从随机 latent 出发,反复调用同一个大网络”,因此常共用 DiT runtime、采样器和缓存技术。但训练目标、时间参数化和 sampler 不能互换。

自回归图像模型则把图像压成离散 token,按序预测;混合模型可能先 AR 生成语义 token,再用 DiT 恢复高分辨率 latent。2026 的模型不能只按产品名判断:FLUX.2 明确使用 flow matching,GLM-Image 是 9B AR + 7B DiT,HunyuanImage 3.0 官方明确称 unified autoregressive。

Diffusion / flow

固定 latent 画布,按 timestep 反复全局更新;主要串行轴是采样步。

Autoregressive

按 token 顺序增长;主要串行轴是 token,适合标准 KV cache。

2. 前置:模型通常不在像素空间直接去噪

Latent Diffusion Model(LDM)先训练 VAE:encoder 把图像或视频压到低分辨率 latent,decoder 把最终 latent 还原成像素。生成时通常只运行 VAE decoder,不必先有真实图像。压缩把 1024×1024×3 像素变为更小的 C×H_lat×W_lat 张量,使 transformer 可以处理。

视频 VAE 还沿时间维压缩。例如时空压缩率可以写成 (r_t, r_h, r_w);一段 T×H×W 视频变成约 T/r_t × H/r_h × W/r_w latent。压缩越强,DiT token 越少,但 VAE 重建细节和运动连续性越难。

3. 训练目标:epsilon、v 与 flow velocity 分别是什么

经典扩散在时间 t 把干净 latent x0 与噪声 epsilon 混合得到 xt,网络可预测噪声、干净样本或 v-parameterization。Flow Matching 常定义从噪声 x_noise 到数据 x_data 的路径,让网络预测瞬时速度。

扩散示意:x_t = alpha_t * x_0 + sigma_t * epsilon loss_eps = ||epsilon_theta(x_t, t, c) - epsilon||^2 线性 flow path:x_t = (1-t) * x_noise + t * x_data loss_flow = ||v_theta(x_t, t, c) - (x_data - x_noise)||^2

采样器依据模型预测把 xt 更新为下一个时间点。Euler、Heun、DPM-Solver 等方法用不同阶数与步长逼近轨迹;蒸馏模型则让少量步骤模仿长轨迹。“4-step 模型”通常经过专门蒸馏或 consistency 训练,不能靠把普通 base checkpoint 的 steps 参数直接改成 4 得到。

DDPM 论文中前向扩散和反向生成的原始图
原始/官方结构图:Ho et al., Denoising Diffusion Probabilistic Models, Figure 2。q 是把 x0 推向噪声的前向链,p_theta 是从 xT 回到 x0 的反向生成链;现代 flow/DiT 改的是参数化和 backbone,不应把两条箭头混为一条。

4. 从 U-Net 到 DiT、MMDiT:主计算为什么变成 Transformer

早期 Stable Diffusion 主干是多尺度 U-Net,通过卷积、ResNet block 和 cross-attention 注入文本。DiT 把 latent patchify 成 token,加入 timestep 与条件,用 transformer block 处理。计算随 token 数和 hidden size 规律扩展,也更容易复用大模型的 FlashAttention、tensor parallel 与 fused MLP。

SD3 的 MMDiT 把文本与图像 latent 视为两种 token stream,使用各自参数投影但在 attention 中交换信息。后续 single-stream 或 dual-stream 设计在“条件是否与 latent 共用 block”“哪些层融合”“是否有多个文本 encoder”上不同。服务框架不能假设所有 DiT 都只有一个 hidden_states 输入。

DiT 论文的 latent patchify、条件输入和 DiT block 架构图
原始/官方结构图:Peebles and Xie, Scalable Diffusion Models with Transformers, Figure 3。latent patchify、timestep/label conditioning 与重复 DiT block 构成一次 denoiser 前向;每个 sampling step 都会重新走这条主干。
Stable Diffusion 3 论文的 MMDiT 双流架构图
原始/官方结构图:Stable Diffusion 3, Figure 2。文本与 image-latent 是分流输入、在 joint attention 中交换信息;它是具体 SD3 架构,不能外推为所有 DiT 都有双流。
image tokens ~= (H_lat / patch_h) * (W_lat / patch_w) video tokens ~= T_lat * (H_lat / patch_h) * (W_lat / patch_w) self-attention score elements ~= tokens^2 * heads

5. 图像请求数据流:一次 prompt 实际跑了六段程序

  1. API 解析分辨率、seed、guidance、steps、参考图与编辑 mask,并做 admission control。
  2. 文本 tokenizer 与一个或多个 text encoder 产生条件 embedding;相同 prompt 可缓存。
  3. 创建随机 latent;img2img/edit 还要 VAE encode 输入图并按噪声强度加噪。
  4. scheduler 产生 timestep;每步调用 DiT,并可执行 classifier-free guidance。
  5. VAE decoder 把最终 latent 放大到像素,通常有较高瞬时显存。
  6. safety、watermark、色彩转换和 PNG/JPEG 编码在 GPU 或 CPU 完成。

Classifier-free guidance(CFG)需要条件与无条件预测。朴素实现每个 step 调两次 DiT;批量实现把两份 latent 拼成 batch,一次前向但激活近似翻倍;一些蒸馏模型内化 guidance,从而减少调用。报告 latency 时必须写明 CFG 模式与 guidance scale。

6. 视频请求数据流:多了时间,但不是简单乘帧数

视频 latent 常为 [B,C,T,H,W],patchify 后成为时空 token。模型可以做全时空 attention、空间/时间分解 attention、窗口 attention,或以 chunk 自回归地延长视频。首尾帧、参考图、音频条件和 camera control 会新增条件 stream。

时间压缩使 latent 帧数并非输出帧数;窗口 attention 又让复杂度低于全局平方,但会影响长距离一致性。视频 VAE decode 和 MP4 encode 也可能成为尾部瓶颈。端到端 SLO 必须分别测 text encode、DiT steps、VAE、音频与 codec,不能只测 denoiser。

Wan 论文的视频 latent、Video DiT、cross-attention 与 decoder 架构图
原始/官方结构图:Wan, Figure 9。Wan-Encoder、Video DiT、cross-attention 与 Wan-Decoder 把五维视频 latent 的路径完整展开;它是视频例子,而非通用图像 DiT。

7. 底层算子:一张图从 GEMM 走到 codec

DiT 主干包含 QKV projection、attention、output projection、MLP、norm、RoPE/位置编码和 timestep modulation;MoE DiT 还包含 router、expert permutation、grouped GEMM 与 all-to-all。VAE 以卷积、上采样、残差块和可能的 attention 为主。视频编解码通常调用专用 CPU/GPU codec 库。

2026 runtime 的优化包括 fused QKV、fused RMSNorm/RoPE、fused FFN、FlashAttention、FP8/BF16 GEMM、CUDA Graph 与异步 codec。优化顺序要依据 profiler:小步数模型可能由 text encoder/VAE 占比主导;长视频模型通常由 DiT attention/MLP 与跨卡通信主导。

与 LLM 的区别:LLM decode 每步通常只增加一个 query,容易变成权重带宽受限;DiT 每一步都处理整张 latent 画布,GEMM 更大、算力利用率更高,但要重复很多 steps。减少一步往往比把单个小 kernel 加速 10% 更有价值。

8. 显存账本:权重、activation、attention、latent、VAE 五项

静态权重只是第一项。每个 DiT step 需要保存当前 latent、token hidden states、QKV、MLP 中间量和 attention workspace;推理不保留反向图,但大视频的单层 activation 仍很大。CFG batch、多个参考图 embedding、VAE tiled decode workspace 与通信 buffer 会抬高峰值。

weight_bytes ~= parameter_count * bytes_per_weight hidden_bytes ~= B * N_tokens * d_model * bytes * live_tensor_multiplier attention_workspace depends on kernel and sequence partition video_latent_bytes ~= B * C * T_lat * H_lat * W_lat * bytes

模型“放得下”通常只说明权重可以装入显存,运行时仍需为峰值 activation 与 VAE 留余量。量化权重会缩小静态占用,却不会按同样比例缩小 BF16 activation。Quant VideoGen 指出视频 diffusion 的缓存本身可超过 30GB,并报告最高 7× cache reduction、额外延迟低于 4%;缓存因此需要单独量化和预算。

9. Attention 扩展:为什么长视频最先撞上平方墙

若视频 token 数翻倍,全局 self-attention score 理论上约四倍。降低分辨率、帧率、时空 patch、VAE 压缩和窗口大小都会改变 token 数。runtime 可用 sequence parallel 把 token 维切到多卡,但每层仍需交换 K/V 或 attention 输出。

Ulysses sequence parallel 以 all-to-all 重排 head 与 sequence,适合 head 数可整除的场景;Ring Attention 让 K/V 分块沿设备环传递,支持更长序列但通信轮次多;context parallel 可组合两者。选择要看 NVLink/NVSwitch/IB 拓扑、token 数、head 数和单卡 activation,而不是只看 GPU 数。

10. 采样与蒸馏:steps 是最直接的成本旋钮

base flow/diffusion checkpoint 往往需要几十步;distilled 变体可降到 4、8 或 12 步。步数从 50 降到 8 理论上减少 84% denoiser 调用,但端到端不会等比例下降,因为 text encoder、VAE、调度和 codec 是固定成本。少步模型还可能牺牲细节、prompt adherence、编辑稳定性或多样性。

FLUX.2 官方仓库区分 4-step distilled 与约 50-step Base;HunyuanVideo 1.5 提供 8/12-step distilled 路径。部署时应把 checkpoint、sampler、steps 和 guidance 视为一个不可拆配置,禁止在 API 层任意组合未经验证的参数。

11. 缓存:DiT 没有标准 AR KV,但有跨步冗余

同一请求的 prompt embedding 在所有 timestep 不变,可以完全缓存;参考图 encoder embedding 也常可缓存。DiT 中相邻 timestep 的 hidden states 高度相似,Cache-DiT、TeaCache 等方法跳过或近似更新部分 block。它们复用的是跨步 feature,不是“生成前缀 KV”。

缓存策略需决定:哪些层缓存、每隔几步强制刷新、用什么变化指标触发失效,以及 CFG 两支是否共享。Chorus 进一步做跨请求缓存,在工业 4-step 模型上报告最高 45% 改善;跨请求命中要求相同或相似条件、可复用结构和严格隔离,不能把一个用户的 latent 直接暴露给另一个用户。

本请求缓存:text embedding + reference embedding + step features 跨请求缓存:model/version + resolution + condition fingerprint + cache policy 失效:checkpoint / LoRA / prompt / seed / schedule / shape / control 改变

12. 多卡放置:参数放几张卡取决于峰值,不只取决于参数量

以 BF16 粗算,32B 权重约 64GB,单张 80GB 卡虽然可能容纳权重,却未必留得下大分辨率 activation 与 VAE;生产通常用 2-4 卡 TP/SP 或权重量化。MoE 模型按总参数算存储、按 active 参数算每 token 计算;expert parallel 让不同 GPU 持有不同 experts,但每层要 all-to-all 路由 token。

数据中心可把 text encoder、DiT 和 VAE 共卡,也可拆成独立 stage。共卡减少中间 latent 传输,适合模型能共同驻留且请求短;拆分允许 DiT 池按 steps 扩缩、VAE 池吸收 burst,但要传大 latent。拓扑感知调度应优先把高频 TP/SP 通信留在 NVLink/NVSwitch 域,把 stage 间一次性传输放到跨节点。

13. 调度:请求成本由像素、帧数、steps 与模型版本共同决定

文本 LLM 常用 input/output token 估价;diffusion 请求应使用 latent token-steps:B × N_latent_tokens × steps,再加 CFG 倍率、参考图 encoder 和 VAE 成本。视频还需要 T_lat、fps、codec 与音频。只按“一个请求”排队会让 512px 4-step 图和 1080p 长视频互相阻塞。

有效调度会按 model、resolution、frame bucket、steps、CFG 和 adapter 分组,让 batch 中张量形状一致;短作业与长作业分队列;admission 预留 VAE 峰值;取消只在 timestep 边界安全回收。长视频可按 chunk 做 checkpoint,使节点故障不必从纯噪声重跑。

estimated_cost = latent_tokens * denoising_steps * cfg_factor + text_encoder_cost + reference_encoder_cost + vae_pixels_or_frames + codec_cost

14. 图像实例:FLUX.2、GLM-Image 与 HunyuanImage 3.0

FLUX.2 官方仓库把 dev 描述为 32B flow-matching 模型;Klein 有 4B/9B 规格,提供 4-step distilled 与约 50-step Base 路径,并支持生成、单参考与多参考编辑。4B 量化路径约 8GB,说明低显存部署可行,但分辨率和 VAE 峰值仍需实测。

GLM-Image 是混合架构:9B 自回归模块先生成约 256 个紧凑语义 token,再展开为 1K-4K 视觉 token,由 7B single-stream DiT 生成 1K-2K 图像;Glyph Encoder 专门支持文字渲染。其参考配置约 50 个 diffusion steps,并提供 SGLang 接入。这里 AR 决定高层语义,DiT 承担像素细化。

HunyuanImage 3.0 则是 80B 总参数、13B active、64 experts 的 unified autoregressive 图像模型。2026 Instruct/Distil 版本中,Distil 为 8 steps 的 AR 解码优化语境;官方基线至少 3×80GB,Instruct/Distil 至少 8×80GB,并报告 FlashInfer 可最高 3×。它的存在说明图像生成 runtime 已不再等同于 diffusion runtime。

15. 视频实例:LTX-2、Helios 与 HunyuanVideo 1.5

LTX-2 将约 14B 视频模块与 5B 音频模块组合,共享 48 个 transformer blocks;官方 core 文档描述视频 VAE 约 32×空间、8×时间压缩,音频 VAE 约 4×时间压缩,并通过双向音视频 cross-attention 对齐。部署时既要切分视频 token,也要处理音频 stream 与跨模态通信。

Helios 是 14B autoregressive diffusion 视频模型:以过去生成片段为条件继续扩展,同时每个 chunk 内去噪。论文报告 H100 约 19.5 FPS、Ascend 约 10 FPS,并面向分钟级视频;官方仓库后续还加入 group offload 与 context parallel。论文数字和仓库后续优化需分别标注,不能混成同一次实验。

HunyuanVideo 1.5 为 8.3B,官方仓库提供 8/12-step distilled 推理,并报告 RTX 4090 约 75 秒、相对原路径降低约 75%。它源自 2025 发布,但在 2026 runtime 仍是可部署基线;本文不会把发布日期改写为 2026。

16. 2026 模型状态表:只写来源能确认的事实

模型架构/规模2026 可确认状态
FLUX.2flow;dev 32B,Klein 4B/9B官方仓库提供生成/编辑、4-step distilled 与 Base 路径。
GLM-Image9B AR + 7B single-stream DiT约 256 语义 token 到 1K-4K 视觉 token;SGLang 路径公开。
HunyuanImage 3.0统一 AR MoE;80B total / 13B active2026 Instruct/Distil;不是纯 diffusion。
LTX-214B video + 5B audio;共享 48 blocks开放架构与 runtime;联合音视频生成。
Helios14B autoregressive diffusion video论文 19.5 FPS H100、约 10 FPS Ascend,支持分钟级。
Veo 3.1 Lite闭源视频模型,内部细节未完整公开模型卡 2026-04-08;T2V 对 Veo 3.1 Fast 的总体偏好胜率 54.6%。
LLaDA-o离散文本 + 连续视觉 Mixture of Diffusion2026 统一理解/生成;论文报告 DPG 87.04。

Veo 3.1 Lite 模型卡还报告 I2V 在 646 prompts 上对比较系统的总体结果 47.2;没有公开足够的 transformer、VAE 或并行结构,因此本文只用其作为 2026 闭源产品状态,不反推内部实现。

17. 2026 Runtime:SGLang-Diffusion、vLLM-Omni 与专用加速

SGLang-Diffusion 的 2026 官方文章报告相对初始版本最高 2.5×、相对所比较方案最高 5×;Cache-DiT 集成最高再带来 169% 改善。系统覆盖 layerwise offload、TP、SP、Ulysses/Ring 以及 fused QKV、RMSNorm、RoPE、FFN。

vLLM-Omni 把 DiT 当作 stage graph 节点,与 LLM、Talker、VAE/vocoder 分别执行和批处理,适合 any-to-any 与混合 pipeline。Sol Video 联合 cache、sparse attention、token pruning、quantization 与 kernel fusion,在 64B Cosmos3-Super、22B LTX2.3 和 2B SANA video 上报告超过 2×。

runtime 的选择不应只按模型是否“支持”。还要验证 LoRA/control 模块、图像编辑、多参考图、动态分辨率、CFG、VAE tiling、视频 codec、分布式拓扑和取消语义。功能缺失会迫使请求回退到低效 eager path。

18. 数据中心层:模型副本、缓存和网络怎样组织

小型 4B 图像模型可每卡一个副本,靠 data parallel 扩吞吐;32B 或长视频模型常以 2-8 卡构成一个 replica,再复制多个 replica。调度器要先在 replica 内满足 TP/SP 拓扑,再在 replica 间负载均衡。模型冷启动应预取权重并预热 kernel/CUDA Graph,避免首个用户承担编译。

缓存分三层:节点本地保存 text/reference embedding 与模型权重;replica 内 GPU 保存 step feature;集群级 object cache 保存编码后的参考媒体、最终 latent 或结果文件。与 LLM KV cache 不同,DiT feature cache 绑定 timestep、shape、sampler、checkpoint、LoRA 与条件,键空间更复杂,跨请求复用更谨慎。

网络预算要区分每层 collective 与 stage transfer:TP/SP 在每个 transformer layer 通信,必须使用高速域;DiT→VAE 只传一次 final latent,可跨较慢网络。把 8 张卡随意分布在两个普通网络节点,即使总显存足够,也可能因每层 all-to-all 让延迟失控。

19. 部署蓝图:从单卡到多机的决策顺序

  1. 先确定 checkpoint、精度、分辨率/帧数、steps、CFG 与质量目标,测单请求峰值。
  2. 若权重加 activation 能放单卡,优先单卡副本;否则先 TP,再针对长 token 引入 SP/context parallel。
  3. 用真实 workload 确定 shape buckets 和 batch;不要用全 512px 图片替代 1080p 视频容量规划。
  4. 观察 VAE/codec 占比,只有其形成独立瓶颈时才 disaggregate,并测 latent 传输。
  5. 最后再加入 step cache、量化、offload 和跨请求 cache,每项都重跑质量基准。

CPU offload 降显存但会在每层或每阶段走 PCIe,适合低并发离线任务,不应默认当作低延迟方案。Layerwise offload 比一次性模型换入更细粒度,仍需权重预取与双缓冲才能隐藏传输。

20. 质量与性能:同一张图至少记录这些变量

图像侧记录 prompt adherence、文本渲染、人物/物体一致性、美学和参考图保持;视频侧再加运动幅度、时间一致性、物理合理性、镜头控制与音画同步。性能记录 queue、text encode、每 step、VAE、codec、端到端 P50/P95/P99、峰值显存、GPU-hours/output。

任何对比都固定 prompt、seed 集、分辨率、帧率、时长、steps、sampler、guidance、精度和 safety。使用 cache、sparse attention、token pruning 或 INT2/INT4 后必须做盲评与自动指标。Jensen bias correction 报告 INT2 可接近 BF16,甚至在某些设置优于 INT4且约半内存;这是论文设定,不是任意 DiT 的无损保证。

21. 常见失败模式:看起来是模型问题,实际可能是 Runtime

形状混批会引入大量 padding;错误 VAE tiling 会出现接缝;cache 刷新过少导致细节漂移;量化 router 或 norm 可能放大颜色和运动误差;跨卡 seed/随机数不同会破坏复现;视频 codec 的色彩空间转换会让像素指标变化。OOM 也可能发生在最后 VAE decode,而不是 DiT 主循环。

闭源模型只应按模型卡公开能力评估,不能编造参数、VAE 或 GPU 数。开放仓库中的“最低显存”常依赖量化、offload、小分辨率或特定 steps,不能直接等同于推荐生产配置。

22. 最小复现:用一组实验找到真实瓶颈

  1. 选一个官方 checkpoint,先跑 BF16、batch 1、固定 seed;分别 profile text encoder、每个 DiT block、VAE 与 codec。
  2. 扫描 512/1024 图像或短/中视频,记录 latent token 数、attention workspace 和峰值显存。
  3. 扫描 4/8/12/25/50 steps,只在 checkpoint 支持的范围内比较,画质量-延迟曲线。
  4. 加入 batch 与 shape bucket,观察吞吐和尾延迟;再测 TP/SP 的计算-通信重叠。
  5. 逐项开启 cache、quantization、offload、sparse attention,每次与 BF16 无缓存基线做相同 seed/盲评。

本地机制材料可继续阅读:现代 diffusion 最小背景Rectified Flow 与 Flow MatchingDiT 架构SD3 MMDiT推理系统优化

23. 一手来源

资料本文使用范围
Latent DiffusionDiTFlow MatchingStable Diffusion 3VAE latent、Transformer 主干、flow 目标与 MMDiT 基础。
FLUX.2 官方仓库GLM-Image 官方仓库HunyuanImage 3.0 官方仓库2026 图像模型架构、规模、步数和部署边界。
LTX-2 官方仓库架构文档HeliosHunyuanVideo 1.5视频/音频结构、压缩、速度与蒸馏推理。
Veo 3.1 Lite 模型卡2026 闭源模型评测与公开信息边界。
SGLang-Diffusion 官方文章vLLM-OmniCache-DiTruntime、分布式、kernel fusion 与 step cache。
Sol VideoChorusQuant VideoGenJensen bias correction2026 缓存、稀疏、量化与系统加速。