一、项目概述
1.1 背景与定位
SkyReels-V2 是由昆仑万维 Skywork AI 团队 于 2025 年 4 月 21 日正式发布并开源的全球首个采用扩散强迫(Diffusion-forcing)框架 的无限时长电影生成模型。该模型通过融合多模态大语言模型(MLLM)、多阶段预训练、强化学习(RL)和扩散强迫框架,实现了视频生成技术在提示词遵循、视觉质量、运动动态和视频时长四个维度的重大突破。
论文链接 :SkyReels-V2: Infinite-length Film Generative Model
GitHub 仓库 :SkyworkAI/SkyReels-V2
在线体验 :https://www.skyreels.ai/
1.2 核心能力概览
| 能力维度 | 具体表现 |
|---|---|
| 视频时长 | 支持 30 秒、40 秒甚至理论无限时长的连续视频生成 |
| 视觉质量 | 影视级画质,接近真实电影镜头语言 |
| 运动质量 | 高动态性、物理合理性、运动流畅自然 |
| 指令遵循 | 精准理解专业镜头语言(推拉摇移、景别变化等) |
| 一致性控制 | 跨帧主体一致性、运动保真度保持 |
| 多模态支持 | T2V(文本生成视频)、I2V(图像生成视频)、E2V(元素生成视频) |
1.3 开源模型规格
SkyReels 团队完全开源了三种参数规模的模型,以满足不同硬件条件的用户需求:
| 模型版本 | 参数量 | 分辨率 | 显存要求 | 推荐场景 |
|---|---|---|---|---|
| SkyReels-V2-1.3B-540P | 1.3B | 540p | 16-24GB | 入门配置、快速测试 |
| SkyReels-V2-5B-540P | 5B | 540p | 24GB+ | 平衡性能与质量 |
| SkyReels-V2-14B-540P | 14B | 540p/720p | 32GB+ | 专业级效果、高质量输出 |
二、技术架构总览
2.1 整体架构流程图
┌──────────────────────────────────────────────────────────────────────────────┐
│ SkyReels-V2 整体架构 │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────────────┐ │
│ │ 数据层 (Data Layer) │ │
│ │ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │ │
│ │ │ 通用数据集 │ │ 影视数据集 │ │ 艺术资源库 │ │ │
│ │ │ Koala-36M │ │ 28万+电影 │ │ 高质量视频资产 │ │ │
│ │ │ HumanVid │ │ 80万+剧集 │ │ │ │ │
│ │ │ 互联网视频 │ │ 120+国家/620万+小时│ │ │ │ │
│ │ └──────────────────┘ └──────────────────┘ └──────────────────┘ │ │
│ │ ┌──────────────────────────────────────────────────────────────────┐ │ │
│ │ │ 亿级概念平衡图像数据 (加速早期训练) │ │ │
│ │ └──────────────────────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────────────────────┐ │
│ │ 视频理解层 (Video Understanding) │ │
│ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ SkyCaptioner-V1 │ │ │
│ │ │ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ │ │
│ │ │ │ 镜头类型专家 │ │ 表情专家 │ │ 机位运动专家 │ │ │ │
│ │ │ │ Shot Type │ │ Expression │ │ Camera Motion│ │ │ │
│ │ │ │ 准确率: 93.7% │ │ │ │ │ │ │ │
│ │ │ └───────────────┘ └───────────────┘ └───────────────┘ │ │ │
│ │ │ ↓ │ │ │
│ │ │ 统一字幕器 (Structured Video Caption) │ │ │
│ │ │ 平均准确率: 76.3% (vs 基线 58.7%, +17.6pp) │ │ │
│ │ └─────────────────────────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────────────────────┐ │
│ │ 训练框架层 (Training Framework) │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────────────────────┐ │ │
│ │ │ 渐进式分辨率预训练 (Progressive Resolution) │ │ │
│ │ │ 256p → 360p → 540p → 720p │ │ │
│ │ └──────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────────────────────┐ │ │
│ │ │ 四阶段后训练 (Post-training) │ │ │
│ │ │ │ │ │
│ │ │ 阶段1: 概念平衡 SFT → 阶段2: 运动强化学习 → 阶段3: DF训练 → 阶段4: HQ-SFT │ │
│ │ │ (Concept Balance) (Motion RL) (DF Training) (Quality) │ │ │
│ │ └──────────────────────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────────────────────┐ │
│ │ 核心创新层 (Core Innovations) │ │
│ │ │ │
│ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │
│ │ │ Diffusion- │ │ 运动偏好优化 │ │ 非递减噪声调度 │ │ │
│ │ │ Forcing 框架 │ │ Flow-DPO │ │ Non-decreasing │ │ │
│ │ │ │ │ │ │ Noise Schedule │ │ │
│ │ │ 无限长度生成 │ │ 运动质量提升 │ │ 搜索空间优化 │ │ │
│ │ │ O(1e48)→O(1e32)│ │ 动态扭曲修复 │ │ 稳定收敛保证 │ │ │
│ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────────────────────┐ │
│ │ 应用层 (Applications) │ │
│ │ │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ 故事生成 │ │ 图像转视频 │ │ 摄像导演 │ │ 元素转视频 │ │ │
│ │ │ Story │ │ I2V │ │ Camera Dir │ │ E2V │ │ │
│ │ │ 无限时长 │ │ 首帧条件 │ │ 运镜控制 │ │ 多元素组合 │ │ │
│ │ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
2.2 核心技术组件一览
| 组件名称 | 技术类型 | 核心功能 |
|---|---|---|
| SkyCaptioner-V1 | 视频理解模型 | 结构化视频字幕生成,支持镜头语言理解 |
| DiT (Diffusion Transformer) | 生成模型架构 | 基础扩散变换器,用于视频内容生成 |
| 3D VAE | 视频编码器 | 时空压缩,将视频编码为潜在表示 |
| Text Encoder | 文本编码器 | 理解用户输入的文本提示 |
| Diffusion Forcing | 训练/推理框架 | 实现长视频稳定生成的核心技术 |
| Flow-DPO | 强化学习算法 | 优化运动质量和物理合理性 |
| VLM Reward Model | 奖励模型 | 评估生成视频质量 |
三、核心技术创新详解
3.1 SkyCaptioner-V1:影视级视频理解模型
3.1.1 设计动机
通用多模态大语言模型(如 Qwen2.5-VL-72B)对专业电影镜头语言的理解能力有限。具体表现:
| 评估维度 | Qwen2.5-VL-72B 基线 | SkyCaptioner-V1 | 提升 |
|---|---|---|---|
| 平均准确率 | 58.7% | 76.3% | +17.6pp |
| 镜头类型 (Shot Type) | 82.5% | 93.7% | +11.2pp |
| 镜头角度 (Shot Angle) | 73.7% | 89.8% | +16.1pp |
| 镜头机位 (Shot Position) | 32.7% | 83.1% | +50.4pp |
3.1.2 架构设计
SkyCaptioner-V1 采用子专家体系 + 统一字幕器的混合架构:
┌─────────────────────────────────────────────────────────────────┐
│ SkyCaptioner-V1 架构 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 输入视频帧序列 │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 视频帧特征提取 (Visual Encoder) │ │
│ │ 基于 Qwen2.5-VL-7B │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ 镜头类型 │ │ 镜头角度 │ │ 镜头机位 │ │ 表情专家 │ │
│ │ 专家 │ │ 专家 │ │ 专家 │ │ │ │
│ │ Shot Type │ │ Shot Angle │ │Shot Position│ │Expression │ │
│ │ │ │ │ │ │ │ │ │
│ │ 特写/中景 │ │ 平视/俯视 │ │ 正/侧/背 │ │ 微笑强度 │ │
│ │ 远景/全景 │ │ 仰视 │ │ 低/高机位 │ │ 眼神 │ │
│ └─────┬────┘ └─────┬────┘ └─────┬────┘ └─────┬────┘ │
│ ↓ ↓ ↓ ↓ │
│ └──────────────────┬─────────────────┘ │ │
│ ↓ │ │
│ ┌─────────────────────────┐ │ │
│ │ 统一字幕器 (Fuser) │◄──────────────┘ │
│ │ │ │
│ │ 融合多专家输出 │ │
│ │ 生成结构化描述 │ │
│ └───────────┬─────────────┘ │
│ ↓ │
│ ┌───────────────────────────┐ │
│ │ 结构化视频字幕输出 │ │
│ │ │ │
│ │ { │ │
│ │ "shot_type": "特写", │ │
│ │ "shot_angle": "低角度", │ │
│ │ "camera_motion": "推", │ │
│ │ "expression": "微笑" │ │
│ │ } │ │
│ └───────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
3.1.3 数据标注策略
| 标注方式 | 说明 |
|---|---|
| 半自动标注 | AI 生成 + 人工验证双重机制 |
| 标注规模 | 百万级视频片段 |
| 合成数据补充 | 扩充稀缺镜头类型样本 |
3.1.4 结构化标注示例
输入:女人微笑的影视片段
| 描述类型 | 内容 |
|---|---|
| 通用描述 | "一个女人在微笑" |
| 结构化标注 | "特写镜头、低角度拍摄、嘴角轻微上扬的中等强度微笑" |
标注层次详解:
| 维度 | 标注内容 |
|---|---|
| 镜头类型 | 特写、中景、远景、全景等 |
| 摄像机运动 | 推、拉、摇、移、跟、升降等 |
| 演员表情 | 微笑强度、眼神方向、头部姿态 |
| 构图分析 | 景深、光线、视角、主体位置 |
3.2 扩散强迫(Diffusion Forcing)框架
3.2.1 技术背景与问题
传统视频生成方法面临的核心矛盾:
| 方法类型 | 优势 | 劣势 |
|---|---|---|
| 扩散模型 | 高画质、细节丰富 | 时间维度碎片化、难以生成超长视频 |
| 自回归模型 | 长序列建模能力强 | 分辨率低、误差累积 |
| 简单结合 | 理论上可取长补短 | 训练不稳定、搜索空间爆炸 |
搜索空间复杂度问题:
对于 T 帧的序列,每帧有 N 个可能的噪声时间步,传统方法的组合数为:
O ( N T ) O(N^T) O(NT)
以 50 帧视频、N=1000 步为例:
O ( 1000 50 ) = O ( 10 150 ) ≈ O ( 10 48 ) (数量级) O(1000^{50}) = O(10^{150}) ≈ O(10^{48}) \text{(数量级)} O(100050)=O(10150)≈O(1048)(数量级)
这使得训练几乎不可能收敛。
3.2.2 非递减噪声调度(Non-decreasing Noise Schedule)
SkyReels-V2 的核心创新是引入非递减噪声调度约束:
核心约束条件:
n o i s e _ l e v e l ( t 1 ) ≤ n o i s e _ l e v e l ( t 2 ) ≤ . . . ≤ n o i s e _ l e v e l ( t T ) noise\_level(t_1) \leq noise\_level(t_2) \leq ... \leq noise\_level(t_T) noise_level(t1)≤noise_level(t2)≤...≤noise_level(tT)
原理对比图示:
传统方法(不稳定):
┌─────────────────────────────────────────────────────────────┐
│ │
│ 帧1: 噪声 [高→低] ↓ │
│ 帧2: 噪声 [低→高] ↑ ← 矛盾!时序不一致 │
│ 帧3: 噪声 [随机] ? ← 训练不稳定 │
│ │
│ 问题:相邻帧去噪节奏冲突,导致训练震荡、发散 │
│ │
└─────────────────────────────────────────────────────────────┘
SkyReels-V2(非递减调度):
┌─────────────────────────────────────────────────────────────┐
│ │
│ 帧1: 噪声 [高→低] ↓ │
│ 帧2: 噪声 [高→低] ↓ ← 时序一致,平滑过渡 │
│ 帧3: 噪声 [高→低] ↓ │
│ 帧4: 噪声 [高→低] ↓ │
│ │
│ 优势:相邻帧去噪节奏协调,训练稳定收敛 │
│ 搜索空间从 O(10⁴⁸) 降至 O(10³²) │
│ │
└─────────────────────────────────────────────────────────────┘
数学原理:
设 n t n_t nt 表示第 t t t 帧的噪声时间步,非递减约束意味着:
n 1 ≥ n 2 ≥ . . . ≥ n T n_1 \geq n_2 \geq ... \geq n_T n1≥n2≥...≥nT
这将搜索空间从 O ( N T ) O(N^T) O(NT) 降低到 O ( ( N + T − 1 T ) ) O(\binom{N+T-1}{T}) O((TN+T−1)),当 N=1000, T=50 时:
( 1049 50 ) ≈ 10 32 = O ( 10 32 ) \binom{1049}{50} ≈ 10^{32} = O(10^{32}) (501049)≈1032=O(1032)
优化幅度 : O ( 10 48 ) → O ( 10 32 ) O(10^{48}) → O(10^{32}) O(1048)→O(1032),降低 16 个数量级!
3.2.3 DF-Transformer 架构
┌─────────────────────────────────────────────────────────────────┐
│ DF-Transformer 推理流程 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 当前窗口帧 (如 30 帧) 历史窗口帧 (如 5 帧) │
│ ↓ ↓ │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ 因果注意力机制 │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ │ │ │
│ │ │ [H₁][H₂][H₃]...[H₅] [C₁][C₂][C₃]...[C₃₀] │ │ │
│ │ │ 历史帧(轻噪声) 当前帧(重→轻噪声) │ │ │
│ │ │ │ │ │
│ │ │ 只能看到自己和历史 可以看到所有帧 │ │ │
│ │ │ (因果掩码) (完整注意力) │ │ │
│ │ │ │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ ↓ │ │
│ │ KV 缓存复用,降低计算复杂度 │ │
│ └────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────┐ │
│ │ 噪声时间步预测 │ │
│ │ 输出: 预测噪声 ε_θ │ │
│ └─────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
3.2.4 长视频生成机制
滑动窗口 + 重叠融合策略:
┌────────────────────────────────────────────────────────────────────────────┐
│ 无限长度视频生成流程 │
├────────────────────────────────────────────────────────────────────────────┤
│ │
│ 窗口 1: [帧₁ - 帧₃₀] │
│ ↓ │
│ 窗口 2: [帧₂₅ - 帧₅₅] ← 重叠 5 帧用于平滑过渡 │
│ ↓ │
│ 窗口 3: [帧₅₀ - 帧₁₂₀] ← 继续生成,无限延续 │
│ ↓ │
│ 窗口 N: ...持续生成... │
│ │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ 噪声稳定技术 (防止误差累积) │ │
│ │ │ │
│ │ 1. 动态噪声调整:历史帧添加轻微随机噪声,保持生成多样性 │ │
│ │ 2. 上下文感知:新窗口参考历史窗口的潜在表示 │ │
│ │ 3. 误差抑制:重叠区域加权融合,减少接缝伪影 │ │
│ │ │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │
└────────────────────────────────────────────────────────────────────────────┘
3.3 运动偏好优化(Motion Preference Optimization)
3.3.1 问题分析
传统扩散模型优化目标存在局限:
| 问题 | 具体表现 |
|---|---|
| 空间偏重 | 扩散损失函数偏重空间外观细节,忽视时序运动特性 |
| 运动扭曲 | 生成的运动可能出现肢体断裂、物体变形 |
| 物理不合理 | 物体运动违反物理规律(如穿墙、漂浮) |
3.3.2 Flow-DPO 算法
SkyReels-V2 采用 Flow-DPO(Flow-based Direct Preference Optimization) 优化运动质量:
算法流程:
┌─────────────────────────────────────────────────────────────────┐
│ Flow-DPO 优化流程 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 步骤 1: 偏好数据生成 │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 原始视频 ──→ I2V 失真 ──→ V2V 失真 ──→ T2V 失真 │ │
│ │ ↓ ↓ ↓ ↓ │ │
│ │ 高质量视频 扭曲/断裂 运动异常 物理违反 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ 步骤 2: 运动质量评估 │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ BTT 奖励模型 (Beauty-Test-Time) │ │
│ │ │ │
│ │ 输入视频 → 运动特征提取 → 质量评分 (0-1) │ │
│ │ │ │
│ │ 高分视频 vs 低分视频 → 偏好数据对 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ 步骤 3: Flow-DPO 优化 │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ L = -log σ(β(r(y⁺) - r(y⁻)) + s(y⁺) - s(y⁻)) │ │
│ │ │ │
│ │ 其中: │ │
│ │ r() = 奖励函数 (来自 BTT 模型) │ │
│ │ s() = 评分函数 (来自 VLM) │ │
│ │ β = 超参数 (控制偏好强度) │ │
│ │ σ = Sigmoid 函数 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
3.3.3 半自动数据收集管道
| 数据收集方式 | 说明 | 示例 |
|---|---|---|
| I2V 失真 | 将高质量视频转换为 I2V 再生成 | 扭曲肢体、表情异常 |
| V2V 失真 | 视频到视频转换引入失真 | 运动轨迹异常 |
| T2V 失真 | 文本提示变化导致不一致 | 主体变化、场景漂移 |
3.4 多阶段渐进式预训练
3.4.1 训练数据来源
| 数据类型 | 规模 | 说明 |
|---|---|---|
| 通用数据集 | - | Koala-36M、HumanVid、互联网视频 |
| 自采集影视 | 28万+电影 / 80万+剧集 | 覆盖 120+ 国家,约 620 万+ 小时 |
| 艺术资源 | - | 高质量视频资产 |
| 概念均衡图像 | 亿级 | 加速早期训练中生成能力建立 |
3.4.2 数据预处理流程
原始视频数据
↓
┌─────────────────────────────────────────────────────────────────┐
│ 数据预处理流水线 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. 镜头切分 (Shot Segmentation) │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 工具: PyDetect + TransNet-V2 │ │
│ │ 输出: 独立镜头片段 │ │
│ └──────────────────────────────────────────────────────┘ │
│ ↓ │
│ 2. 结构化字幕 (SkyCaptioner-V1) │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 镜头类型/角度/机位 + 表情 + 摄像机运动 │ │
│ └──────────────────────────────────────────────────────┘ │
│ ↓ │
│ 3. 多级质量过滤 (Multi-level Filtering) │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 美学评分 / 运动强度 / 文本相关性 / 重复检测 │ │
│ └──────────────────────────────────────────────────────┘ │
│ ↓ │
│ 4. 台标字幕裁剪 (Logo/Subtitle Removal) │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 最大内接矩形算法 (Max Inscribed Rectangle, A1) │ │
│ └──────────────────────────────────────────────────────┘ │
│ ↓ │
│ 5. 概念均衡 (Concept Balancing) │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 改善主体类型、场景、动作的分布平衡 │ │
│ └──────────────────────────────────────────────────────┘ │
│ ↓ │
│ 6. 人工抽检 (Human Verification) │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 预训练: 0.01% 样本抽检 │ │
│ │ 后训练: 0.1% 样本抽检 (更严格) │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
3.4.3 渐进分辨率训练流程
| 阶段 | 分辨率 | 数据类型 | 学习率 | 特殊处理 |
|---|---|---|---|---|
| Stage 1 | 256p | 图像 + 视频 | 1e⁻⁴ → 5e⁻⁵ | 基础训练,建立概念 |
| Stage 2 | 360p | 视频 | 2e⁻⁵ | 加入多重过滤 |
| Stage 3 | 540p | 视频 | 自适应 | 更严格过滤 + 来源过滤 |
训练目标:Flow-Matching
3.5 四阶段后训练体系
┌──────────────────────────────────────────────────────────────────────────────┐
│ 四阶段后训练流程 │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ 阶段 1: 概念平衡监督微调 (Concept Balance SFT) │ │
│ │ │ │
│ │ 目标: 确保模型对各类概念(主体、场景、动作)的生成能力平衡 │ │
│ │ 方法: 使用概念均衡数据,交叉熵损失函数 │ │
│ │ 产物: 具备均衡生成能力的基座模型 │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ 阶段 2: 运动特定强化学习 (Motion-specific RL) │ │
│ │ │ │
│ │ 目标: 提升运动质量,解决动态扭曲、物理不合理问题 │ │
│ │ 方法: Flow-DPO + BTT 奖励模型 │ │
│ │ 产物: 运动质量显著提升的优化模型 │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ 阶段 3: 扩散强迫框架训练 (Diffusion Forcing Training) │ │
│ │ │ │
│ │ 目标: 将 T2V 模型适配为 DF-Transformer,支持无限长度生成 │ │
│ │ 方法: 非递减噪声调度 + 自回归推理框架 │ │
│ │ 产物: 支持长视频生成的 DF 模型 │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ 阶段 4: 高质量监督微调 (High Quality SFT) │ │
│ │ │ │
│ │ 目标: 进一步提升视觉质量和指令遵循能力 │ │
│ │ 方法: 精选高质量数据 + 更高分辨率 (720p) 微调 │ │
│ │ 产物: 影视级最终交付模型 │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
3.6 高效推理优化
3.6.1 量化与加速技术
| 优化技术 | 技术描述 | 效果 |
|---|---|---|
| FP8 量化 | 8 位浮点精度量化 | 显存占用降低约 50% |
| 内容并行 | CFG/VAE 并行处理 | 4→8 卡实现 1.8× 加速 |
| DMD 蒸馏 | Distribution Matching Distillation | 4-step 生成加速 |
3.6.2 DMD 蒸馏梯度近似
L D M D ≈ E t , z 0 , ϵ [ ∣ ∣ ϵ − ϵ θ ( t , z t , c ) ∣ ∣ 2 ] L_{DMD} \approx \mathbb{E}{t,z_0,\epsilon}[||\epsilon - \epsilon\theta(t, z_t, c)||^2] LDMD≈Et,z0,ϵ[∣∣ϵ−ϵθ(t,zt,c)∣∣2]
关键训练策略:
- 小学习率 + 大 batch
- 4-step 生成加速日程
- 保持画质的同时显著加速
3.6.3 推理性能数据
| 模型配置 | 优化前 | 优化后 | 硬件要求 |
|---|---|---|---|
| 14B@720P 视频生成 | ~5 分钟 | <1 分钟 | 24GB RTX 4090 |
四、评测结果与分析
4.1 评测基准
| 评测基准 | 类型 | 说明 |
|---|---|---|
| SkyReels-Bench | 人工评估 | 1020 个文本提示词,1-5 分制 |
| V-Bench 1.0 | 自动评测 | 权威视频生成评测基准 |
评估维度:
- 指令遵循:运动指令、主体指令、空间关系、镜头类型、表情、摄像机运动
- 运动质量:动态性、流畅性、物理合理性
- 一致性:主体/场景一致性、运动保真度
- 视觉质量:清晰度、色彩准确性、结构完整性
4.2 主实验对比结果
4.2.1 vs Wan2.1-14B (T2V)
| 评估维度 | 差异 (SkyReels-V2 vs Wan2.1-14B) |
|---|---|
| 平均得分 | +0.02 |
| 指令遵循 | +0.24 ⬆️ (显著提升) |
| 一致性 | +0.04 |
| 运动质量 | +0.03 |
| 视觉质量 | -0.20 ⬇️ (轻微下降) |
关键洞见:镜头语言遵循能力显著受益于 SkyCaptioner-V1 结构化字幕 + 多阶段训练 + 运动特化 RL 的协同优化。
4.2.2 vs HunyuanVideo-13B (T2V)
| 评估维度 | 差异 (SkyReels-V2 vs HunyuanVideo-13B) |
|---|---|
| 平均得分 | +0.32 ⬆️ |
| 四维度 | 全面提升 |
4.2.3 V-Bench 长提示评测
| 指标 | SkyReels-V2 | Wan2.1-14B 对比 | 排名 |
|---|---|---|---|
| 总分 | 83.9% | +0.2 | 第一 |
| 质量分 | 84.7% | +0.5 | 第一 |
| 语义分 | 竞争水平 | -0.6 | 竞争水平 |
4.2.4 I2V 方法对比
| 方法 | 平均得分 | 说明 |
|---|---|---|
| Wan2.1 I2V | 2.85 | 开源基线 |
| Hunyuan I2V | 2.84 | 开源基线 |
| SkyReels-V2-I2V | 3.29 | 开源最优 |
| Kling-Pro | ~3.3 | 闭源参考 |
| Runway-Gen4 | ~3.3 | 闭源参考 |
关键结论:
- DF 方法:便携性强、零样本适配
- I2V 方法:效果更强、接近闭源水平
- 二者互补,可根据场景选择
五、应用场景与功能模块
5.1 故事生成(Story Generation)
功能描述:基于连续文本提示生成具有叙事连贯性的长镜头视频
技术实现:
┌─────────────────────────────────────────────────────────────────┐
│ 故事生成流程 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 用户输入: │
│ "场景1: 清晨森林,阳光透过树叶..." │
│ "场景2: 小鹿来到小溪边..." │
│ "场景3: 小鹿抬头发现远处鸟巢..." │
│ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 滑动窗口生成 (Diffusion Forcing) │ │
│ │ │ │
│ │ 窗口1 ──→ [帧₁-帧₃₀] ──→ 输出 │ │
│ │ ↓ │ │
│ │ 窗口2 ──→ [帧₂₅-帧₅₅] ──→ 输出 (重叠 5 帧融合) │ │
│ │ ↓ │ │
│ │ 窗口3 ──→ [帧₅₀-帧₁₂₀] ──→ 输出 │ │
│ │ ↓ │ │
│ │ ...持续生成... │ │
│ │ │ │
│ │ 稳定化技术: 在之前生成的帧上添加轻微随机噪声 │ │
│ │ 防止误差累积,保持生成多样性 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ 最终视频 (理论无限时长) │
│ │
└─────────────────────────────────────────────────────────────────┘
5.2 图像到视频合成(Image-to-Video)
SkyReels-V2 提供两种 I2V 实现方式:
| 方法 | 原理 | 特点 |
|---|---|---|
| SkyReels-V2-I2V | 微调全序列 T2V 扩散模型,将输入图像作为条件注入 | 效果更强,仅需 384 GPU × 10,000 次迭代 |
| SkyReels-V2-DF | 扩散强迫模型 + 帧条件,将第一帧作为干净参考条件 | 无需重新训练,时间一致性好 |
5.3 摄像导演功能(Camera Director)
功能描述:精确控制摄像机运动,实现专业级运镜效果
技术实现:
- 专门筛选约 100 万个样本
- 确保基本摄像机运动及其常见组合的平衡表示
- 实验条件:384 GPU,3000 次迭代微调
支持的摄像机运动类型:
| 运动类型 | 英文 | 描述 |
|---|---|---|
| 推 | Push in | 摄像机向前推进 |
| 拉 | Pull out | 摄像机向后拉远 |
| 摇 | Pan | 摄像机水平转动 |
| 移 | Dolly/Truck | 摄像机横向移动 |
| 跟 | Follow | 摄像机跟随主体 |
| 升降 | Boom/Tilt | 摄像机垂直运动 |
5.4 元素到视频生成(SkyReels-A2)
任务定义:多元素到视频(E2V)
功能描述:将任意视觉元素(人物、物体、背景)组合成由文本提示引导的连贯视频
核心特点:
- 首个商业级 E2V 开源模型
- 对每个元素的参考图像保持高保真度
- 支持短剧、音乐视频、虚拟电商内容创作
技术架构:
┌─────────────────────────────────────────────────────────────────┐
│ E2V 元素组合生成 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 元素输入: │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 人物参考图 │ │ 物体参考图 │ │ 背景参考图 │ │
│ │ [人像照片] │ │ [道具图像] │ │ [场景图像] │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ ↓ ↓ ↓ │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ 元素编码与融合模块 │ │
│ │ │ │
│ │ Element Encoder → Element Fusion → Composite Feature │ │
│ │ │ │
│ └────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ DF-Transformer 生成 │ │
│ │ │ │
│ │ Composite Feature + Text Prompt → Video Frames │ │
│ │ │ │
│ └────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────┐ │
│ │ 合成视频输出 │ │
│ │ 多元素协调一致 │ │
│ └─────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
六、项目结构与代码解析
6.1 仓库目录结构
SkyReels-V2/
├── README.md # 项目说明文档
├── requirements.txt # Python 依赖列表
├── requirements_win.txt # Windows 环境依赖
│
├── generate_video.py # 文本到视频生成入口
├── generate_video_df.py # Diffusion Forcing 视频生成入口
│
├── skycaptioner_v1/ # SkyCaptioner-V1 视频理解模型
│ ├── README.md
│ ├── scripts/
│ │ ├── generate_caption.py # 生成结构化字幕
│ │ └── utils.py # 工具函数
│ └── models/ # 模型权重
│
├── skyreels_v2_infer/ # 核心推理模块
│ ├── pipelines/ # 推理管道
│ │ ├── text2video_pipeline.py # T2V 管道
│ │ ├── image2video_pipeline.py # I2V 管道
│ │ └── diffusion_forcing_pipeline.py # DF 管道
│ │
│ ├── modules/ # 核心模块
│ │ ├── transformer/ # DiT 模型
│ │ ├── vae/ # 3D VAE
│ │ ├── text_encoder/ # 文本编码器
│ │ └── attention/ # 注意力机制
│ │
│ ├── scheduler/ # 调度器
│ │ └── flow_matching.py # Flow Matching 调度
│ │
│ └── distributed/ # 分布式推理
│ └── xdit_context_parallel.py # 并行推理
│
└── assets/ # 资源文件
├── demos/ # 示例视频
└── images/ # 示例图片
6.2 核心推理代码示例
6.2.1 文本到视频生成
python
import torch
from skyreels_v2_infer.pipelines import Text2VideoPipeline
# 初始化管道
pipeline = Text2VideoPipeline(
model_path="./SkyReels-V2-T2V-14B-540P",
device="cuda",
dtype=torch.bfloat16
)
# 定义生成参数
result = pipeline.generate(
prompt="A beautiful sunset over the ocean, golden hour lighting, "
"waves gently crashing on the shore, wide angle shot",
num_frames=97,
height=544,
width=960,
num_inference_steps=50,
guidance_scale=6.0
)
# 保存视频
result.save("sunset_video.mp4", fps=24)
6.2.2 图像到视频生成
python
from skyreels_v2_infer.pipelines import Image2VideoPipeline
# 初始化管道
pipeline = Image2VideoPipeline(
model_path="./SkyReels-V2-I2V-1.3B-540P",
device="cuda"
)
# 生成视频
result = pipeline.generate(
image="input_portrait.jpg",
prompt="The person slowly turns their head, slight smile, "
"cinematic lighting, medium close-up shot",
num_frames=97,
motion_strength=0.6
)
result.save("portrait_video.mp4")
6.2.3 无限长度视频生成(Diffusion Forcing)
python
from skyreels_v2_infer.pipelines import DiffusionForcingPipeline
# 初始化 DF 管道
pipeline = DiffusionForcingPipeline(
model_path="./SkyReels-V2-DF-14B-540P",
device="cuda"
)
# 生成长视频
result = pipeline.generate_long_video(
prompt="A journey through an ancient forest at dawn, "
" shafts of light piercing through the canopy, "
" deer walking gracefully among the trees",
total_frames=600, # 约 24 秒 (600/25fps)
window_size=97, # 每批生成 97 帧
overlap=5, # 重叠 5 帧用于融合
guidance_scale=6.0
)
result.save("forest_journey.mp4", fps=25)
6.2.4 带运镜控制的视频生成
python
from skyreels_v2_infer.pipelines import CameraDirectorPipeline
pipeline = CameraDirectorPipeline(
model_path="./SkyReels-V2-Camera-14B-540P"
)
# 定义运镜序列
camera_sequence = [
{
"prompt": "Wide shot of a mountain landscape at sunset",
"camera_motion": "pull_out", # 拉远镜头
"duration": 49 # 帧数
},
{
"prompt": "Close-up of a bird flying across the sky",
"camera_motion": "pan_right", # 向右摇镜
"duration": 48
}
]
result = pipeline.generate_with_camera(camera_sequence)
result.save("cinematic_journey.mp4")
6.3 命令行使用方式
6.3.1 基础 T2V 生成
bash
python generate_video.py \
--model_id "./SkyReels-V2-T2V-14B-540P" \
--resolution 540P \
--num_frames 97 \
--prompt "A cat playing with a ball of yarn in a sunny room" \
--guidance_scale 6.0 \
--num_inference_steps 50
6.3.2 I2V 生成
bash
python generate_video.py \
--model_id "./SkyReels-V2-I2V-14B-540P" \
--image "input_image.jpg" \
--prompt "The person slowly raises their hand" \
--resolution 540P \
--num_frames 97
6.3.3 长视频 DF 生成
bash
python generate_video_df.py \
--model_id "./SkyReels-V2-DF-14B-540P" \
--resolution 540P \
--ar_step 0 \
--base_num_frames 97 \
--num_frames 97 \
--overlap_history 5 \
--prompt "A beautiful beach at sunset with waves crashing on the shore" \
--addnoise_condition 20 \
--offload \
--teacache \
--use_ret_steps \
--teacache_thresh 0.3
6.3.4 显存优化配置
bash
# 24GB 显存推荐配置
python generate_video_df.py \
--model_id "./SkyReels-V2-DF-1.3B-540P" \
--resolution 540P \
--base_num_frames 77 \
--offload \
--teacache
七、环境配置与部署
7.1 系统要求
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | Linux/Windows | Ubuntu 20.04 / Windows 10+ |
| 显卡 | 16GB 显存 | 24GB+ 显存 (RTX 4090/A100) |
| 内存 | 16GB RAM | 32GB RAM |
| Python | 3.8+ | 3.10-3.11 |
| CUDA | 11.7+ | 12.1+ |
7.2 依赖安装
bash
# 创建虚拟环境
conda create -n skyreels python=3.11
conda activate skyreels
# 安装 PyTorch
pip install torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 \
--index-url https://download.pytorch.org/whl/cu128
# 安装基础依赖
pip install -r requirements.txt
# 安装 Flash Attention (加速注意力计算)
pip install flash_attn==2.8.3+cu128torch2.7.0 \
--index-url https://download.pytorch.org/whl/cu128
# Windows 额外依赖
pip install -U "triton-windows==3.1.0.post17"
7.3 模型下载
python
from modelscope import snapshot_download
# 下载 540P 模型 (推荐入门)
model_dir = snapshot_download('Skywork/SkyReels-V2-DF-14B-540P')
# 下载 720P 高清模型
# model_dir = snapshot_download('Skywork/SkyReels-V2-DF-14B-720P')
7.4 Windows 部署注意事项
| 问题 | 解决方案 |
|---|---|
| Triton CUDA 报错 | 设置 TORCHINDUCTOR_TRITON=0,使用 PyTorch ≥ 2.7.0 |
| 显存不足 | 降低 --base_num_frames,启用 --offload |
| 模型加载超时 | 检查缓存路径 (HF_HOME/MODELSCOPE_CACHE) |
| flash_attn 安装失败 | 下载预编译包后本地安装 |
八、总结与展望
8.1 核心技术创新总结
| 创新点 | 技术描述 | 核心价值 |
|---|---|---|
| SkyCaptioner-V1 | 结构化视频字幕 + 子专家体系 | 镜头语言理解准确率提升 +17.6pp |
| 非递减噪声调度 | Diffusion Forcing 搜索空间优化 | O(10⁴⁸) → O(10³²),训练稳定收敛 |
| Flow-DPO | 运动偏好强化学习 | 动态扭曲修复,运动质量显著提升 |
| 滑动窗口生成 | 重叠融合 + 噪声稳定 | 理论无限长度视频生成 |
| 渐进分辨率训练 | 256p→360p→540p→720p | 平衡效率与质量 |
8.2 性能定位
SkyReels-V2 在开源视频生成领域确立了新的技术高度:
| 评测基准 | 成绩 | 定位 |
|---|---|---|
| V-Bench 长提示总分 | 83.9% | 开源第一 |
| V-Bench 质量分 | 84.7% | 开源第一 |
| I2V 平均得分 | 3.29 | 开源最优,接近闭源 |
| T2V vs Wan2.1 | +0.02 | 持平领先 |
| T2V vs HunyuanVideo | +0.32 | 全面领先 |
8.3 未来发展方向
根据官方路线图,SkyReels 系列未来将重点推进:
- 减少长视频误差累积:动态噪声调整 + 上下文感知机制
- 多模态输入支持:整合音频、姿态控制、手势识别
- 更高分辨率:支持 4K 及以上分辨率输出
- 开源生态建设:发布更多规模模型变体 (1.3B/5B/14B)
- 实际应用集成:与创作工具、工作流平台深度整合
8.4 开源资源链接
| 资源类型 | 链接 |
|---|---|
| GitHub 仓库 | https://github.com/SkyworkAI/SkyReels-V2 |
| HuggingFace | https://huggingface.co/collections/Skywork/skyreels-v2-6801b1b93df627d441d0d0d9 |
| ModelScope | https://www.modelscope.cn/models/Skywork/ |
| 论文链接 | https://arxiv.org/abs/2504.13074 |
| 在线体验 | https://www.skyreels.ai/ |
| SkyReels-A2 | https://github.com/SkyworkAI/SkyReels-A2 |
声明:本文档基于 SkyReels-V2 官方论文、GitHub 仓库及公开技术资料整理撰写,旨在为中文技术社区提供详细的项目解读。文中涉及的技术细节、性能数据均来源于官方发布内容,如有疏漏敬请指正。