OminiControl

基本信息

属性
全称OminiControl: Minimal and Universal Control for Diffusion Transformer
作者Zhenxiong Tan, Songhua Liu, Xingyi Yang, Qiaochu Xue, Xinchao Wang
机构新加坡国立大学 (NUS)
年份2024 (arXiv 2411.15098)
类型DiT 架构的极简条件控制框架

核心创新

重新思考 Diffusion Transformer (DiT) 时代的条件控制:利用 DiT 已有的能力做控制,而非像 ControlNet 那样外挂一个庞大的控制分支

ControlNet 思路:锁定 UNet → 复制编码器 → 训练控制分支 → 加入主支
OminiControl 思路:条件图像 → 复用 DiT 自己的 VAE + Transformer → 仅 0.1% 额外参数

三大技术贡献

1. 极简架构(仅 0.1% 额外参数)

  • 条件图像通过 DiT 自己的 VAE encoder 编码
  • 条件 token 与噪声图像 token 在同一 Transformer 中处理
  • 不需要复制整个编码器分支(ControlNet 的做法)

2. 统一序列处理

序列 = [条件图像 token] + [噪声图像 token] + [文本 token]
       ←─── 同一个 Transformer 统一处理 ───→

这种设计使得条件信息可以自然地与生成内容交互。

3. 动态位置编码

  • 适配两类控制任务:
    • 空间对齐(如 Canny edge、深度图):条件和生成图像空间位置对应
    • 非对齐(如主体驱动):条件只是参考图,不需要空间对齐

与 ControlNet 的深度对比

维度ControlNetOminiControl
基座架构UNet (SD)DiT (FLUX 等)
额外参数~361M (复制编码器)~0.1% (复用已有)
控制信号注入Zero convolution → 逐层注入统一序列 → attention 自然交互
设计哲学锁定 + 复制 + 外挂融入已有架构,做最小的加法
控制类型空间条件为主(edge, depth, pose)空间 + 主体驱动(subject-driven)
生态成熟度🔥🔥🔥🔥🔥 社区海量预训练模型🔥 起步阶段
适用范围SD 生态(SD1.5, SDXL)DiT 生态(SD3, FLUX)

Subjects200K 数据集

  • 用 DiT 自身合成的身份一致性图像对
  • 每个主体(如特定人物、物品)有多张不同姿态/背景的图像
  • 训练模型在生成时保持主体身份一致

在控制架构演进中的位置

UNet 时代                          DiT 时代
ControlNet (2023) ──────────────→ OminiControl (2024)
  └─ Zero convolution               └─ Unified sequence
  └─ Lock + Copy                     └─ Reuse VAE + Transformer
  └─ 社区生态王者                     └─ 极简哲学

关键转折:从"外挂控制模块"到"让基座模型自己学会控制"

我的判断

OminiControl 代表了控制架构的正确演进方向——不是”给模型加控制能力”,而是”让模型本身就能被控制”。0.1% 的参数意味着控制能力几乎免费。

但 ControlNet 的成功不仅在于架构——更在于社区贡献的海量预训练条件模型(数千个 ControlNet 模型覆盖各种条件类型)。OminiControl 能否达到同样的生态丰富度,取决于 DiT 社区的发展速度。

实际上,两者可能长期共存:ControlNet 统治 SD 生态,OminiControl 统治 DiT 生态。

在 Wiki 中的关联