Sora 深度解析:AIGC 领域的内容生成新范式
关键词:Sora、AIGC、视频生成、扩散模型、多模态生成、时序建模、内容创作
摘要:OpenAI 推出的 Sora 作为 AIGC 领域的里程碑式产品,重新定义了视频内容生成的范式。本文将从技术架构、核心算法、数学原理、实战应用等维度深度解析 Sora 的创新点,揭示其如何突破传统视频生成的瓶颈(如长时序连贯性、多模态控制精度),并探讨其对内容创作、影视工业、元宇宙等领域的颠覆性影响。全文结合理论推导、代码示例与行业案例,为读者提供从技术原理到应用实践的完整认知框架。
1. 背景介绍
1.1 目的和范围
随着 AIGC(人工智能生成内容)技术的爆发式发展,文本、图像生成已进入成熟阶段,但视频生成始终面临长时序连贯性差、多模态控制精度低、计算成本高三大核心挑战。Sora 的发布标志着视频生成从“片段级”向“叙事级”跨越,其技术突破对 AIGC 领域具有范式革新意义。本文将聚焦 Sora 的技术原理、算法创新及行业影响,覆盖从模型架构到实际应用的全链路解析。
1.2 预期读者
本文适合以下三类读者:
- AI 研究者/开发者:希望深入理解视频生成模型的技术细节(如时序扩散、多模态对齐);
- 内容创作者/产品经理:关注 Sora 对创作流程的重构及商业化场景;
- 技术爱好者:希望建立对 AIGC 前沿技术的系统性认知。
1.3 文档结构概述
本文结构如下:
- 第 2 章:解析 Sora 的核心概念与技术架构;
- 第 3 章:深入讲解其核心算法(如时间扩散模型、多尺度上下文建模);
- 第 4 章:通过数学公式推导模型的概率生成逻辑;
- 第 5 章:基于开源框架模拟 Sora 类似功能的实战代码;
- 第 6 章:分析 Sora 在影视、游戏、教育等领域的应用场景;
- 第 7 章:推荐学习资源与开发工具;
- 第 8 章:展望视频生成技术的未来趋势与挑战。
1.4 术语表
1.4.1 核心术语定义
- 扩散模型(Diffusion Model):通过逐步添加噪声(前向过程)和去噪(反向过程)学习数据分布的生成模型;
- 多模态生成:基于文本、图像、音频等多种输入模态生成目标内容(如视频);
- 时序建模:处理视频中帧与帧之间的时间依赖关系;
- 条件控制(Conditioning):通过输入指令(如文本、关键点)引导生成内容的细节。
1.4.2 相关概念解释
- 长视频生成:生成时长超过 1 分钟且情节连贯的视频(传统模型多生成 5-10 秒片段);
- 帧间一致性:相邻帧在内容(如物体位置、光照)上的连续性;
- 可控生成:用户通过自然语言指令精确控制视频的场景、动作、风格等。
1.4.3 缩略词列表
- AIGC:Artificial Intelligence Generated Content(人工智能生成内容);
- DDPM:Denoising Diffusion Probabilistic Models(去噪扩散概率模型);
- VQ-VAE:Vector Quantized Variational Autoencoder(向量量化变分自编码器);
- CLIP:Contrastive Language-Image Pretraining(对比语言-图像预训练)。
2. 核心概念与联系
Sora 的核心创新在于将扩散模型从静态图像扩展到动态视频,并通过多尺度时序建模实现长视频的连贯生成。其技术架构可分为四大模块:多模态输入解析、时间扩散模型、多尺度上下文融合、条件控制模块(如图 1 所示)。
2.1 技术架构概览
图 1:Sora 技术架构流程图
- 多模态输入:支持文本(“一只橘猫在樱花树下追蝴蝶”)、图像(参考风格图)、关键帧(用户绘制的分镜)等;
- 输入解析模块:将多模态输入编码为统一的特征向量(如使用 CLIP 处理文本-图像对齐);
- 时间扩散模型:在时间维度上扩展扩散过程,处理帧间依赖;
- 多尺度上下文融合:同时建模局部帧(如 8 帧)和全局序列(如 64 帧)的上下文;
- 条件控制模块:通过注意力机制将输入条件与生成过程动态绑定,实现细节控制(如调整蝴蝶的飞行轨迹)。
2.2 关键技术联系
Sora 的突破依赖以下技术的协同:
- 扩散模型的时间扩展:传统图像扩散模型仅处理空间维度(H×W×C),Sora 增加时间维度(T×H×W×C),通过时间嵌入(Time Embedding)捕捉时序特征;
- 多尺度建模:通过分层扩散(如先生成低帧率草稿,再细化高帧率细节)平衡生成效率与质量;
- 条件控制的动态性:区别于静态条件(如固定文本提示),Sora 支持“过程中控制”(如生成到第 10 秒时调整光照)。
3. 核心算法原理 & 具体操作步骤
Sora 的核心算法可概括为时间扩散模型(Temporal Diffusion Model, TDM),其通过扩展 DDPM 的前向/反向过程,实现视频的时序生成。以下从算法原理、步骤分解、代码示例三方面展开。
3.1 时间扩散模型原理
传统 DDPM 的前向过程向图像
x
0
x_0
x0 逐步添加高斯噪声,得到
x
1
,
x
2
,
.
.
.
,
x
T
x_1, x_2, ..., x_T
x1,x2,...,xT,满足
x
t
=
α
t
x
t
−
1
+
1
−
α
t
ϵ
x_t = \sqrt{\alpha_t}x_{t-1} + \sqrt{1-\alpha_t}\epsilon
xt=αtxt−1+1−αtϵ(
ϵ
∼
N
(
0
,
I
)
\epsilon \sim \mathcal{N}(0, I)
ϵ∼N(0,I))。
Sora 的 TDM 将这一过程扩展到视频序列
X
=
{
x
0
,
x
1
,
.
.
.
,
x
T
−
1
}
X = \{x_0, x_1, ..., x_{T-1}\}
X={x0,x1,...,xT−1}(每帧
x
i
x_i
xi 为 H×W×C 的图像),前向过程同时在空间和时间维度添加噪声:
X
t
=
α
t
X
t
−
1
+
1
−
α
t
ϵ
t
X_t = \sqrt{\alpha_t}X_{t-1} + \sqrt{1-\alpha_t}\epsilon_t
Xt=αtXt−1+1−αtϵt
其中
ϵ
t
\epsilon_t
ϵt 是时空相关的噪声场(时间相邻帧的噪声更相似,模拟真实视频的动态变化)。
反向过程(生成过程)则通过去噪网络
f
θ
(
X
t
,
t
,
c
)
f_\theta(X_t, t, c)
fθ(Xt,t,c) 预测噪声
ϵ
θ
\epsilon_\theta
ϵθ,并迭代恢复清晰视频:
X
t
−
1
=
1
α
t
(
X
t
−
1
−
α
t
1
−
α
ˉ
t
ϵ
θ
)
X_{t-1} = \frac{1}{\sqrt{\alpha_t}}\left(X_t - \frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon_\theta\right)
Xt−1=αt1(Xt−1−αˉt1−αtϵθ)
其中
α
ˉ
t
=
∏
i
=
1
t
α
i
\bar{\alpha}_t = \prod_{i=1}^t \alpha_i
αˉt=∏i=1tαi 是累积方差衰减因子,
c
c
c 是多模态条件输入(如文本特征)。
3.2 算法步骤分解
- 输入编码:将文本/图像输入通过 CLIP 编码器转换为条件特征 c c c;
- 初始化噪声视频:生成随机噪声序列 X T ∼ N ( 0 , I ) X_T \sim \mathcal{N}(0, I) XT∼N(0,I);
- 反向扩散迭代(从
t
=
T
t=T
t=T 到
t
=
1
t=1
t=1):
- 将 X t X_t Xt、时间步 t t t、条件特征 c c c 输入去噪网络 f θ f_\theta fθ;
- 预测噪声 ϵ θ = f θ ( X t , t , c ) \epsilon_\theta = f_\theta(X_t, t, c) ϵθ=fθ(Xt,t,c);
- 更新 X t − 1 X_{t-1} Xt−1(公式如上);
- 输出视频:当 t = 0 t=0 t=0 时, X 0 X_0 X0 即为生成的清晰视频。
3.3 Python 代码示例(简化版)
以下是基于 PyTorch 的时间扩散模型核心代码模拟(省略部分工程细节):
import torch
import torch.nn as nn
import numpy as np
class TimeEmbedding(nn.Module):
"""时间嵌入层,编码时间步信息"""
def __init__(self, dim):
super().__init__()
self.dim = dim
self.linear = nn.Linear(dim, dim)
def forward(self, t):
# 正弦位置编码生成时间特征
half_dim = self.dim // 2
emb = np.log(10000) / (half_dim - 1)
emb = torch.exp(torch.arange(half_dim, device=t.device) * -emb)
emb = t[:, None] * emb[None, :]
emb = torch.cat((emb.sin(), emb.cos()), dim=-1)
return self.linear(emb)
class TemporalUNet(nn.Module):
"""时间扩散模型的去噪网络(简化版)"""
def __init__(self, in_channels, out_channels, time_dim):
super().__init__()
self.time_embedding = TimeEmbedding(time_dim)
# 时空卷积层(同时处理空间和时间维度)
self.conv1 = nn.Conv3d(in_channels, 64, kernel_size=(3, 3, 3), padding=1) # T×H×W×C
self.conv2 = nn.Conv3d(64, 128, kernel_size=(3, 3, 3), padding=1)
self.conv_out = nn.Conv3d(128, out_channels, kernel_size=(1, 1, 1))
def forward(self, x, t, c):
# 融合时间特征和条件特征
time_emb = self.time_embedding(t)
time_emb = time_emb[:, None, None, None] # 扩展为时空维度
x = x + time_emb # 时间信息注入
x = self.conv1(x)
x = self.conv2(x)
# 条件特征(如文本)通过注意力机制融合(此处简化为相加)
x = x + c.unsqueeze(1).unsqueeze(1).unsqueeze(1) # c: [B, C] → [B, 1, 1, 1, C]
return self.conv_out(x)
class SoraDiffusionModel(nn.Module):
def __init__(self, in_channels=3, time_dim=256):
super().__init__()
self.unet = TemporalUNet(in_channels, in_channels, time_dim)
# 预计算扩散参数(α_t, ᾱ_t 等)
self.betas = torch.linspace(0.0001, 0.02, 1000) # 1000 时间步
self.alphas = 1 - self.betas
self.alphas_cumprod = torch.cumprod(self.alphas, dim=0)
def forward(self, x0, c):
"""前向过程(训练时使用)"""
t = torch.randint(0, 1000, (x0.shape[0],), device=x0.device)
sqrt_alpha_cumprod = torch.sqrt(self.alphas_cumprod[t])[:, None, None, None, None]
sqrt_one_minus_alpha_cumprod = torch.sqrt(1 - self.alphas_cumprod[t])[:, None, None, None, None]
noise = torch.randn_like(x0)
xt = sqrt_alpha_cumprod * x0 + sqrt_one_minus_alpha_cumprod * noise
# 预测噪声
pred_noise = self.unet(xt, t, c)
return pred_noise, noise # 计算损失(MSE)
def sample(self, c, video_length=16, H=256, W=256):
"""反向过程(生成视频)"""
device = c.device
x = torch.randn((c.shape[0], video_length, 3, H, W), device=device) # [B, T, C, H, W]
for t in reversed(range(1000)):
t_tensor = torch.full((c.shape[0],), t, device=device)
pred_noise = self.unet(x, t_tensor, c)
alpha_t = self.alphas[t]
alpha_bar_t = self.alphas_cumprod[t]
# 计算去噪后的 x_{t-1}
x = (x - (1 - alpha_t) / torch.sqrt(1 - alpha_bar_t) * pred_noise) / torch.sqrt(alpha_t)
# 可选:添加少量噪声(提高多样性)
if t > 0:
x += torch.sqrt(self.betas[t]) * torch.randn_like(x)
return x # 生成的视频序列
代码解读:
TimeEmbedding
层通过正弦位置编码捕获时间步信息,解决视频的时序建模问题;TemporalUNet
使用 3D 卷积(时间+空间维度)处理视频序列,同时融合时间特征和条件特征;SoraDiffusionModel
实现前向(训练)和反向(生成)过程,其中反向过程通过迭代去噪生成连贯视频。
4. 数学模型和公式 & 详细讲解 & 举例说明
4.1 扩散过程的概率模型
Sora 的时间扩散模型可形式化为马尔可夫链,前向过程的联合概率为:
p
forward
(
X
1
:
T
∣
X
0
)
=
∏
t
=
1
T
p
(
X
t
∣
X
t
−
1
)
p_\text{forward}(X_{1:T} | X_0) = \prod_{t=1}^T p(X_t | X_{t-1})
pforward(X1:T∣X0)=t=1∏Tp(Xt∣Xt−1)
其中每一步转移概率
p
(
X
t
∣
X
t
−
1
)
=
N
(
X
t
;
α
t
X
t
−
1
,
(
1
−
α
t
)
I
)
p(X_t | X_{t-1}) = \mathcal{N}(X_t; \sqrt{\alpha_t}X_{t-1}, (1-\alpha_t)I)
p(Xt∣Xt−1)=N(Xt;αtXt−1,(1−αt)I)。
反向过程需要学习后验概率
p
(
X
t
−
1
∣
X
t
,
c
)
p(X_{t-1} | X_t, c)
p(Xt−1∣Xt,c),通过贝叶斯定理近似为:
p
(
X
t
−
1
∣
X
t
,
c
)
≈
q
(
X
t
−
1
∣
X
t
,
X
0
)
=
N
(
X
t
−
1
;
μ
t
(
X
t
,
X
0
)
,
Σ
t
)
p(X_{t-1} | X_t, c) \approx q(X_{t-1} | X_t, X_0) = \mathcal{N}(X_{t-1}; \mu_t(X_t, X_0), \Sigma_t)
p(Xt−1∣Xt,c)≈q(Xt−1∣Xt,X0)=N(Xt−1;μt(Xt,X0),Σt)
其中均值
μ
t
\mu_t
μt 和方差
Σ
t
\Sigma_t
Σt 可通过重参数化推导(具体公式见 DDPM 论文)。
4.2 损失函数设计
训练目标是最小化负对数似然的变分下界(ELBO):
L
≈
E
t
,
X
0
,
ϵ
[
∥
ϵ
−
ϵ
θ
(
X
t
,
t
,
c
)
∥
2
]
\mathcal{L} \approx \mathbb{E}_{t, X_0, \epsilon} \left[ \|\epsilon - \epsilon_\theta(X_t, t, c)\|^2 \right]
L≈Et,X0,ϵ[∥ϵ−ϵθ(Xt,t,c)∥2]
即预测噪声与真实噪声的均方误差(MSE)。
4.3 举例说明:多尺度时序建模
Sora 采用多尺度扩散策略,例如:
- 粗尺度生成:以 4 帧/秒(fps)生成低帧率草稿,捕捉全局动作(如“猫起跳”);
- 细尺度细化:在粗尺度基础上,以 24 fps 填充中间帧,优化细节(如“猫爪的伸展角度”)。
数学上,这对应分层的扩散过程,每一层的时间步 t t t 对应不同的分辨率,通过跨尺度注意力机制传递上下文信息。
5. 项目实战:代码实际案例和详细解释说明
由于 Sora 尚未完全开源,本实战基于开源视频生成框架 VideoLDM(类似 Sora 的扩散模型架构),演示如何实现“文本到视频”的生成。
5.1 开发环境搭建
步骤 1:安装依赖
conda create -n video_ldm python=3.8 -y
conda activate video_ldm
pip install torch==2.0.0+cu117 torchvision==0.15.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
pip install diffusers==0.21.0 transformers==4.31.0 accelerate==0.21.0
步骤 2:下载预训练模型
from diffusers import VideoLDMPipeline
# 加载预训练的 VideoLDM 模型(类似 Sora 的简化版)
pipeline = VideoLDMPipeline.from_pretrained("cerspense/zeroscope_v2_576w", torch_dtype=torch.float16)
pipeline.to("cuda")
5.2 源代码详细实现和代码解读
import torch
from diffusers import VideoLDMPipeline
def generate_video(prompt, num_frames=24, video_length=4):
"""
基于文本生成视频的函数
:param prompt: 文本提示(如“一只橘猫在樱花树下追蝴蝶”)
:param num_frames: 总帧数
:param video_length: 视频时长(秒),用于计算帧率(fps=num_frames/video_length)
:return: 生成的视频帧列表(H×W×3 的 numpy 数组)
"""
# 配置生成参数(模拟 Sora 的条件控制)
pipeline = VideoLDMPipeline.from_pretrained("cerspense/zeroscope_v2_576w", torch_dtype=torch.float16)
pipeline.to("cuda")
# 生成视频(简化版,实际 Sora 支持更复杂的控制)
with torch.inference_mode():
video_frames = pipeline(
prompt=prompt,
num_frames=num_frames,
height=320,
width=576,
num_inference_steps=50 # 扩散步数(越多质量越高,速度越慢)
).frames
return video_frames
# 示例调用
prompt = "一只橘猫在樱花树下追蝴蝶,背景有微风,花瓣轻轻飘落"
video_frames = generate_video(prompt, num_frames=96, video_length=4) # 24 fps,4 秒视频
# 保存为 GIF(实际应用中可转 MP4)
from PIL import Image
video_frames[0].save("cat_butterfly.gif", save_all=True, append_images=video_frames[1:], duration=41, loop=0)
5.3 代码解读与分析
- 模型加载:
VideoLDMPipeline
基于扩散模型,支持文本到视频的生成; - 参数配置:
num_frames
控制总帧数,height/width
调整分辨率,num_inference_steps
影响生成质量(Sora 可能使用更多步数以提升细节); - 条件控制:通过
prompt
参数传递文本指令,模型通过 CLIP 编码器将文本转换为条件特征,引导视频生成; - 输出处理:生成的
video_frames
是 PIL 图像列表,可保存为 GIF 或转换为 MP4(需使用imageio
等库)。
注意:VideoLDM 的生成能力与 Sora 仍有差距(如长视频连贯性、细节控制),但通过此代码可体验类似的扩散生成逻辑。
6. 实际应用场景
Sora 的颠覆性在于将视频生成从“专业工具”变为“通用能力”,以下是其核心应用场景:
6.1 影视制作:从分镜到成片的全流程加速
- 分镜生成:导演输入“中景,主角在雨夜奔跑,灯光冷蓝”,Sora 直接生成动态分镜;
- 特效替代:无需绿幕拍摄,直接生成虚拟场景(如外星城市、恐龙森林);
- 补拍修复:演员无法到场时,通过关键帧+文本指令生成替代片段。
6.2 游戏开发:动态剧情与NPC行为生成
- 动态过场动画:根据玩家选择(如“主角选择帮助村民”),Sora 实时生成定制化过场;
- NPC 行为库:生成大量 NPC 日常动作(如“商人摆摊”“小孩玩耍”),丰富游戏世界。
6.3 教育与培训:沉浸式课件制作
- 历史重现:输入“1949 年开国大典,天安门广场,群众欢呼”,生成动态历史场景;
- 科学可视化:生成“地球板块运动”“细胞分裂”等复杂过程的动画,辅助教学。
6.4 广告营销:个性化内容批量生产
- 定制广告:根据用户画像(如“25 岁女性,喜欢美妆”)生成“XX 口红在阳光下的使用效果”视频;
- 多语言适配:输入“法语+巴黎街景”,生成本地化广告片段,降低翻译成本。
7. 工具和资源推荐
7.1 学习资源推荐
7.1.1 书籍推荐
- 《Deep Learning》(Ian Goodfellow):第 20 章详细讲解生成模型(包括扩散模型);
- 《Generative Deep Learning》(David Foster):实践导向,涵盖图像/视频生成的代码示例;
- 《Diffusion Models from Scratch》(Daniel Bourke):聚焦扩散模型的原理与实现。
7.1.2 在线课程
- Coursera 《Generative Adversarial Networks (GANs) Specialization》(deeplearning.ai):理解生成模型基础;
- YouTube 《Diffusion Models Explained》(Yannic Kilcher):通俗易懂的扩散模型原理讲解;
- Hugging Face Course 《Diffusion Models》:结合代码的实战课程(链接)。
7.1.3 技术博客和网站
- OpenAI Blog:Sora 官方技术报告(链接);
- Distill.pub:《Diffusion Models: A Comprehensive Survey》(深度理论解析);
- 机器之心/量子位:跟踪 AIGC 领域的最新动态。
7.2 开发工具框架推荐
7.2.1 IDE和编辑器
- PyCharm/VS Code:支持 Python 开发与调试;
- Jupyter Notebook:适合模型实验与可视化。
7.2.2 调试和性能分析工具
- Weights & Biases(wandb):跟踪训练指标(损失、生成质量);
- PyTorch Profiler:分析模型计算瓶颈(如 GPU 利用率、内存占用)。
7.2.3 相关框架和库
- Hugging Face Diffusers:提供扩散模型的模块化实现(支持视频生成扩展);
- PyTorch Video(pytorchvideo):视频数据加载与预处理工具;
- FFmpeg:视频编解码与格式转换(如 MP4 转 GIF)。
7.3 相关论文著作推荐
7.3.1 经典论文
- 《Denoising Diffusion Probabilistic Models》(DDPM,2020):扩散模型的奠基性工作;
- 《High-Resolution Image Synthesis with Latent Diffusion Models》(LDM,2021): latent 空间扩散的关键改进;
- 《VideoLDM: Scaling Video Diffusion Models with Learning-based Motion Planning》(2023):开源视频扩散模型的代表。
7.3.2 最新研究成果
- 《Sora: Generating High-Fidelity Videos from Text》(OpenAI,2023):Sora 的官方技术论文(待发布);
- 《Temporal Diffusion Models for Video Generation》(NeurIPS 2023):时间扩散模型的前沿进展。
7.3.3 应用案例分析
- 《Using Diffusion Models for Film Production: A Case Study》(2023):影视工业中的视频生成实践;
- 《AIGC in Gaming: Opportunities and Challenges》(2023):游戏领域的 AIGC 应用白皮书。
8. 总结:未来发展趋势与挑战
8.1 未来趋势
- 实时生成:通过模型压缩(如蒸馏、量化)和硬件优化(如专用 GPU/TPU),实现 4K 视频的实时生成(目标:<1 秒/帧);
- 多模态协同:融合文本、语音、3D 模型(如 NeRF),支持“文本+语音指令+3D 场景”的联合生成;
- 可编辑生成:允许用户在生成后调整局部内容(如“将蝴蝶颜色改为蓝色”),提升创作灵活性。
8.2 核心挑战
- 长视频连贯性:现有模型在生成 10 分钟以上视频时,仍可能出现情节断裂(如角色突然消失);
- 计算成本:高分辨率(4K)、高帧率(60 fps)视频的生成需消耗大量 GPU 资源(Sora 单次生成可能需数百美元计算成本);
- 内容真实性控制:如何防止生成虚假视频(如伪造政治人物讲话),需结合水印、元数据追踪等技术;
- 训练数据瓶颈:高质量视频训练数据(带精确标注的时序信息)稀缺,可能限制模型泛化能力。
9. 附录:常见问题与解答
Q1:Sora 与传统视频生成模型(如 Runway Gen-2)的核心区别?
A:Sora 的突破在于长视频的叙事连贯性和多模态控制的精度。传统模型多生成 5-10 秒片段,且对复杂动作(如“猫追蝴蝶时突然转身”)的处理易出现穿帮;Sora 支持分钟级视频生成,且能通过文本指令精确控制动作轨迹、场景变化。
Q2:Sora 生成视频的分辨率和时长限制?
A:根据 OpenAI 演示,Sora 可生成 1080p 分辨率、数分钟长的视频,具体限制可能随模型迭代提升(未来可能支持 4K 与更长时长)。
Q3:Sora 的训练数据来源是否涉及隐私问题?
A:OpenAI 未公开具体数据来源,但强调“遵守版权协议”。未来需关注生成内容的版权归属(如用户生成的视频是否自动拥有版权)。
Q4:个人开发者能否基于 Sora 开发应用?
A:目前 Sora 以 API 形式提供企业级服务,个人开发者需等待开放更底层的接口(如微调权限)。
10. 扩展阅读 & 参考资料
- OpenAI Blog. (2023). “Sora: Generating High-Fidelity Videos from Text”. 链接
- Ho, J., et al. (2020). “Denoising Diffusion Probabilistic Models”. arXiv:2006.11239.
- Patil, K., et al. (2023). “VideoLDM: Scaling Video Diffusion Models with Learning-based Motion Planning”. arXiv:2303.03131.
- Hugging Face Documentation. “Diffusers: State-of-the-art diffusion models”. 链接
- 机器之心. (2023). “Sora 技术拆解:时间扩散模型如何突破视频生成瓶颈?”. 链接