Skip to content

扩散模型:生成式多模态革命

生成式 AI 正经历从 U-Net 向 Transformer 的架构转移,同时工程化工具链(如 ComfyUI)使生成过程高度可控。


架构演进

代际代表模型骨干网络特点
第一代SD 1.5U-Net 860M开创性工作
第二代SDXLU-Net 2.6B更大规模
第三代SD3, FLUXDiTTransformer 架构

Diffusion Transformer (DiT)

DiT 将 Transformer 引入扩散过程,替代传统 U-Net。

核心架构

DiT Block 内部结构

AdaLN-Zero:条件信息通过自适应 LayerNorm 注入,初始化为零以保护预训练权重。

DiT 优势

特性U-NetDiT
缩放性有限遵循 Scaling Law
长距离依赖受限于感受野全局注意力
分辨率灵活性需要适配天然支持
训练稳定性一般更稳定

Stable Diffusion 3 (SD3)

SD3 是 DiT 架构的集大成者,核心创新是 MMDiT(Multimodal DiT)

MMDiT 架构

关键创新

创新点说明
独立权重图像/文本模态有各自的 Transformer 权重
Joint Attention周期性的跨模态注意力交互
Rectified Flow更直的去噪轨迹,减少推理步数
三重文本编码CLIP + OpenCLIP + T5

Rectified Flow

传统扩散:弯曲轨迹,需要多步
x_0 ~~~~> ~~~~> ~~~~> x_T

Rectified Flow:直线轨迹,步数更少
x_0 ---------> x_T

效果:相同质量下,推理步数可减少 50%。


ControlNet:精细控制

ControlNet 解决了扩散模型生成"不可控"的痛点。

零卷积机制

Zero Convolution 原理

python
class ZeroConv(nn.Module):
    def __init__(self, channels):
        super().__init__()
        self.conv = nn.Conv2d(channels, channels, 1)
        # 关键:初始化为零
        nn.init.zeros_(self.conv.weight)
        nn.init.zeros_(self.conv.bias)
    
    def forward(self, x):
        return self.conv(x)

设计哲学:"不伤害"

  • 训练初期 ZeroConv 输出为 0
  • 模型行为与原始 SD 完全一致
  • 随训练进行,控制信号平滑注入

支持的控制条件

条件类型输入应用场景
Canny Edge边缘图保持轮廓
Depth深度图保持空间结构
Pose骨架图人物姿态控制
Segmentation语义分割区域控制
Scribble涂鸦草图生成
Normal Map法线图表面细节

IP-Adapter:风格迁移

IP-Adapter 提出轻量级的图像提示(Image Prompt)适配方法。

解耦交叉注意力

实现细节

python
# IP-Adapter 注入
def forward(self, hidden_states, text_embeds, image_embeds):
    # 原始文本注意力
    text_attn = self.text_cross_attn(hidden_states, text_embeds)
    # 新增图像注意力
    image_attn = self.image_cross_attn(hidden_states, image_embeds)
    # 加权融合
    output = text_attn + self.scale * image_attn
    return output

特点

特性说明
参数量仅 22M(vs SD 860M)
兼容性可与 ControlNet 等组合
训练成本8×A100 约 1 天
推理成本几乎无额外开销

ComfyUI:节点式工作流

ComfyUI 将生成管线解构为有向无环图(DAG)

核心概念

数据类型

类型颜色说明
MODEL紫色扩散模型权重
CLIP黄色文本编码器
VAE红色变分自编码器
CONDITIONING橙色编码后的提示
LATENT粉色潜在空间数据
IMAGE绿色像素级图像

执行逻辑

  1. 用户点击 "Queue Prompt"
  2. 从输出节点反向遍历 DAG
  3. 计算依赖关系
  4. 仅执行发生变化的节点(Lazy Evaluation)

工作流示例

文生图 + 放大 + ControlNet


LoRA 微调

扩散模型 LoRA

训练配置

参数推荐值说明
Rank4-128低秩维度
Alpharank 或 rank×2缩放系数
Learning Rate1e-4 ~ 1e-5LoRA 学习率
训练图片10-50角色/风格 LoRA

常见 LoRA 类型

类型训练数据用途
角色 LoRA特定人物图片生成一致角色
风格 LoRA特定画风作品风格迁移
概念 LoRA特定概念图片学习新概念

推理优化

采样器选择

采样器速度质量推荐步数
Euler一般20-30
DPM++ 2M20-25
DPM++ 2M Karras很好20-30
DDIM一般30-50

CFG Scale 指南

CFG 值效果
1-3创意强,可能偏离提示
5-7平衡,推荐默认
10-15严格遵循提示
>15可能过饱和/失真

参考资源

资源说明
Scalable Diffusion Models (DiT)DiT 论文
Scaling Rectified Flow (SD3)SD3 技术报告
Adding Conditional Control (ControlNet)ControlNet
IP-Adapter图像提示适配
ComfyUI节点式 UI

基于 VitePress 构建