扩散模型理解
- 一、什么是 扩散模型
- 二、为什么视觉生成不像文本生成使用预测下一个token模式?
- 三、主流的文生图模型都是用扩散模型吗
- 四、在文生图场景中,扩散模型训练时的目标、过程、loss是什么样子的
- 五、“在推理时,利用这两个结果的差值来放大文本的影响,从而大幅提高图文对齐度。” 这句怎么理解,是说在推理时会生成多张图片,然后选择与无条件生产差值最大的输出吗
- 六、扩散模型感觉是个很精巧的模型,它是如何被提出和发展的
- 七、U-Net(即 DiT 架构)是什么样子的
- 八、也讲下 GAN(生成对抗网络) 在图像生成是如何使用的
- 九、总结下图像生成的发展历程
- 在视频生成领域,相比图片生成有哪些区别,目前发展到什么程度了呢
- 十、在视频生成模型中如何建模物理世界呢
- 世界模型是解决什么问题的,目前发展的程度如何
- 十一、U-Net 网络
一、什么是 扩散模型
扩散模型(Diffusion Model) 是目前 AI 绘画(如 Midjourney、Stable Diffusion)背后的核心技术。
为了让你简洁易懂地理解,我们可以把它想象成一个“逆向还原”的过程。
1. 核心比喻:从“墨汁”到“画作”
想象一下这个过程的两个阶段:
-
正向过程(加噪/破坏):
你有一张清晰的猫的照片。你每天往上面滴一滴墨水,或者撒一把沙子。- 第1天:照片有点脏。
- 第100天:照片全是噪点,完全看不出是猫了,变成了一团纯粹的随机噪声(像老电视的雪花屏)。
- 这一步很简单,就是不断添加混乱。
-
反向过程(去噪/生成):
现在,你手里只有一团随机噪声。你的任务是:学会如何一步步把噪声去掉,还原出那张猫的照片。- 你需要训练一个 AI,让它观察:“如果我现在看到这团噪声,前一步稍微清晰一点的样子应该是什么样的?”
- AI 学会了预测噪声,然后把它减去一点点。
- 重复几百次,噪声逐渐消失,一只清晰的猫就“浮现”出来了。
- 这一步很难,也是扩散模型的精髓。
2. 它是怎么“学会”画画的?
-
训练阶段(看万卷书):
给 AI 看 millions 张真实图片。让它反复练习:把图片加噪变模糊,然后尝试预测刚才加了多少噪、怎么减回去。通过无数次练习,AI 掌握了“从混乱中恢复结构”的规律。 -
生成阶段(凭空创作):
- 电脑先生成一团纯随机噪声(就像一张白纸上的乱涂乱画)。
- 你告诉 AI:“我要一只猫”。
- AI 根据它学到的规律,盯着这团噪声,一步步猜测:“这里应该是耳朵,那里应该是眼睛”,然后一点点去除不符合“猫”特征的噪声。
- 经过几十步迭代,图像越来越清晰,最终生成一张全新的、从未存在过的猫的图片。
3. 为什么它这么火?
- 质量极高: 生成的图像细节丰富,逼真度高。
- 多样性好: 因为起始噪声是随机的,所以每次生成的图都不一样。
- 可控性强: 可以通过文字提示(Prompt)精确控制生成内容。
总结
扩散模型 = 先学习如何把清晰图片变模糊(加噪),再学会如何从模糊噪声中变回清晰图片(去噪)。
它不像以前的 AI 那样直接“画”出一张图,而是像雕塑家一样,从一块杂乱无章的石头(噪声)中,一点点凿去多余的部分,最终显露出作品。
二、为什么视觉生成不像文本生成使用预测下一个token模式?
这是一个非常深刻且直击本质的问题。
简单来说:因为图像和文本的“数据结构”完全不同,导致最适合它们的生成逻辑也不同。
- 文本是“离散”的(Discrete): 像积木,一块接一块,顺序至关重要。
- 图像是“连续”的(Continuous): 像颜料,像素之间紧密相连,整体结构比局部顺序更重要。
下面我们用通俗的比喻来拆解为什么 AI 绘画选择了扩散模型,而不是像 GPT 那样“预测下一个像素”。
1. 为什么文本适合“预测下一个 Token”?
文本的本质是:线性序列。
当你写句子时,你必须一个字一个字地写。前面的字决定了后面的字。
- 例子:“今天天气真____”
- 你只需要根据前文,预测下一个最可能的字(比如“好”)。
GPT(Transformer)的优势:
- 因果性强:语言有强烈的先后逻辑。
- 计算量可控:每次只预测一个词,算完再预测下一个。
如果强行用 GPT 的方式画图(即“预测下一个像素”),会发生什么?
- 假设图片是 \(1024 \times 1024\) 像素,共有 100 万个像素。
- 如果你从左到右、从上到下逐个像素预测:
- 当你在画左上角的第一个像素时,你根本不知道右下角该画什么。
- 等到画到眼睛的时候,你可能已经忘了鼻子画在哪了。
- 结果:画出来的图会支离破碎,缺乏全局一致性(比如画了一只猫,但头在左边,尾巴跑到了画面外,或者身体结构扭曲)。
比喻:用“预测下一个 token”画画,就像让你蒙着眼睛,一笔一笔画一幅巨大的壁画,而且你不能回头修改,也不能看整体效果。这几乎不可能画出协调的作品。
2. 为什么图像适合“扩散模型”?
图像的本质是:全局关联的空间结构。
画一只猫,你需要同时确定:
- 头在哪里?
- 眼睛多大?
- 光影如何分布?
- 背景是什么?
这些元素是同时存在且相互影响的,而不是线性生成的。
扩散模型的优势:
- 全局视野:它不是从一个角开始画,而是从整张图的噪声开始,每一步都在调整所有像素。
- 迭代 refinement(精炼):
- 第 1 步:大概看出个轮廓(这是一只动物)。
- 第 10 步:看清了是猫,有四肢。
- 第 50 步:毛发细节出来了,眼神对了。
- 每一步都在修正整体,确保头、身体、背景是协调的。
比喻:扩散模型就像雕塑家。
他一开始面对的是一个粗糙的石块(噪声)。
他先凿出大轮廓(去粗噪),再刻画五官(去细噪),最后打磨细节。
他在任何阶段都能看到整体,并随时调整局部的比例,确保最终作品和谐统一。
3. 核心对比总结
| 特性 | 文本 (GPT/LLM) | 图像 (Diffusion) |
|---|---|---|
| 数据形态 | 离散序列 (Word A -> Word B) | 连续空间 (Pixel Grid) |
| 依赖关系 | 强因果 (前文决定后文) | 强空间关联 (上下左右像素互相影响) |
| 生成方式 | ** autoregressive (自回归)** 一个一个蹦出来 |
** Denoising (去噪)** 整体一起变清晰 |
| 错误容忍度 | 低 (错一个字可能意思全变) | 高 (局部模糊一点不影响整体识别) |
| 并行性 | 难并行 (必须等前一个词生成) | 易并行 (所有像素同时更新) |
4. 补充:其实也有“预测下一个 patch”的图像模型!
虽然扩散模型是主流,但科学家也尝试过用类似 GPT 的方式画图,比如 ViT (Vision Transformer) 或 MaskGit。
- 它们把图片切成一个个小方块(Patch),然后像填字游戏一样,预测缺失的方块。
- 缺点:速度极慢,且很难处理高分辨率下的细节一致性。
- 现状:目前最先进的图像生成(如 Sora、Stable Diffusion 3、DALL-E 3)依然以扩散模型或其变体为主流,或者结合扩散与 Transformer 的优势(如 DiT 架构)。
结论
- 文本是线性的,所以适合“接着往下说”(Next Token Prediction)。
- 图像是空间的,所以适合“从模糊到清晰”(Diffusion/Denoising)。
扩散模型之所以统治 AI 绘画,是因为它完美契合了图像“全局一致、细节丰富、空间关联”的特性。
三、主流的文生图模型都是用扩散模型吗
是的,目前绝大多数主流、高质量的“文生图”模型(Text-to-Image)的核心底层技术都是扩散模型(Diffusion Models)。
但是,这个领域正在快速演变,出现了一些混合架构和新挑战者。我们可以把现状分为三类:
1. 绝对主流:纯扩散模型或其变体
这些模型占据了市场90%以上的份额,大家熟知的名字基本都属于这一类。
- Stable Diffusion (SD 1.5, SDXL, SD3):
- 由 Stability AI 开发。
- 核心:标准的 latent diffusion(潜空间扩散)。
- 特点:开源、生态极强,是目前用户基数最大的模型。
- Midjourney (V4, V5, V6):
- 闭源商业模型。
- 核心:虽然官方未完全公开细节,但行业普遍认为其基于扩散模型架构,并进行了大量的私有优化。
- 特点:美学效果极佳,艺术性强。
- DALL-E 3:
- OpenAI 开发。
- 核心:基于扩散模型,但与 GPT-4 大语言模型深度结合。
- 特点:对自然语言指令的理解能力最强,能画出非常复杂的提示词。
- Adobe Firefly:
- Adobe 开发。
- 核心:扩散模型。
- 特点:专为商业设计打造,版权安全,集成在 Photoshop 中。
2. 新兴趋势:扩散模型 + Transformer (DiT)
这是当前最前沿的技术方向。传统的扩散模型使用 U-Net 作为去噪网络,而最新的模型开始用 Transformer 替换 U-Net。
- Stable Diffusion 3 (SD3) & Flux.1 (由原 Stable Diffusion 核心团队成员创立的黑森林实验室 Black Forest Labs 开发):
- 核心:采用了 DiT (Diffusion Transformer) 架构。
- 意义:它保留了扩散模型“从噪声中生成图像”的过程,但用 Transformer 来处理数据。这使得模型更能理解复杂的文本提示,且扩展性更好。
- 现状:Flux.1 目前在开源社区被视为新的标杆,画质和指令遵循能力超越了 SDXL。
3. 挑战者:非扩散模型(Autoregressive / Flow Matching)
虽然扩散模型是主流,但其他技术路线也在尝试突破,主要集中在速度和视频生成上。
- Luma Dream Machine / Runway Gen-3 / Kling (可灵):
- 这些主要是文生视频模型。
- 核心技术:很多开始采用 Flow Matching(流匹配) 或 Autoregressive Transformer(自回归 Transformer)。
- 原因:扩散模型生成视频太慢(需要几十步去噪),而自回归模型(像 GPT 一样预测下一帧)在视频生成上可能更高效。
- Google Lumiere / Meta Movie Gen:
- 部分研究开始探索直接使用 Transformer 进行时空建模,试图绕过扩散过程的迭代步骤。
- Consistency Models / LCM (Latent Consistency Models):
- 这不是完全不同的模型,而是对扩散模型的加速改造。
- 它能让扩散模型在 1-4 步 内完成生成(传统需要 20-50 步),极大地提高了速度,接近实时生成。
总结:为什么扩散模型依然是王者?
尽管有新技术出现,扩散模型在图像生成领域依然不可动摇,原因是:
- 画质上限高:目前没有任何其他架构能在静态图像的细腻程度、光影真实感上全面超越扩散模型。
- 训练稳定:相比 GAN(生成对抗网络,早期的主流),扩散模型更容易训练,不容易崩溃。
- 可控性强:通过 ControlNet 等插件,可以精确控制姿势、边缘、深度等,这是其他模型难以做到的。
未来展望:
- 短期(1-2年):DiT(扩散Transformer) 将成为新标准(如 Flux, SD3)。
- 中期:流匹配(Flow Matching) 可能与扩散模型融合,提供更快的生成速度。
- 长期:如果 自回归模型(Autoregressive) 能解决图像一致性问题,它可能会因为速度快而取代扩散模型,但目前还在早期阶段。
所以,如果你现在要用 AI 画图,你用的几乎肯定还是扩散模型(或其变种)。
四、在文生图场景中,扩散模型训练时的目标、过程、loss是什么样子的
在文生图(Text-to-Image)场景中,扩散模型(特别是目前主流的 Latent Diffusion Models, LDM,如 Stable Diffusion)的训练核心可以概括为:训练一个神经网络,让它学会“预测噪声”。
以下是关于训练目标、过程和 Loss 函数的详细拆解:
1. 核心直觉:训练目标是什么?
想象一下,你有一张清晰的图片 \(x_0\)。
- 我们往这张图上加高斯噪声,加到第 \(t\) 步,变成了一张满是噪点的图 \(x_t\)。
- 在这个过程中,我们知道确切加了多少噪声 \(\epsilon\)。
- 训练目标:给模型看这张 noisy image \(x_t\) 和当前的时间步 \(t\)(以及文本提示词 \(c\)让模型知道画的是什么),让模型去猜测刚才加进去的那个噪声 \(\epsilon\) 是什么。
如果模型能准确预测出噪声 \(\hat{\epsilon}\),那么我们用 \(x_t\) 减去 \(\hat{\epsilon}\),就能得到更清晰一点的图片 \(x_{t-1}\)。重复这个过程,就能从纯噪声还原出图像。
2. 训练过程 (The Training Loop)
训练是在潜在空间(Latent Space)中进行的(为了节省算力),但逻辑与像素空间一致。
步骤 1: 数据准备
- 输入:一张真实图片 \(x_0\) 和对应的文本描述 \(c\)。
- 编码:使用 VAE Encoder 将图片压缩成潜变量 \(z_0\)。
步骤 2: 随机采样时间步 \(t\)
- 从均匀分布中随机选择一个时间步 \(t\)(例如 \(t \in [1, 1000]\))。
- 这意味着每次训练,模型看到的噪声程度是不一样的:有时是轻微模糊,有时是完全混乱。这迫使模型学会处理所有程度的噪声。
步骤 3: 添加噪声 (Forward Process)
- 根据预定义的噪声调度表(Noise Schedule),向 \(z_0\) 添加标准高斯噪声 \(\epsilon \sim \mathcal{N}(0, I)\)。
- 公式(重参数化技巧):\[z_t = \sqrt{\bar{\alpha}_t} z_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon \]
- \(z_t\): 加噪后的潜变量。
- \(\epsilon\): 我们人为加入的标准高斯噪声。
- \(\bar{\alpha}_t\): 一个随 \(t\)变化的系数,控制保留多少原始信号。
步骤 4: 模型预测 (Model Prediction)
- 将 \(z_t\)、时间步 \(t\)、文本嵌入向量 \(c\) 输入到 UNet(或 DiT)网络中。
- 网络输出预测的噪声 \(\epsilon_\theta(z_t, t, c)\)。
步骤 5: 计算 Loss 并反向传播
- 比较 模型预测的噪声 \(\epsilon_\theta\) 和 真实加入的噪声 \(\epsilon\)。
- 计算差异,更新网络参数 \(\theta\)。
3. Loss 函数 (损失函数)
扩散模型最经典、最常用的 Loss 函数非常简单,就是预测噪声与真实噪声之间的均方误差(MSE)。
解释:
- \(\epsilon\): 真实加入的高斯噪声(Ground Truth)。
- \(\epsilon_\theta(z_t, t, c)\): 模型预测出来的噪声。
- \(\| \cdot \|^2\): L2 范数(即欧几里得距离的平方)。
- \(\mathbb{E}\): 期望值,表示对所有的图片、所有的噪声样本、所有的时间步取平均。
为什么用这个 Loss?
Ho et al. (DDPM论文) 证明,简化后的这个 MSE Loss 等价于最大化数据的变分下界(VLB),且训练效果比复杂的加权 VLB 更好、更稳定。
4. 关键细节补充
A. 为什么要预测噪声,而不是直接预测图片?
- 如果让模型直接预测 \(z_0\),在噪声很大时(\(t\) 接近最大值),\(z_t\) 几乎全是随机噪声,包含极少原始信息,模型很难直接“猜”出原图。
- 但是,噪声 \(\epsilon\) 始终服从标准高斯分布 \(\mathcal{N}(0, I)\)。无论 \(t\) 是多少,模型的任务始终是:“从当前状态中分离出符合高斯分布的那部分干扰”。这个任务的难度在不同 \(t\) 下相对均衡,更容易训练。
B. 文本条件 \(c\) 怎么融入?
- 文本通过 CLIP 或 T5 等文本编码器变成向量。
- 这些向量通过 Cross-Attention(交叉注意力机制) 注入到 UNet 的每一层中。
- 这使得模型在去噪时,不仅参考图像结构,还参考语义信息(例如:去掉噪声时,要把形状引导成“猫”而不是“狗”)。
C. Classifier-Free Guidance (CFG) 的训练技巧
为了让生成的图更符合提示词,现代扩散模型通常采用 Classifier-Free Guidance 训练策略:
- 在训练时,以一定概率(如 10%)丢弃文本条件 \(c\)(传入空字符串或零向量)。
- 这样模型同时学习了:
- \(p(x|c)\): 有条件生成(听指挥画图)。
- \(p(x|\emptyset)\): 无条件生成(瞎画图)。
- 在推理时,利用这两个结果的差值来放大文本的影响,从而大幅提高图文对齐度。
总结
- 目标:学会从带噪图像中剥离出噪声。
- 过程:随机选时间步 \(t\) -> 加噪声 -> 喂给模型 -> 模型猜噪声。
- Loss:预测噪声 \(\hat{\epsilon}\) 和真实噪声 \(\epsilon\) 的均方误差 (MSE)。
这就是为什么扩散模型训练需要巨大的算力:它需要在数百万张图片上,反复进行这种“加噪-去噪”的试错学习,直到它能完美地从混沌中恢复秩序。
五、“在推理时,利用这两个结果的差值来放大文本的影响,从而大幅提高图文对齐度。” 这句怎么理解,是说在推理时会生成多张图片,然后选择与无条件生产差值最大的输出吗
不是的,这是一个非常常见的误解。
这里并不是指“生成多张图片然后从中挑选一张”,也不是指“比较两张成品图的差异”。
它的核心含义是:在去噪的每一步(Step-by-Step),通过数学公式强行修正预测方向,让图像更偏向文本描述。
我们可以把这个过程拆解为三个关键点来理解:
1. 它是怎么操作的?(单步修正,而非最终选择)
扩散模型的推理是一个迭代过程(比如走 20 步或 50 步)。在每一步去噪时,模型实际上会进行两次前向传播(Forward Pass),但这两次传播共享同一个噪声状态 \(z_t\):
-
有条件预测 (\(\epsilon_{cond}\)):
- 输入:当前噪声图 + 提示词(如 "一只猫")。
- 输出:模型认为应该减去的噪声 \(\epsilon_{cond}\)。
- 含义:“如果我要画一只猫,这一步该怎么去噪?”
-
无条件预测 (\(\epsilon_{uncond}\)):
- 输入:当前噪声图 + 空提示词("")。
- 输出:模型认为应该减去的噪声 \(\epsilon_{uncond}\)。
- 含义:“如果我不关心画什么,只是随便画点像图片的东西,这一步该怎么去噪?”
-
线性插值(关键步骤):
- 我们不直接使用 \(\epsilon_{cond}\),也不使用 \(\epsilon_{uncond}\)。
- 我们计算一个新的噪声预测值 \(\epsilon_{final}\):\[\epsilon_{final} = \epsilon_{uncond} + w \times (\epsilon_{cond} - \epsilon_{uncond}) \]
- 其中 \(w\) 就是 Guidance Scale(引导系数,通常在 7-12 之间)。
2. 这个公式是什么意思?(向量几何直观理解)
你可以把 \(\epsilon_{cond}\) 和 \(\epsilon_{uncond}\) 想象成两个向量(方向箭头):
- \(\epsilon_{uncond}\) 指向的是“变成任何自然图像”的方向。
- \(\epsilon_{cond}\) 指向的是“变成符合提示词的图像”的方向。
- 差值 \((\epsilon_{cond} - \epsilon_{uncond})\):代表了“因为加了提示词,而去噪方向发生的偏移量”。也就是“为了像猫,我需要额外做的调整”。
CFG 的逻辑是:
既然这个“偏移量”代表了文本的影响,那我就把这个偏移量放大 \(w\) 倍。
- 如果 \(w=1\):\(\epsilon_{final} = \epsilon_{cond}\)。这就是普通的生成,完全听模型的。
- 如果 \(w=7\):\(\epsilon_{final} = \epsilon_{uncond} + 7 \times (\text{偏移量})\)。这意味着我们极大地增强了文本对去噪方向的引导作用,迫使图像更严格地遵守提示词。
3. 为什么不是“生成多张选一张”?
- 效率原因:如果在每一步都生成多张图最后再选,计算量会爆炸。CFG 只是在内存中多做了一次简单的神经网络前向传播(无条件的那次),然后做个减法乘法,成本很低。
- 连续性原因:扩散生成是一个连续的动力系统。如果在第 1 步稍微偏向猫一点,第 2 步再偏向一点……这种每一步的微小强制修正累积起来,才能保证最终生成的图像既清晰又符合提示词。如果只在最后选,前面的步骤可能已经跑偏到“狗”或者“模糊团”去了,最后选也救不回来。
总结比喻
想象你在开车(去噪过程),目的地是“猫”。
- 无条件预测 (\(\epsilon_{uncond}\)):就像是你闭着眼开车的直觉,倾向于把车开到大路中间(生成一张普通的、自然的图,但不一定是猫)。
- 有条件预测 (\(\epsilon_{cond}\)):就像是看着导航开车,导航说“前方左转去猫村”。
- 差值 (\(\epsilon_{cond} - \epsilon_{uncond}\)):就是“导航指令”和“直觉”之间的偏差(比如:导航让你左转,而直觉想直行)。
- CFG (放大差值):就是你过度听从导航。哪怕导航只说“稍微左偏一点”,你也会大幅度猛打方向盘向左。
结果:
- \(w\) 太小:你可能忽略导航,开到了别的地方(图文不符)。
- \(w\) 适中:你准确到达了猫村(图文对齐好)。
- \(w\) 太大:你方向盘打太死,车子冲出路面或者翻车了(图像过饱和、出现伪影、色彩失真)。
所以,CFG 是一种在每一步去噪过程中,动态调整生成轨迹的技术,而不是事后筛选技术。
六、扩散模型感觉是个很精巧的模型,它是如何被提出和发展的
扩散模型(Diffusion Models)的发展史确实非常精彩,它不是一个“突然诞生”的天才想法,而是一场跨越了物理学、统计学和深度学习的漫长接力赛。
它的故事可以概括为:源于物理灵感 -> 被理论完善 -> 被工程实现 -> 最终爆发。
以下是这条清晰的发展脉络:
1. 灵感起源:非平衡热力学 (2015)
关键人物: Jascha Sohl-Dickstein 等 (Google Brain)
关键论文: Deep Unsupervised Learning using Nonequilibrium Thermodynamics
- 背景:当时的生成模型主流是 GAN(生成对抗网络),但 GAN 训练极不稳定,容易崩溃。
- 灵感来源:研究者从统计物理学中的“扩散过程”得到启发。
- 在物理中,一滴墨水滴入水中,会逐渐扩散直到均匀分布(熵增,变得混乱)。
- 这个过程是可逆的吗?理论上,如果你知道每一步分子的运动规律,你可以反向推导,让墨水重新聚集成一滴。
- 贡献:他们首次提出了扩散概率模型(DPM)的概念,证明了可以通过学习一个反向的马尔可夫链,从噪声中恢复数据分布。
- 局限:虽然理论很美,但当时的计算能力有限,且采样速度极慢(需要几千步才能生成一张模糊的小图),因此并未引起广泛关注。
2. 理论简化与统一:DDPM (2020)
关键人物: Jonathan Ho, Ajay Jain, Pieter Abbeel (UC Berkeley & Google Brain)
关键论文: Denoising Diffusion Probabilistic Models (DDPM)
- 转折点:这是扩散模型的“复兴之作”。
- 核心突破:
- 简化公式:之前的模型太复杂,Ho 等人发现,如果固定加噪的过程(只学去噪),并使用简单的均方误差(MSE)损失函数,模型就能训练得非常好。
- 画质超越 GAN:他们在 CIFAR-10 等数据集上证明,扩散模型生成的图像质量已经可以媲美甚至超越当时的 SOTA GAN 模型,而且训练更稳定,没有模式坍塌(Mode Collapse)问题。
- 意义:DDPM 确立了现代扩散模型的标准范式:前向加噪(固定) + 反向去噪(学习)。
3. 加速与落地:DDIM (2021)
关键人物: Jiaming Song 等 (Stanford)
关键论文: Denoising Diffusion Implicit Models (DDIM)
- 痛点:DDPM 虽然好,但太慢了。生成一张图需要 1000 步迭代,这在工业界是无法接受的。
- 核心突破:
- 他们发现,去噪过程不必严格遵循马尔可夫链(即不必每一步都依赖前一步)。
- 通过引入非马尔可夫过程,他们可以将步数从 1000 步压缩到 50 步甚至 20 步,且画质几乎不下降。
- 意义:DDIM 让扩散模型从“实验室玩具”变成了“可用工具”,极大地推动了后续的应用开发。
4. 走向高清与实用:Latent Diffusion (Stable Diffusion) (2022)
关键人物: Robin Rombach 等 (LMU Munich & Stability AI)
关键论文: High-Resolution Image Synthesis with Latent Diffusion Models
- 痛点:之前的扩散模型都是在像素空间(Pixel Space)直接操作的。处理 \(1024 \times 1024\) 的高清图需要巨大的显存和算力。
- 核心突破:
- 潜空间(Latent Space):先用一个 VAE(变分自编码器)把图片压缩成一个小得多的“潜变量”(比如压缩 8 倍)。
- 在潜空间扩散:在这个压缩后的空间里进行去噪运算,算力需求降低了几个数量级。
- Cross-Attention:巧妙地引入了文本编码器(CLIP),通过交叉注意力机制将文本信息注入去噪过程。
- 意义:这就是 Stable Diffusion 的核心。它让普通人能在消费级显卡(如 RTX 3090/4090)上运行高清文生图模型,直接引爆了 AI 绘画的革命。
5. 架构升级:DiT 与 Flux (2023-2024)
关键人物: William Peebles, Saining Xie (Meta); Black Forest Labs 等
关键趋势: Diffusion Transformer (DiT)
- 现状:传统的扩散模型使用 U-Net 作为去噪网络。但 U-Net 在处理大规模数据和复杂语义时遇到了瓶颈。
- 新方向:研究者发现,用 Transformer 替换 U-Net(即 DiT 架构),能更好地利用大规模数据训练,且在理解复杂提示词方面表现更强。
- 代表模型:
- Stable Diffusion 3:采用了 DiT 架构。
- Flux.1:目前开源界的最强模型,也是基于 Flow Matching(流匹配,扩散的广义形式)和 Transformer 架构。
- Sora:OpenAI 的视频生成模型,本质上也是基于 Transformer 的扩散/流匹配模型。
总结:为什么扩散模型能成功?
- 稳定性:相比 GAN 的“博弈”训练,扩散模型是单纯的“回归”任务(预测噪声),训练极其稳定。
- 覆盖率高:GAN 容易忽略某些小众数据(模式坍塌),而扩散模型能覆盖整个数据分布,多样性极好。
- 可扩展性:从 DDPM 到 LDM 再到 DiT,每一步改进都解决了算力、速度或语义理解的瓶颈,使其能随着算力增长不断变大变强。
可以说,扩散模型是“正确的理论”(热力学扩散)遇上了“合适的时机”(GPU 算力爆发)和“巧妙的工程优化”(潜空间、DDIM、Transformer)后的必然产物。
七、U-Net(即 DiT 架构)是什么样子的
这里有一个小小的概念澄清:U-Net 和 DiT 是两种完全不同的架构,它们不是同一个东西。
- U-Net:是早期扩散模型(如 Stable Diffusion 1.5, SDXL)使用的 backbone(骨干网络)。
- DiT (Diffusion Transformer):是最新一代扩散模型(如 Stable Diffusion 3, Flux, Sora)使用的 backbone。
目前的趋势是 从 U-Net 转向 DiT。下面我为你详细拆解这两者的样子和区别,帮你理解为什么行业要“换引擎”。
1. U-Net:经典的“沙漏”结构
U-Net 最初是为生物医学图像分割设计的,后来被借用到扩散模型中。它的形状像一个字母 U。
结构特点:
- 编码器(Encoder,左侧下行):
- 不断通过卷积层和下采样(Downsample),将图片的特征图变小,但通道数变多。
- 作用:提取图像的“语义信息”(比如:这里有个猫头,那里有条腿)。
- 瓶颈层(Bottleneck,底部):
- 特征图最小、最抽象的地方。
- 解码器(Decoder,右侧上行):
- 不断通过上采样(Upsample),将特征图变大,恢复分辨率。
- 作用:根据语义信息,重建图像的细节。
- 跳跃连接(Skip Connections,中间的横线):
- 这是 U-Net 的灵魂。它将编码器每一层的特征直接“复制粘贴”到解码器对应的层。
- 为什么重要?:因为下采样会丢失空间细节(像素位置信息)。跳跃连接把高分辨率的细节直接传过去,帮助模型画出清晰的边缘和纹理。
在扩散模型中的角色:
- 输入:带噪声的潜变量 \(z_t\) + 时间步 \(t\) + 文本嵌入 \(c\)。
- 处理:通过卷积核在局部滑动,结合跳跃连接的信息。
- 输出:预测的噪声 \(\epsilon\)。
缺点:
- 感受野有限:卷积核只能看到局部区域。虽然层层叠加能扩大视野,但对于全局一致性(比如左手和右手的对称性、背景的整体光照)处理能力较弱。
- 扩展性差:很难像 LLM 那样简单地通过增加层数和参数量来线性提升能力。
2. DiT (Diffusion Transformer):基于 Patch 的“积木”结构
DiT 是 Meta 在 2022 年提出的概念,核心思想是:既然 Transformer 在 NLP(文本)和 CV(分类/检测)上都成功了,为什么不用它来做扩散模型的去噪主干?
结构特点:
- Patch Embedding(分块嵌入):
- 不像 U-Net 那样处理单个像素或局部特征图。
- DiT 先把图像切成一个个小方块(Patch,比如 \(16 \times 16\) 像素)。
- 每个 Patch 被拉伸成一个向量,加上位置编码(Positional Encoding),变成一串序列。
- 此时,图像变成了类似“句子”的东西:[Patch1, Patch2, ..., PatchN]。
- Transformer Blocks(标准 Transformer 层):
- 这串序列进入标准的 Transformer 架构。
- Self-Attention(自注意力机制):这是核心。每一个 Patch 都可以直接“看到”并与其他所有 Patch 进行交互。
- 作用:无论两个 Patch 在图片中距离多远,它们都能直接交换信息。这赋予了模型极强的全局建模能力。
- AdaLN-Zero (自适应层归一化):
- 这是 DiT 的关键创新。
- 传统的 Transformer 用固定的 LayerNorm。
- DiT 将时间步 \(t\) 和 文本条件 \(c\) 映射成一组参数,动态地调整每一个 Transformer 层中的归一化和缩放系数。
- 意义:让模型能够根据“当前去噪到了哪一步”以及“提示词是什么”,灵活地调整注意力机制的行为。
在扩散模型中的角色:
- 输入:图像被切成的 Patch 序列 + 时间/文本条件。
- 处理:通过多层 Self-Attention,全局性地理解图像结构并预测噪声。
- 输出:预测的噪声(再 reshape 回图像形状)。
优点:
- 全局视野:天生适合处理长距离依赖,画出来的图结构更严谨(比如手指数量、物体透视关系更好)。
- 可扩展性极强:可以直接沿用 LLM 的训练技巧(如缩放定律 Scaling Laws)。只要增加数据量和参数量,效果就会稳步提升。
- 统一架构:文本用 Transformer,图像也用 Transformer,便于多模态融合(如 Sora 同时处理视频帧和文本)。
3. U-Net vs. DiT 直观对比
| 特性 | U-Net (SD 1.5/SDXL) | DiT (SD3/Flux/Sora) |
|---|---|---|
| 核心算子 | 卷积 (Convolution) | 自注意力 (Self-Attention) |
| 视野范围 | 局部为主,依赖堆叠层数扩大 | 全局,任意两点可直接交互 |
| 数据处理 | 保持二维网格结构 (H x W x C) | 展平为序列 (Sequence of Patches) |
| 条件注入 | 通过 Cross-Attention 插入 | 通过 AdaLN 动态调制整个网络 |
| 扩展性 | 较差,增大模型收益递减 | 极好,符合 Scaling Law |
| 推理速度 | 较快(卷积计算高效) | 较慢(Attention 计算量大,需优化) |
| 代表模型 | Stable Diffusion 1.5, SDXL, Midjourney v4/v5 | Stable Diffusion 3, Flux.1, PixArt, Sora |
4. 总结:为什么要换成 DiT?
你可以这样理解:
- U-Net 像是一个拿着放大镜的画家:他仔细看局部的笔触(卷积),并通过记忆(跳跃连接)来保持整体结构。但他很难同时兼顾画面左上角和右下角的微妙联系。
- DiT 像是一个站在远处俯瞰全图的导演:他把画面切成小块,然后同时审视所有小块之间的关系(Attention)。他能更好地指挥全局,确保光影、透视、物体关系在整个画面中是协调一致的。
随着 AI 模型越来越大,对全局逻辑和复杂指令遵循的要求越来越高,DiT(Transformer 架构) 自然就成了比 U-Net 更好的选择。这就是为什么最新的 Flux 和 SD3 都抛弃了 U-Net 的原因。
八、也讲下 GAN(生成对抗网络) 在图像生成是如何使用的
GAN(Generative Adversarial Networks,生成对抗网络) 是深度学习领域在扩散模型爆发之前,统治图像生成长达 5-6 年的“王者”。
如果说扩散模型像是一个“精雕细琢的雕塑家”(从噪声中慢慢还原),那么 GAN 就像是一个“造假币团伙”与“验钞专家”之间的无限博弈。
1. 核心直觉:左右互搏
GAN 的核心思想非常精彩,它由两个神经网络组成,它们互相打架、互相促进:
- 生成器 (Generator, G):“造假者”
- 目标:制造假图片,试图骗过判别器。
- 输入:一串随机噪声向量 \(z\)。
- 输出:一张假图片 \(G(z)\)。
- 判别器 (Discriminator, D):“鉴宝师/警察”
- 目标:分辨图片是真还是假。
- 输入:一张图片(可能是真的,也可能是 G 生成的)。
- 输出:一个概率值(0 表示假,1 表示真)。
训练过程(博弈论):
- 第一轮:G 刚开始很笨,画出一团乱码。D 一眼看出是假的,给 G 差评。
- 反馈:G 收到差评,调整参数:“下次我要画得像一点”。
- 第二轮:G 画得像了一点,但还是有瑕疵。D 也变聪明了,学会了识别这些新瑕疵。
- 循环:G 和 D 不断升级。
- D 越来越厉害,逼得 G 必须画出极其逼真的细节才能骗过它。
- G 越来越厉害,逼得 D 必须找出更细微的破绽。
- 终点(纳什均衡):当 G 生成的图片逼真到 D 无法分辨(只能瞎猜,概率为 0.5)时,训练结束。此时 G 就拥有了生成以假乱真图片的能力。
2. GAN 在图像生成中的经典应用
在扩散模型出现之前,GAN 几乎解决了所有图像生成的难题:
A. StyleGAN (人脸生成的巅峰)
- 代表作:StyleGAN1/2/3 (NVIDIA)。
- 成就:生成了那些你在网上看到的“不存在的名人”头像。
- 特点:
- 解耦控制:它可以独立控制图像的“风格”(如发型、肤色、光照)和“内容”(如五官位置)。
- 极高分辨率:能生成 1024x1024 甚至更高清的人脸,皮肤毛孔清晰可见。
- 速度快:生成一张图只需几毫秒(扩散模型需要几秒到几分钟)。
B. CycleGAN / Pix2Pix (图像翻译)
- 功能:把一种风格的图变成另一种,而不需要成对的数据。
- 场景:
- 马变斑马:输入马的照片,输出斑马的照片,背景不变。
- 白天变黑夜:风景照的时间转换。
- 素描变照片:艺术家画草图,GAN 自动上色并渲染成真实照片。
- 原理:两个 GAN 互相约束,确保转换后的图像不仅像目标域,还能变回原图(循环一致性)。
C. Super-Resolution (超分辨率)
- 代表作:SRGAN, ESRGAN。
- 功能:把模糊的小图放大成清晰的大图。
- 优势:传统的放大算法(如双线性插值)会让图片变模糊,而 GAN 能“脑补”出合理的纹理细节(如头发丝、草地纹理),让图片看起来更锐利真实。
D. Image Inpainting (图像修复)
- 功能:把图片中缺失的部分(比如被遮挡的人脸、去掉的水印)补全。
- 优势:GAN 能根据上下文生成符合逻辑的内容,而不是简单地复制粘贴周围像素。
3. GAN vs. 扩散模型:为什么 GAN 失宠了?
虽然 GAN 曾经辉煌,但现在主流文生图都转向了扩散模型,原因如下:
| 特性 | GAN | 扩散模型 (Diffusion) |
|---|---|---|
| 训练稳定性 | 极差。经常发生“模式坍塌”(Mode Collapse),即 G 发现某种画法能骗过 D,就一直重复画那一种图,导致多样性丧失。训练很难收敛。 | 极好。训练过程稳定,只要数据够多,效果随算力线性提升。 |
| 多样性 | 较低。容易陷入局部最优,生成的图片种类有限。 | 极高。能覆盖整个数据分布,生成千奇百怪的创意图像。 |
| 画质上限 | 高,但在复杂场景下容易出现伪影或结构错误。 | 极高。细节丰富度、光影真实性目前优于 GAN。 |
| 生成速度 | 极快。一次前向传播即可生成图片(毫秒级)。 | 慢。需要几十步迭代去噪(秒级或分钟级)。注:正在通过蒸馏加速。 |
| 可控性 | 较难。很难通过文本精确控制生成内容(除非结合 CLIP 等额外模块)。 | 强。天然支持 Text-to-Image,指令遵循能力强。 |
4. GAN 现在还在用吗?
是的,而且很重要! GAN 并没有死,它在以下领域依然不可替代:
- 实时生成:如果你需要做视频直播滤镜、游戏实时渲染、手机端 App 特效,GAN 的毫秒级速度是扩散模型无法比拟的。
- 特定任务:如超分辨率、去模糊、图像修复,GAN 依然是工业界的首选,因为它快且效果足够好。
- 作为扩散模型的辅助:有些研究尝试用 GAN 的思想来加速扩散模型的采样过程,或者用 GAN 来优化扩散模型生成的局部细节。
总结
- GAN 是一场“造假者与警察”的博弈,优点是快,缺点是难训练、多样性差。
- 扩散模型 是一个“从噪声中还原信号”的过程,优点是稳、画质高、多样性好,缺点是慢。
目前的趋势是:追求极致画质和创意时用扩散模型;追求实时速度和特定图像处理时用 GAN。
九、总结下图像生成的发展历程
图像生成(AI Painting)的发展史,就是一部从“模仿像素”到“理解语义”,再到“掌控物理规律”的进化史。
我们可以将其划分为四个主要时代:
第一阶段:萌芽期 —— VAE 与 GAN 的崛起 (2014 - 2018)
关键词:对抗、模糊、局部真实
- 核心技术:VAE (变分自编码器) 和 GAN (生成对抗网络)。
- 代表模型:DCGAN, StyleGAN, CycleGAN。
- 特点:
- VAE 证明了可以用潜空间(Latent Space)压缩和重建图像,但生成的图很模糊。
- GAN 引入了“博弈”机制,大幅提升了清晰度。StyleGAN 能生成以假乱真的人脸。
- 局限:
- 训练极不稳定:经常崩溃或模式坍塌(只画几种图)。
- 缺乏全局观:擅长画纹理(皮肤、毛发),但不擅长画结构(手指数目不对、肢体扭曲)。
- 难以控制:很难通过文字精确指定“画一只戴帽子的猫在喝咖啡”。
比喻:像一个技艺高超但脾气古怪的临摹画家,画局部很像,但整体构图容易出错,且不听指挥。
第二阶段:突破期 —— Transformer 与 CLIP 的引入 (2019 - 2020)
关键词:注意力机制、图文对齐
- 核心技术:Transformer (ViT), CLIP (Contrastive Language-Image Pre-training)。
- 关键事件:OpenAI 发布 CLIP 模型。
- 意义:
- CLIP 在海量“图片-文本”对上训练,学会了理解图片和文字之间的关系。
- 它成为了连接“人类语言”和“机器视觉”的桥梁。
- 虽然此时还没有强大的生成器,但“文生图”的理论基础被打牢了。
比喻:给画家配了一个精通多国语言的翻译官,画家终于听得懂人话了。
第三阶段:爆发期 —— 扩散模型的统治 (2021 - 2023)
关键词:去噪、高质量、开源生态
- 核心技术:DDPM, Latent Diffusion (LDM), ControlNet。
- 代表模型:DALL-E 2, Stable Diffusion, Midjourney v4/v5。
- 关键突破:
- Stable Diffusion (2022):将扩散过程移到潜空间(Latent Space),大幅降低算力门槛,让普通人能在家用显卡上跑 AI 绘画。
- ControlNet (2023):解决了扩散模型“抽卡”随机性太大的问题,允许用户精确控制姿势、边缘、深度。
- Midjourney:通过封闭训练和美学调优,树立了艺术性的标杆。
- 特点:
- 画质极高:细节丰富,光影逼真。
- 稳定性好:训练不再容易崩溃。
- 生态繁荣:LoRA、Checkpoint 等微调技术让社区百花齐放。
比喻:像一位耐心细致的雕塑家,从一团混沌中慢慢凿出杰作,听话、稳定、画得极好。
第四阶段:融合与视频期 —— DiT 与多模态统一 (2024 - 至今)
关键词:Transformer 骨干、流匹配、视频生成、世界模型
- 核心技术:DiT (Diffusion Transformer), Flow Matching, MM-DiT。
- 代表模型:Sora, Flux.1, Stable Diffusion 3, Midjourney v6。
- 关键趋势:
- 架构统一: backbone 从 U-Net 转向 Transformer (DiT)。图像被当作序列处理,利用了 LLM 的 Scaling Law(规模定律),模型越大越强。
- 文生视频爆发:Sora 的出现证明,扩散/流匹配模型不仅能画图,还能理解物理规律和时间连续性,生成长达一分钟的高清视频。
- 指令遵循极致化:如 Flux.1,能准确画出复杂的文字排版、手指细节,几乎消除了早期扩散模型的常见错误。
比喻:像一位拥有上帝视角的导演,不仅懂画画,还懂物理、懂时间、懂镜头语言,能构建一个动态的世界。
总结:技术演进路线图
| 时代 | 核心架构 | 代表模型 | 优势 | 劣势 |
|---|---|---|---|---|
| 1.0 GAN时代 | CNN + GAN | StyleGAN | 速度极快,纹理逼真 | 训练难,结构易错,难控制 |
| 2.0 过渡期 | Transformer + CLIP | DALL-E 1 | 图文对齐初步实现 | 分辨率低,画质一般 |
| 3.0 扩散时代 | U-Net + Diffusion | Stable Diffusion | 画质高,稳定,开源生态强 | 推理慢,复杂指令理解有限 |
| 4.0 DiT时代 | Transformer + Diffusion/Flow | Sora, Flux | 理解力极强,支持视频,可扩展性好 | 算力需求巨大,推理仍较慢 |
未来的方向?
- 实时化:通过蒸馏技术,让扩散模型也能像 GAN 一样毫秒级生成(如 SD Turbo, LCM)。
- 3D 与交互:从生成 2D 图片/视频,走向生成可交互的 3D 世界(GameGen, Minecraft AI)。
- 世界模型:AI 不再只是“画”出看起来真的东西,而是真正理解物体背后的物理规律(重力、碰撞、因果),成为具身智能(机器人)的大脑。
这就是图像生成短短十年间,从“看不清”到“以假乱真”,再到“创造世界”的精彩历程。
在视频生成领域,相比图片生成有哪些区别,目前发展到什么程度了呢
这是一个非常棒的问题。既然你已经理解了图片生成(从噪声中还原静态画面),那么理解视频生成就只需要跨越一个核心概念:时间一致性(Temporal Consistency)。
简单来说:
- 图片生成是画一张完美的画。
- 视频生成是画几百张完美的画,并且保证这几百张画连起来看时,物体不会突然变形、闪烁或消失。
以下是视频生成与图片生成的核心区别,以及目前的发展现状。
一、 视频生成 vs. 图片生成:核心区别
1. 维度的增加:从 2D 到 3D (H, W, T)
- 图片:处理的是高度(H)和宽度(W)。
- 视频:多了一个时间维度(T,即帧数)。
- 挑战:模型不仅要理解空间结构(这是一只猫),还要理解时间逻辑(猫在下一帧应该往左跳,而不是突然变成狗,或者头转了180度)。
2. “时间一致性”是最大的难点
在图片生成中,如果左手画得稍微有点歪,你可能看不出来。但在视频中,如果第1帧左手正常,第2帧左手消失了,第3帧左手又出现了,观众会感到极度不适(这种现象叫闪烁/Flickering)。
- 图片模型:每一张图都是独立生成的,互不相关。
- 视频模型:必须引入时序注意力机制(Temporal Attention),让第 \(t\) 帧的像素“看到”第 \(t-1\) 帧和第 \(t+1\) 帧的信息,确保动作流畅。
3. 数据量的爆炸
- 训练图片模型需要亿级的高质量图片。
- 训练视频模型需要亿级的高质量视频片段。视频数据不仅获取成本高(版权、隐私),而且清洗难度极大(需要剔除模糊、抖动、无意义的视频)。
- 计算量:处理 16 帧的视频比处理 1 张图片的计算量大得多,显存需求呈指数级上升。
4. 物理规律的理解
- 图片可以是超现实的、静止的。
- 视频必须符合物理常识。比如:水往下流、重力存在、物体碰撞后会反弹、人走路时四肢协调。早期的视频 AI 经常画出“反重力”或“肢体扭曲”的视频,就是因为缺乏对物理世界的建模。
二、 技术架构:视频模型长什么样?
目前的顶级视频模型(如 Sora, Kling, Runway Gen-3)大多基于 DiT (Diffusion Transformer) 架构,但做了针对视频的改造:
-
Patchify in 3D:
- 图片 DiT 把图像切成 \(16 \times 16\) 的方块。
- 视频 DiT 把视频切成 \(16 \times 16 \times t\) 的时空立方体(Space-Time Patches)。这样 Transformer 就能同时处理空间和时间的信息。
-
时空注意力(Spatio-Temporal Attention):
- Spatial Attention:处理每一帧内部的画面关系(像图片生成一样)。
- Temporal Attention:处理同一位置在不同帧之间的变化(确保这一帧的猫眼和下一帧的猫眼是同一个)。
-
潜在空间压缩(Latent Compression):
- 为了节省算力,视频也在潜空间(Latent Space)生成。
- 例如 Sora 使用的压缩率极高,将视频压缩成极小的向量序列,从而能在有限显存下生成长视频。
三、 目前发展到什么程度了?(2024年中后期现状)
视频生成正处于“爆发前夜”向“实用化”过渡的阶段。
1. 第一梯队模型(闭源为主)
- OpenAI Sora:
- 地位:目前的行业标杆(虽未完全公开,但演示效果震撼)。
- 能力:能生成长达 60 秒、1080p 的高清视频。
- 突破:展现了惊人的世界模拟能力。它能理解复杂的镜头运动(如无人机航拍、长镜头跟踪),并且物体在遮挡后重新出现时保持一致性。它似乎“学会”了一些简单的物理规律。
- Runway Gen-3 Alpha:
- 特点:商业化最成熟,提供精细的控制工具(运动笔刷、相机控制)。画质极佳,适合专业影视创作。
- Luma Dream Machine:
- 特点:速度快,免费额度友好,擅长生成动态幅度大的视频(如人物奔跑、跳跃)。
- Kling (可灵 - 快手) & Vidu (生数科技):
- 特点:中国团队的杰出代表。可灵在生成时长(支持长达 2 分钟)、物理真实感(吃面条、走路姿态)方面表现惊人,甚至在某些指标上超越或持平 Sora。
2. 开源/半开源模型
- Stable Video Diffusion (SVD):Stability AI 推出,效果一般,主要用于图像转视频(Image-to-Video)。
- CogVideoX (智谱):近期开源的强大模型,支持高分辨率和较长时长,是目前开源界的佼佼者。
- HunyuanVideo (腾讯混元):最新开源模型,性能强劲,支持中文提示词优化。
3. 当前能力的边界(能做什么 vs. 不能做什么)
| 能力 | 现状 |
|---|---|
| 短镜头生成 | 非常成熟。5-10 秒的空镜、风景、简单人物动作已经非常逼真,难以分辨真假。 |
| 图像转视频 (I2V) | 很实用。给一张图,让它动起来(如让照片里的人眨眼、水流流动),效果很好。 |
| 长视频叙事 | 仍有困难。超过 1 分钟后,角色长相可能会变(Identity Drift),剧情逻辑容易断裂。 |
| 复杂交互 | 较弱。比如“两个人打架”,容易出现肢体穿模、动作不符合力学原理。 |
| 文字生成 | 改善中。早期视频里的文字全是乱码,现在 Flux/Sora 等模型开始能生成清晰的可读文字。 |
| 音频同步 | 起步阶段。目前的视频大多无声,或后期配音。唇形同步(Lip-sync)正在快速进步(如 HeyGen, LivePortrait)。 |
四、 未来的挑战与方向
- 可控性(Controllability):
- 目前视频生成有点像“抽卡”。用户希望像导演一样指定:“镜头推近,主角向左走,光线变暗”。目前的 ControlNet for Video 还在发展中。
- 长程一致性(Long-term Consistency):
- 如何生成一部 2 小时的电影,且主角从头到尾长得一样?这需要模型拥有极强的“记忆”能力。
- 世界模型(World Models):
- Yann LeCun 等大佬认为,视频生成的终极形态是世界模型。AI 不仅是在预测下一个像素,而是在内部模拟一个物理世界。如果 AI 真正理解了重力、摩擦力、因果关系,它就能生成完全符合逻辑的视频,甚至用于训练机器人。
- 算力成本:
- 生成一分钟高清视频的成本远高于生成一张图。如何通过蒸馏、量化等技术降低推理成本,是商业化的关键。
总结
图片生成已经进入了“成熟应用期”,而视频生成正处于“技术突破期”。
- 如果你现在想玩 AI 绘画,你可以得到完美的结果。
- 如果你想玩 AI 视频,你会得到惊艳但偶尔出错的结果。
视频生成被认为是 AGI(通用人工智能)的前奏,因为它要求 AI 必须理解时间、空间和物理规律。随着 Sora、可灵等模型的迭代,我们离“输入一段文字,直接生成一部好莱坞短片”的目标越来越近。
十、在视频生成模型中如何建模物理世界呢
这是一个非常深刻的问题,触及了当前 AI 视频生成(如 Sora、Kling、Runway Gen-3)的核心秘密。
首先需要澄清一个关键概念:目前的视频生成模型并没有真正“理解”物理定律(它们不知道什么是重力、摩擦力或牛顿第三定律)。
相反,它们是通过海量数据中的统计规律,隐式地学习到了物理世界的表象。这被称为“隐式物理建模”。
以下是视频模型如何“假装”懂物理的几种核心技术手段:
1. 时空一致性建模 (Spatio-Temporal Modeling)
这是最基础的手段。模型通过观察数百万个视频片段,学习到“物体在时间轴上是如何变化的”。
- 3D Patch Embedding:
- 在图片模型中,图像被切成 2D 方块(Patch)。
- 在视频模型中,视频被切成 3D 立方体(高度×宽度×时间)。
- Transformer 的注意力机制(Attention)不仅关注空间上的邻居(左边像素和右边像素的关系),还关注时间上的邻居(第 1 帧的猫和第 2 帧的猫的关系)。
- 效果:如果模型见过很多“球落地反弹”的视频,它就会计算出:当球向下运动接触地面后,下一时刻大概率会向上运动。它不懂“弹性势能”,但它知道“这种像素模式后面通常跟着那种像素模式”。
2. 世界模拟器假说 (World Simulator Hypothesis)
OpenAI 在 Sora 的技术报告中提出,随着模型规模增大和数据量增加,扩散模型开始表现出世界模拟器的特征。
- 长程依赖(Long-range Dependency):
- 通过极大的上下文窗口(Context Window),模型可以“记住”很久之前发生的事。
- 例如:一个人走进房间,关上灯,房间变黑。模型必须记住“灯关了”这个状态,并在后续几十秒内保持房间黑暗,而不是突然又变亮。
- 对象持久性(Object Permanence):
- 当一个物体被遮挡(比如人走到树后面),模型需要根据之前的记忆,预测它从树另一侧出来时的样子(衣服颜色、体型不变)。
- 这是通过潜空间(Latent Space)的记忆机制实现的。潜变量携带了物体的语义信息,即使像素不可见,语义信息仍在流动。
3. 引入显式物理约束 (Explicit Physical Constraints)
为了弥补纯数据驱动的不足,一些先进模型开始尝试将物理知识“硬编码”或“软引导”进模型中:
- 深度图与法线图辅助 (Depth/Normal Maps):
- 在生成视频时,模型可能同时生成每一帧的深度图(表示距离远近)。
- 如果深度图显示地面是平的,那么生成的像素就必须符合透视关系;如果深度图显示物体在移动,像素流动必须符合光流(Optical Flow)规律。
- 物理引擎耦合 (Physics Engine Coupling):
- 部分研究(如 NVIDIA 的一些工作)尝试将传统的物理引擎(如 PhysX)与生成模型结合。
- 流程:先用物理引擎模拟简单的刚体运动(得到粗略轨迹),再用扩散模型根据这个轨迹生成逼真的纹理和细节。这样既保证了物理正确性,又保证了视觉真实感。
- 损失函数约束:
- 在训练时,除了像素级的 Loss,还加入光流平滑 Loss 或 动力学一致性 Loss。如果生成的视频中物体瞬间 teleport(瞬移),Loss 会惩罚模型,迫使它学习连续运动。
4. 大规模视频数据的“暴力美学”
这是目前最有效的方法。只要数据足够多,统计规律就会逼近物理定律。
- 例子:
- 模型看了 100 万段“水倒入杯子”的视频。
- 它观察到:水总是从上往下流,水面会波动,溅起的水珠会回落。
- 虽然它不懂流体力学方程(Navier-Stokes equations),但它学到的概率分布恰好符合流体力学的结果。
- Sora 的突破:
- Sora 之所以能生成复杂的镜头运动(如无人机环绕拍摄),是因为它在训练数据中见到了各种各样的相机运动模式,并学会了将这些运动模式与场景内容解耦。
5. 当前的局限性(为什么还会出错?)
尽管模型看起来很懂物理,但在极端情况下还是会露馅:
- 复杂交互失效:比如两个人打架,肢体容易穿模(因为模型没学过“固体不可穿透”这一硬性规则,只学过“看起来像打架”的像素模式)。
- 因果逻辑错误:比如玻璃杯掉在地上,有时碎了,有时没碎,有时甚至悬浮。因为模型只是在预测“下一个最可能的像素”,而不是模拟“必然的物理结果”。
- 长视频崩坏:随着时间推移,累积的微小误差会导致物理状态漂移(比如车开着开着轮子不见了)。
总结:它是如何建模的?
| 方法 | 原理 | 比喻 |
|---|---|---|
| 隐式学习 | 通过海量视频数据,统计像素在时空中的变化规律 | 像一个看过无数电影的观众,凭直觉知道“接下来该发生什么” |
| 时空注意力 | Transformer 同时关注空间相邻和时间相邻的块 | 像画家画画时,不仅看左右,还回想上一笔是怎么画的 |
| 潜空间记忆 | 在压缩的潜变量中保留物体语义 | 像大脑记住了“那里有个人”,即使他暂时被墙挡住 |
| 显式辅助 | 结合深度图、光流或物理引擎 | 像画家打草稿时用尺子画直线,保证结构不错 |
未来方向:
真正的突破将来自于神经符号系统(Neuro-Symbolic AI)或世界模型(World Models)的结合——即让 AI 既拥有扩散模型的生成能力,又拥有类似物理引擎的逻辑推理能力。那时,AI 生成的视频将不再仅仅是“看起来真”,而是“逻辑上真”。
世界模型是解决什么问题的,目前发展的程度如何
世界模型(World Models) 是人工智能领域目前最前沿、也被认为是最接近 AGI(通用人工智能)的核心概念之一。
简单来说,如果说现在的 AI(如 LLM 或扩散模型)是“鹦鹉”(只会模仿和预测下一个词/像素),那么世界模型的目标是让 AI 成为“物理学家”或“棋手”——它不仅能模仿表象,还能在脑海中构建一个对现实世界的内部模拟引擎,从而理解因果关系、进行推理和规划。
1. 世界模型主要解决什么问题?
目前的 AI(包括大语言模型和视频生成模型)存在几个致命缺陷,世界模型旨在解决这些问题:
A. 解决“缺乏因果理解”的问题
- 现状:LLM 知道“玻璃杯掉地上会碎”,是因为它在文本中见过这句话的概率很高。但它不懂“重力”和“脆性”。如果你问它“如果在月球上掉玻璃杯会怎样”,它可能答对,也可能胡扯,因为它没有物理引擎。
- 世界模型的目标:AI 内部有一个模拟器,它能推演:“施加力 -> 物体加速 -> 碰撞 -> 能量释放 -> 破碎”。它理解因果链条,而不仅仅是统计相关性。
B. 解决“长程规划与推理”的问题
- 现状:让 AI 玩复杂的策略游戏(如星际争霸)或控制机器人做饭,LLM 很难做到,因为它无法预判未来几步的后果。
- 世界模型的目标:AI 可以在脑海中“想象”未来的多种可能性(Look-ahead)。
- “如果我向左转,可能会撞墙;如果向右转,路径通畅。”
- 通过在内部模拟中试错,选出最优解,再执行动作。这就是**基于模型的强化学习(Model-Based RL)。
C. 解决“数据效率低下”的问题
- 现状:训练一个自动驾驶模型需要数百万英里的真实道路数据,因为每次出错成本太高。
- 世界模型的目标:AI 可以在内部的虚拟世界中无限次地“做梦”或“模拟”,从模拟经验中学习,只需少量真实数据微调即可。这极大地降低了训练成本和安全风险。
D. 解决“视频生成的逻辑崩坏”问题
- 现状:Sora 生成的视频中,人吃东西时食物不会减少,或者物体突然消失。
- 世界模型的目标:因为理解了“物质守恒”和“物体持久性”,生成的视频将符合物理逻辑,而不仅仅是视觉逼真。
2. 世界模型的核心架构
一个完整的世界模型通常包含三个部分(参考 Yann LeCun 提出的 JEPA 架构或经典 World Models 论文):
- 状态编码器(State Encoder):
- 将观察到的复杂世界(视频帧、传感器数据)压缩成一个抽象的、简洁的“状态向量”(State Vector)。
- 比如:把“一辆红色特斯拉以 60km/h 行驶”压缩成一组数字。
- 动态模型(Dynamics Model / Predictor):
- 这是核心引擎。它预测:当前状态 + 动作 = 下一个状态。
- 比如:输入“当前车速60”+“踩刹车”,预测出“下一时刻车速50”。
- 价值/奖励模型(Value/Reward Model):
- 判断这个状态是好是坏。
- 比如:“车速过快且前方有行人” = 高危险值(负奖励)。
3. 目前发展到什么程度了?
世界模型目前处于“早期爆发期”,不同领域进展不一:
A. 游戏领域(最成熟)
- 代表:DeepMind 的 MuZero, NVIDIA 的 GameGAN。
- 现状:AI 已经可以在没有游戏规则说明书的情况下,通过观看 gameplay 视频,自己学会玩 Atari 游戏、围棋、星际争霸。
- 水平:在封闭、规则明确的环境中,世界模型已经超越了人类顶尖选手。它能完美模拟游戏物理引擎。
B. 自动驾驶与机器人(快速进步)
- 代表:Tesla FSD V12 (端到端神经网络,隐含世界模型特性), Wayve, NVIDIA Drive Sim。
- 现状:
- Tesla 正在从“规则驱动”转向“端到端神经网络”,其本质是一个巨大的视频预测模型。它通过预测下一帧画面来辅助驾驶决策。
- Wayve 等公司正在训练专门的驾驶世界模型,让车在虚拟城市中模拟数百万公里的极端情况(Corner Cases)。
- 水平:能处理大部分日常驾驶,但在极端复杂的社会交互(如眼神交流、博弈)中仍不如人类老司機。
C. 视频生成作为世界模型(前沿探索)
- 代表:OpenAI Sora, Google Genie。
- 现状:
- OpenAI 明确表示 Sora 是一个“世界模拟器”的雏形。它能模拟简单的物理互动(如雪地脚印、玻璃破碎)。
- Google DeepMind 发布的 Genie 是一个基础世界模型,它可以仅从互联网视频中学习,然后让用户通过按键“玩”生成的虚拟环境(虽然画质粗糙,但具备可交互性)。
- 水平:视觉极其逼真,但物理逻辑仍有瑕疵(幻觉)。它更多是“看起来像”世界模型,而非真正的因果推理引擎。
D. 通用认知架构(理论阶段)
- 代表:Yann LeCun (Meta 首席科学家) 提出的 JEPA (Joint Embedding Predictive Architecture)。
- 现状:LeCun 认为当前的 LLM 走错了路(只预测下一个词,不理解世界)。他主张构建抽象的世界模型,忽略无关细节(如纹理),只关注物体间的关系和运动。
- 水平:仍在实验室阶段,尚未出现大规模的开源或商业产品。
4. 关键挑战与瓶颈
- 抽象能力的缺失:
- 目前的视频模型(如 Sora)是在像素级别模拟,计算量巨大且容易受噪音干扰。真正的人类智能是在抽象概念级别模拟世界(我们不需要模拟每个原子的运动就能知道球会落地)。如何从像素中提取抽象因果规律,仍是难题。
- 长_horizon_ 预测的发散:
- 在内部模拟中,每一步的微小误差会在多步之后累积放大,导致“幻想”越来越离谱。如何保持长期模拟的稳定性是关键。
- 多模态对齐:
- 世界模型需要同时理解视觉、听觉、触觉、语言。目前的多模态模型往往是拼接式的,而非深度融合的。
总结
- 世界模型解决的是 AI 的“智商”问题:从“记忆与模仿”进化到“理解与推理”。
- 当前程度:
- 在游戏和特定任务中已非常强大。
- 在视频生成中展现了初步的物理模拟能力(Sora)。
- 在通用机器人和自动驾驶中正处于从“感知”向“认知决策”过渡的关键期。
未来展望:
一旦世界模型技术成熟,AI 将不再需要海量标注数据。它可以像人类婴儿一样,通过观察和少量的互动,在脑海中构建世界模型,从而快速学会任何新技能。这被认为是实现 AGI 的最可行路径之一。
十一、U-Net 网络
这是一份关于 U-Net 网络及其与普通卷积神经网络(CNN)区别的深度解析。我们在保留核心逻辑的基础上,增加了技术细节、原理解析和实际应用背景,使其更加丰满和具有参考价值。
第一部分:U-Net 网络深度解析
1. 起源与背景
- 提出时间/人物:2015年,由 Olaf Ronneberger 等人在 MICCAI 会议上发表。
- 初衷:专为生物医学图像分割设计。医学图像(如细胞显微镜图、CT/MRI)通常标注数据极少,且对边缘精度要求极高。U-Net 旨在用少量数据实现高精度的像素级分类。
- 地位:它是语义分割领域的“Hello World”级别模型,也是后来许多变体(如 UNet++, Attention U-Net, 3D U-Net)的基础。
2. 架构详解:为什么叫“U”?
U-Net 的结构完全对称,由左边的收缩路径(Encoder)和右边的扩张路径(Decoder)组成,中间通过跳跃连接(Skip Connections)桥接。
A. 左路:收缩路径 (Contracting Path / Encoder)
- 功能:捕获上下文信息(Context),即识别“图像中有什么物体”。
- 操作:
- 重复使用两个 \(3\times3\) 卷积层(每个后接 ReLU 激活函数)。
- 接着是一个 \(2\times2\) 的最大池化层(Max Pooling),步长为 2。
- 效果:每次池化,特征图的长宽减半,通道数(Feature Channels)翻倍。
- 结果:随着层数加深,图像的空间分辨率降低,但语义特征越来越抽象和高级。
B. 右路:扩张路径 (Expansive Path / Decoder)
- 功能:实现精确定位(Localization),即确定“物体在哪个像素位置”。
- 操作:
- 使用上采样(Up-sampling):通常采用转置卷积(Transposed Convolution)或双线性插值,将特征图长宽放大 2 倍,通道数减半。
- 接着进行卷积操作,逐步细化特征。
- 结果:特征图逐渐恢复到原始输入图像的尺寸。
C. 核心灵魂:跳跃连接 (Skip Connections)
这是 U-Net 最创新的设计。
- 问题:在 Encoder 阶段,经过多次池化,图像的空间细节(如边缘、纹理)严重丢失。如果直接让 Decoder 从最深层的低分辨率特征开始恢复,生成的边界会非常模糊。
- 解决方案:将 Encoder 每一层输出的高分辨率特征图,裁剪并拼接(Concatenate)到 Decoder 对应的层上。
- 作用:
- Decoder 既拥有来自深层的高级语义信息(知道这是猫耳朵),又拥有来自浅层的低级空间信息(知道耳朵的具体边缘在哪里)。
- 这种“特征融合”使得 U-Net 能够输出极其精准的分割掩码。
3. 在生成式 AI (Stable Diffusion) 中的演变
虽然原始 U-Net 用于分割,但在扩散模型中,它的角色发生了本质变化:
- 任务转变:从“分割像素”变为“预测噪声”。它接收带噪的潜变量(Latent),预测其中包含的噪声分布。
- 结构升级:
- 引入了 ResNet Block(残差块)以训练更深的网络。
- 引入了 Attention Mechanism(注意力机制):
- Self-Attention:捕捉图像内部的全局依赖关系。
- Cross-Attention:将文本提示词(Prompt)嵌入到图像生成过程中,实现“文生图”。
- 工作空间:不再处理原始像素,而是在压缩的潜空间(Latent Space)运行,大幅降低了计算成本。
第二部分:U-Net vs. 普通卷积网络 (CNN) 深度对比
为了清晰区分,我们将“普通 CNN”定义为经典的图像分类网络(如 VGG16, ResNet50),将 U-Net 定义为语义分割网络。
1. 任务目标的根本差异
| 特性 | 普通 CNN (分类) | U-Net (分割) |
|---|---|---|
| 核心问题 | What? (这是什么?) | Where & What? (这是什么?且精确轮廓在哪?) |
| 输出形式 | 向量 (Vector):例如 [0.1, 0.9] 表示是猫的概率为 90%。 |
矩阵/地图 (Map):与输入图像同尺寸的矩阵,每个像素有一个类别标签。 |
| 粒度 | 图像级 (Image-level):整张图一个标签。 | 像素级 (Pixel-level):每个像素一个标签。 |
2. 网络结构的本质区别
A. 信息流向与空间维度
- 普通 CNN (漏斗型):
- 只下采样,不上采样。
- 输入 \(224\times224\times3\) \(\rightarrow\) ... \(\rightarrow\) \(7\times7\times512\) \(\rightarrow\) Flatten \(\rightarrow\) \(1\times1\times1000\)。
- 关键点:最后通过全连接层(FC)将空间信息彻底压扁。一旦进入 FC 层,像素的位置关系就永久丢失了。
- U-Net (对称型):
- 先下采样,后上采样。
- 输入 \(512\times512\times3\) \(\rightarrow\) Encoder 压缩 \(\rightarrow\) Bottleneck \(\rightarrow\) Decoder 放大 \(\rightarrow\) 输出 \(512\times512\times1\)。
- 关键点:全程保持空间结构,最终输出必须还原回原始分辨率。
B. 感受野与细节的权衡
- 普通 CNN:追求巨大的全局感受野。它需要看到整只猫才能判断它是猫,不在乎猫尾巴的具体像素坐标。
- U-Net:需要多尺度感受野。
- 深层特征提供全局语境(避免把白色背景误判为白猫)。
- 浅层特征提供局部细节(精确勾勒猫毛的边缘)。
- 跳跃连接正是为了平衡这两者。
3. 损失函数 (Loss Function) 的不同
- 普通 CNN:通常使用 Cross-Entropy Loss (交叉熵),比较预测的概率分布和真实标签。
- U-Net:通常使用 Pixel-wise Cross-Entropy 或 Dice Loss。
- Dice Loss 专门针对分割任务优化,特别适用于前景(物体)和背景比例极度不平衡的情况(如医学图像中肿瘤只占很小一部分)。
4. 为什么普通 CNN 不能直接做分割?
如果你强行去掉普通 CNN 的全连接层,试图让它输出特征图:
- 分辨率太低:经过 5 次池化,\(224\times224\) 的图片变成了 \(7\times7\) 的特征图。你无法从中还原出 \(224\times224\) 的精细轮廓。
- 边界模糊:没有浅层细节的补充,物体的边缘会是锯齿状或模糊的一团。
- U-Net 的解决之道:通过上采样恢复尺寸,通过跳跃连接找回细节。
第三部分:总结与应用建议
1. 形象比喻
- 普通 CNN 像“鉴宝专家”:
- 他看一眼古董,说:“这是清代的瓷器。”
- 他不需要知道瓷器上的花纹具体在哪个坐标,只需要整体判断真伪和年代。
- U-Net 像“法医绘图师”:
- 他不仅要认出这是指纹,还要在纸上一比一地描绘出指纹的每一条纹路、每一个断点。
- 他需要一边看整体纹路走向(Encoder),一边对照高清显微镜下的细节(Skip Connection),才能画得准确。
2. 选型指南
- 选普通 CNN (ResNet/EfficientNet/VGG):
- 任务:图像分类、目标检测的分类头、图像检索。
- 需求:速度快,只需要知道类别,不需要像素级位置。
- 选 U-Net (及其变体):
- 任务:医学图像分割(肿瘤、器官)、卫星地图道路提取、工业缺陷检测、AI 绘画去噪骨干。
- 需求:需要精确的物体轮廓、形状、位置,或者需要生成与输入同尺寸的密集预测图。
3. 未来趋势
虽然 U-Net 是经典,但在最新的前沿研究中:
- Transformer 崛起:Swin-UNet 等结合 Transformer 的架构正在取代纯卷积 U-Net,因为 Transformer 能更好地捕捉长距离依赖。
- Diffusion 替代:在生成领域,DiT (Diffusion Transformer) 正在挑战 U-Net 的地位,但在当前主流应用(如 SD 1.5/SDXL)中,U-Net 依然是绝对主力。

浙公网安备 33010602011771号