🤗 Hugging Face · 👋 在线体验 · 💬 Discord
欢迎来到 SkyReels V1 仓库!这里提供了我们开创性的视频基础模型的文本生成视频(Text-to-Video)与图像生成视频(Image-to-Video)模型权重及推理代码。
[ ] ComfyUI 插件
SkyReels-V1 (图像生成视频模型)
SkyReels V1 是首个也是最先进的开源、以人为中心的视频基础模型。通过在 O(10M) 的高质量影视剪辑上微调 HunyuanVideo,SkyReels V1 具备三大优势:
我们的模型建立在自主研发的数据清洗与标注流程之上,创建了海量的高质量电影、电视和纪录片内容数据集。
我们受 HunyuanVideo 设计启发的多阶段预训练流程包括以下阶段:
我们使用 VBench 评估了文本生成视频模型的性能,并与其他优秀的开源模型进行了比较。
根据基准测试结果,SkyReels V1 在开源文本生成视频(T2V)模型中展示了 SOTA 性能。具体来说,我们的模型总体得分达到 82.43,高于其他开源模型,如 VideoCrafter-2.0 VEnhancer (82.24) 和 CogVideoX1.5-5B (82.17)。此外,我们的模型在多个关键指标上取得了最高分,包括动态程度(Dynamic Degree)和多个物体(Multiple Objects),这表明我们的模型在处理复杂视频生成任务方面具有卓越的能力。
| 模型 | 总体得分 | 质量得分 | 语义得分 | 图像质量 | 动态程度 | 多个物体 | 空间关系 |
|---------------------------|---------|---------------|----------------|---------------|----------------|------------------|----------------------|
| OpenSora V1.3 | 77.23 | 80.14 | 65.62 | 56.21 | 30.28 | 43.58 | 51.61 |
| AnimateDiff-V2 | 80.27 | 82.90 | 69.75 | 70.1 | 40.83 | 36.88 | 34.60 |
| VideoCrafter-2.0 VEnhancer| 82.24 | 83.54 | 77.06 | 65.35 | 63.89 | 68.84 | 57.55 |
| CogVideoX1.5-5B | 82.17 | 82.78 | 79.76 | 65.02 | 50.93 | 69.65 | 80.25 |
| HunyuanVideo 540P | 81.23 | 83.49 | 72.22 | 66.31 | 51.67 | 70.45 | 63.46 |
| SkyReels V1 540P (Ours) | 82.43 | 84.62 | 73.68 | 67.15 | 72.5 | 71.61 | 70.83 |
| 模型名称 | 分辨率 | 视频长度(帧) | 帧率 (FPS) | 下载链接 |
|---|---|---|---|---|
| SkyReels-V1-Hunyuan-I2V | 544x960 | 97 | 24 | 🤗 下载 |
| SkyReels-V1-Hunyuan-T2V | 544x960 | 97 | 24 | 🤗 下载 |
SkyReelsInfer 是一个高效的视频生成推理框架,能够准确、快速地生成高质量视频,在不损失任何质量的前提下显著提升视频生成推理速度。
多 GPU 推理支持: 该框架支持上下文并行(Context Parallel)、CFG 并行和 VAE 并行方法,便于快速、无损地生成视频,以满足在线环境的严格低延迟需求。
用户级 GPU 部署: 通过采用模型量化和参数级卸载策略,系统显著降低了 GPU 内存需求,适用于显存有限的消费级显卡。
卓越的推理性能: 该框架展现出卓越的效率,与 HunyuanVideo XDiT 相比,端到端延迟降低了 58.3%,为推理速度设立了新标杆。
出色的易用性: 基于开源框架 Diffusers 构建,并采用非侵入式的并行实现方法,确保了流畅且用户友好的体验。
首先克隆仓库:
git clone https://github.com/SkyworkAI/SkyReels-V1
cd skyreelsinfer
我们推荐使用 Python 3.10 和 CUDA 12.2 版本进行手动安装。
# 安装 pip 依赖
pip install -r requirements.txt
当有足够的显存时(例如在 A800 上),可以直接运行无损版本。
注意:生成视频时,提示词应以 "FPS-24, " 开头,因为我们在训练过程中参考了 Moviegen 的控制帧率训练方法。
SkyReelsModel = "Skywork/SkyReels-V1-Hunyuan-T2V"
python3 video_generate.py \
--model_id ${SkyReelsModel} \
--task_type t2v \
--guidance_scale 6.0 \
--height 544 \
--width 960 \
--num_frames 97 \
--prompt "FPS-24, A cat wearing sunglasses and working as a lifeguard at a pool" \
--embedded_guidance_scale 1.0
我们在下表中列出了推荐的高度/宽度/帧数设置。
| 分辨率 | 高宽比 9:16 | 高宽比 16:9 | 高宽比 1:1 |
|:---------------------:|:----------------------------:|:---------------:|:---------------:|
| 544p | 544x960, 97帧 | 960x544, 97帧 | 720x720, 97帧 |
# SkyReelsModel: 如果使用 i2v,请切换为 Skywork/SkyReels-V1-Hunyuan-I2V。
# quant: 启用 FP8 仅权重量化
# offload: 启用模型卸载
# high_cpu_memory: 启用固定内存以减少模型卸载的开销。
# parameters_level: 进一步减少 GPU 显存使用。
# task_type: 指定任务类型以支持 t2v 和 i2v。执行 i2v 任务时,需要输入 --image。
SkyReelsModel = "Skywork/SkyReels-V1-Hunyuan-T2V"
python3 video_generate.py \
--model_id ${SkyReelsModel} \
--task_type t2v \
--guidance_scale 6.0 \
--height 544 \
--width 960 \
--num_frames 97 \
--prompt "FPS-24, A cat wearing sunglasses and working as a lifeguard at a pool" \
--embedded_guidance_scale 1.0 \
--quant \
--offload \
--high_cpu_memory \
--parameters_level
上面的示例展示了在单张 RTX 4090 上生成一个 544x960 分辨率、97 帧的 4 秒视频,并启用了完整的显存优化,峰值显存使用量为 18.5G。在最大显存容量下,可以生成一个 544x960 分辨率、289 帧的 12 秒视频(使用 --sequence_batch,在一张 RTX 4090 上大约需要 1.5 小时;增加 GPU 数量可以大大减少时间)。
# SkyReelsModel: 如果使用 i2v,请切换为 Skywork/SkyReels-V1-Hunyuan-I2V。
# quant: 启用 FP8 仅权重量化
# offload: 启用模型卸载
# high_cpu_memory: 启用固定内存以减少模型卸载的开销。
# gpu_num: 使用的 GPU 数量。
SkyReelsModel = "Skywork/SkyReels-V1-Hunyuan-T2V"
python3 video_generate.py \
--model_id ${SkyReelsModel} \
--guidance_scale 6.0 \
--height 544 \
--width 960 \
--num_frames 97 \
--prompt "FPS-24, A cat wearing sunglasses and working as a lifeguard at a pool" \
--embedded_guidance_scale 1.0 \
--quant \
--offload \
--high_cpu_memory \
--gpu_num $GPU_NUM
本测试旨在比较 SkyReelsInfer 和 HunyuanVideo XDiT 在 A800(高性能计算 GPU)和 RTX 4090(消费级 GPU)上处理 544p 视频的端到端延迟。结果将展示 SkyReelsInfer 在速度和效率方面的卓越推理性能。
| 分辨率 | 视频尺寸 | transformer 步数 | 引导尺度 (guidance_scale) |
|---|---|---|---|
| 540p | 544x960, 97帧 | 30 | 6 |
实际上,Hunyuanvideo XDIT 由于显存不足无法在 RTX 4090 上进行推理。为了解决这个问题,我们基于官方的卸载、FP8 模型权重和 VAE 分块进行了修复。这些修复包括:
a) 优化模型加载和初始化逻辑,避免将完整的 FP16 模型加载到内存中。
b) 减小 VAE 分块大小以缓解内存使用。
对于在 RTX 4090 上部署 SkyReelsInfer,将实施以下措施以确保足够的显存可用性和高效的推理:
a) 模型量化: 应用 FP8 仅权重量化,确保模型可以完全加载到内存中。
b) 卸载策略: 启用参数级卸载以进一步减少显存使用。
c) 多 GPU 并行: 激活上下文并行、CFG 并行和 VAE 并行以进行分布式处理。
d) 计算优化: 使用 SegaAttn 优化注意力层计算,并启用 Torch.Compile 进行 transformer 编译优化(支持 4-GPU 和 8-GPU 配置)。
| GPU 数量 | hunyuanvideo + xdit | SkyReelsInfer |
|---|---|---|
| 1 | 显存不足 (OOM) | 889.31秒 |
| 2 | 显存不足 (OOM) | 453.69秒 |
| 4 | 464.3秒 | 293.3秒 |
| 8 | 无法将视频序列分割为 ulysses_degree x ring_degree | 159.43秒 |
上表总结了在 RTX 4090 上使用 HunyuanVideo XDIT 和 SkyReelsVideoInfer 生成 544p 4 秒视频的端到端延迟测试结果。可以得出以下结论:
- 在相同的 RTX 4090 资源条件下(4 张 GPU),SkyReelsInfer 版本与 HunyuanVideo XDIT 相比,端到端延迟降低了 58.3%(293.3秒 对比 464.3秒)。
- SkyReelsInfer 版本具有更稳健的部署策略,在用户级支持 1 到 8 张 GPU 的推理部署。
基于 A800 (80G),主要测试集中在比较 HunyuanVideo XDIT 和 SkyReelsInfer 在不影响输出质量的情况下的性能差异。
| GPU 数量 | hunyuanvideo + xdit | SkyReelsInfer |
|---|---|---|
| 1 | 884.20秒 | 771.03秒 |
| 2 | 487.22秒 | 387.01秒 |
| 4 | 263.48秒 | 205.49秒 |
| 8 | 无法将视频序列分割为 ulysses_degree x ring_degree | 107.41秒 |
上表总结了在 A800 上使用 HunyuanVideo XDIT 和 SkyReelsVideoInfer 生成 544p 4 秒视频的端到端延迟测试结果。可以得出以下结论:
在相同的 A800 资源条件下,SkyReelsInfer 版本与官方 HunyuanVideo 版本相比,端到端延迟降低了 14.7% 到 28.2%。
SkyReelsInfer 版本具有更稳健的多 GPU 部署策略。
我们要感谢