ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Open-Sora-Plan v1.1.0 技术报告解读:CausalVideoVAE 结构优化、数据流水线与扩散模型级联训练实践

2026/9/15 11:45:23 拓冰建站 浏览量
Open-Sora-Plan v1.1.0 技术报告解读:CausalVideoVAE 结构优化、数据流水线与扩散模型级联训练实践 Open-Sora-Plan v1.1.0 技术报告解读CausalVideoVAE 结构优化、数据流水线与扩散模型级联训练实践【免费下载链接】Open-Sora-PlanThis project aim to reproduce Sora (Open AI T2V model), we wish the open source community contribute to this project.项目地址: https://gitcode.com/GitHub_Trending/op/Open-Sora-Plan本篇技术指南以 Open-Sora-Plan v1.1.0 官方技术报告docs/Report-v1.1.0.md为主体结合当前仓库源码深入剖析 v1.1.0 相对 v1.0.0 的两大核心改进——CausalVideoVAE 的压缩效率与推理性能提升、基于 ShareGPT4Video 的高质量数据构建并完整梳理扩散模型的三阶段级联训练方案。读者读完本文后将掌握 v1.1.0 在视频压缩、时间维度建模、平铺推理、数据配比与多阶段训练上的具体工程决策与可复现细节并能在 opensora/models/causalvideovae 与 scripts 中找到对应的实现与脚本入口。一、v1.1.0 版本概览在 v1.0.0 基础上的两项关键升级Open-Sora-Plan v1.0.02024 年 4 月发布以简洁高效的设计和出色的文生视频能力被多个研究项目采用为基础模型。v1.1.0 在此基础上重点解决两个问题更优的视觉压缩表示与更高画质、更长时长的视频生成。其具体手段为优化 CausalVideoVAE 架构在保持性能基本不变的前提下显著降低编码器开销从而支撑 257、513 帧等长序列的压缩同时改进时间维建模减少高频细节损失。升级数据与标注质量采用 ShareGPT4Video 作为视频标注器使模型能更好理解视频的时序内容与世界的运转方式视频数据规模从 v1.0.0 的约 300 小时提升到约 3k 小时。值得注意的是v1.1.0 延续了 v1.0.0 的极简设计哲学与数据高效路线。报告指出在同等条件下 v1.1.0 的表现与 Sora 基础模型相当这暗示其演进方向符合 Sora 所展现的缩放定律scaling law。官方同时开源了代码、模型与数据其中扩散模型与 CausalVideoVAE 权重、以及原始视频与标注文本均公开发布训练与采样脚本也全部开放可从仓库 opensora 目录与 scripts 目录获取。二、CausalVideoVAE为长序列压缩而生的结构瘦身2.1 编码器裁剪仅保留最后两阶段 CausalConv3D随着帧数增加CausalVideoVAE 编码器的显存开销逐步攀升。在训练 257 帧视频时80GB 显存已不足以让 VAE 一次性完成编码。v1.1.0 因此对编码器做了针对性裁剪减少 CausalConv3D 层数仅在编码器中保留最后两个阶段的 CausalConv3D。这一改动显著降低了显存与计算开销同时几乎不影响重建性能。报告中特别强调只修改了编码器解码器仍保留全部 CausalConv3D 层——因为训练扩散模型阶段并不需要解码器参与。这一设计在源码中有直接对应。在 opensora/models/causalvideovae/model/vae/modeling_causalvae.py 中Encoder与Decoder是两个独立的模块Encoder通过resnet_blocks、spatial_downsample、temporal_downsample三个元组配置每级分辨率下的网络结构CausalVAEModel则在构造时分别实例化二者因此裁剪编码器不需要改动解码器两者结构参数天然解耦。为了验证裁剪效果官方在 H100 上对 v1.0.0 与 v1.1.0 的编码器前向推理进行了对比结果如下表版本129×256×256 峰值显存129×256×256 速度257×256×256 峰值显存257×256×256 速度513×256×256 峰值显存513×256×256 速度v1.0.022G2.9 it/sOOM-OOM-v1.1.018G4.9 it/s34G2.5 it/s61G1.2 it/s可以看到v1.1.0 编码器在 129 帧时显存从 22G 降至 18G、速度从 2.9 it/s 提升至 4.9 it/s更重要的是首次能够处理 257 帧34G乃至 513 帧61G的输入这为后续扩散模型训练长视频提供了前提。2.2 时间模块从单一 TemporalAvgPool 到卷积与可学习权重的混合v1.0.0 的时间模块只有TemporalAvgPool其代价是丢失视频中的高频信息如细节与边缘。v1.1.0 引入卷积分支并为不同分支赋予可学习权重使各分支能够解耦不同类型特征若去掉 CausalConv3D 分支重建视频会非常模糊若去掉 TemporalAvgPool 分支视频则变得异常锐利——说明均值池化与卷积分别负责低频与高频信息的保留二者缺一不可。这一均值池化 卷积 可学习混合系数的实现即TimeDownsampleRes2x位于 opensora/models/causalvideovae/model/modules/updownsample.py。其核心逻辑为self.mix_factor torch.nn.Parameter(torch.Tensor([mix_factor])) # 可学习混合系数默认 2.0 ... alpha torch.sigmoid(self.mix_factor) return alpha * self.avg_pool(x) (1 - alpha) * self.conv(x)其中alpha由sigmoid(mix_factor)得到avg_pool分支在时间维上以 stride2 降采样保留低频主体conv分支3D 卷积时间核大小 3stride2则负责捕捉细节前帧 padding 采用首帧复制first_frame_pad保证时序上的因果性。对称地上采样侧由TimeUpsampleRes2x实现同样带有mix_factor可学习参数。在 modeling_causalvae.py 中编码器第 3 级默认使用TimeDownsampleRes2x完成时间维 2 倍下采样与 v1.0.0 相比正是新增/替换了这条可学习的混合路径。官方对时间模块改进做了逐步消融验证了增加帧数与重置混合因子两个因素的贡献配置SSIM↑LPIPS↓PSNR↑Base0.8500.09128.047 Frames0.8680.07028.829 Reset mixed factor0.8730.07029.1402.3 训练细节从 Latent Diffusion VAE 初始化到混合因子重置CausalVideoVAE 的训练流程与 v1.0.0 一致从 Latent Diffusion 的 VAE 初始化并采用tail initialization尾部初始化。三个阶段安排如下第一阶段以视频尺寸 9×256×256 训练 100k 步第二阶段将帧数从 9 提升至 25官方发现这一改动显著提升模型性能混合因子mixed factor第一、二阶段均启用混合因子训练结束时a sigmoid(mixed factor)达到 0.88表明模型倾向于保留低频信息进入第三阶段前将混合因子重新初始化为 0.5即sigmoid(0.5) 0.6225进一步增强了模型能力。2.4 损失函数GAN 损失与 2D→3D 判别器升级实验发现引入 GAN 损失有助于保留高频信息并缓解网格伪影grid artifacts而将 2D GAN 切换为3D GAN还能带来进一步收益。官方消融如下GAN Loss/StepSSIM↑LPIPS↓PSNR↑2D/80k0.8790.06829.4803D/80k0.8820.06729.890在仓库中3D GAN 判别器由NLayerDiscriminator3D实现定义于 opensora/models/causalvideovae/model/losses/discriminator.py它本质是一个 3D PatchGAN第一层以 stride2 的 3D 卷积快速降低空间分辨率后续层通道数按 2 的幂次递增ndf * min(2**n, 8)逐层使用 BatchNorm3d 与 LeakyReLU(0.2)。配合感知损失与判别器损失的复合损失LPIPSWithDiscriminator3D通过 opensora/models/causalvideovae/model/losses/init.py 导出并在 scripts/causalvae/train.sh 中以--disc_cls opensora.models.causalvideovae.model.losses.LPIPSWithDiscriminator3D指定启用。2.5 推理技巧Temporal Rollback Tiled Convolution由于超长视频在单次前向中仍可能超出显存v1.1.0 提出了专为 CausalVideoVAE 设计的平铺方法temporal rollback tiled convolution。其要点是除第一个窗口外其余所有窗口都丢弃窗口内的第一帧——因为窗口首帧在编码器内部被当作图像帧处理其余帧才被当作视频帧按此规则切窗才能保持因果卷积语义一致。该逻辑在源码中体现为 modeling_causalvae.py 的tiled_encode/tiled_decode时间维按tile_sample_min_size_t - 1为步长切分窗口非首个窗口在编码后丢弃1 (tile_overlap_t - 1)帧解码侧为1 (tile_overlap_t - 1) * 4帧对应 4 倍时间下采样空间维则由tiled_encode2d/tiled_decode2d按tile_sample_min_size512×512切块块间通过blend_v/blend_h以tile_overlap_factor 0.125的比例做线性混合消除接缝。显存相关默认参数tile_sample_min_size_t 33、tile_latent_min_size_t等都在模型初始化中预设并通过enable_tiling()开关控制。实际使用时可在推理脚本中显式开启例如 scripts/causalvae/rec_video.sh 中的--enable_tiling参数。官方在 H100 上、窗口尺寸 65×256×256 下的测试结果为版本129×256×256 峰值显存129×256×256 速度257×256×256 峰值显存257×256×256 速度513×256×256 峰值显存513×256×256 速度4×8×810G1.3 s/it10G2.6 s/it10G5.3 s/it平铺后显存被稳定控制在 10G速度随帧数线性增长长视频推理因此变得可行。三、数据构建图-文与视频-文双流水线v1.1.0 支持图像与视频的联合训练数据收集因此分为两部分。官方披露约消耗 32×240 H100 小时用于生成图文/视频标注且全部数据开放。3.1 图像-文本收集流水线从 Pixart-Alpha 的 SAM 数据集获得1100 万对图像-文本对标注由 LLaVA 生成引入高质量 OCR 数据集 AnyText-3M每张图配有对应 OCR 字符但原始标注不足以描述整张图像因此使用InternVL-1.5补充描述由于 T5 仅支持英文最终只保留英文子集约占完整数据集一半从 Laion-5B 中按高分辨率、高美学评分、无水印且包含人物的标准挑选高质量图片提升人物生成质量。官方同时开源了 InternVL-1.5 使用的提示词模板# for anytext-3m Combine this rough caption: {}, analyze the image in a comprehensive and detailed manner. {} can be recognized in the image. # for human-160k Analyze the image in a comprehensive and detailed manner.最终图像数据组成如下表名称图像来源文本标注器数量对SAM-11MSAMLLaVA11,185,255Anytext-3M-enAnytextInternVL-1.51,886,137Human-160kLaionInternVL-1.5162,0943.2 视频-文本收集流水线v1.0.0 每段视频只抽一帧生成标注当视频变长后单帧无法描述时序运动。v1.1.0 改用视频标注器ShareGPT4Video为整段视频生成覆盖时序信息的标注。v1.1.0 视频数据集共约3k 小时v1.0.0 仅 300 小时标注与视频均在 CC0 协议下开源。各来源规模如下名称时长帧数数量对Mixkit42.0h6554,7355131,997Pixabay353.3h65601,51351351,483Pexel2561.9h653,832,666513271,782四、扩散模型的多阶段级联训练与 v1.0.0 相同扩散模型采用多阶段级联训练multi-stage cascaded training。三个阶段及其资源配置如下项目Stage 1Stage 2Stage 3训练视频尺寸65×512×512221×512×512513×512×512算力数量×时长80 H100 × 72512 Ascend × 72训练中检查点已发布65x512x512 目录已发布221x512x512 目录训练中训练数据约 3k 小时视频 13M 图像Stage 1一个反直觉的发现是更长时间的训练并不必然带来更好结果。官方通过观察训练日志发现 50k 步生成的视频质量优于 70–100k 步大量采样对比后确认 40–60k 步的检查点优于 80–100k 步定量来看 50k 步约对应 2 个 epoch。报告认为这或许是小数据集过拟合或 21D 模型容量受限所致。Stage 2训练与推理完全由华为昇腾Huawei Ascend算力支持在大规模集群上开展序列并行sequence parallel训练与推理一个样本被切分到 8 个 rank 上在昇腾上训练的模型可以直接加载到 GPU 上并生成同等质量的视频。仓库中保留了昇腾相关的适配代码例如 opensora/npu_config.py 以及 CausalVideoVAE 各模块中对torch_npu的分支处理可在 scripts/text_condition/npu 下找到对应的训练与采样脚本。Stage 3进一步将帧数提升至 513 帧24 FPS 下约 21 秒面临 21D 模型长时序一致性、数据量是否充足等挑战官方表示该阶段仍在持续训练与监控中。扩散模型的训练入口脚本位于 scripts/text_condition/gpu/train_t2v_v1_3.sh其中包含了数据路径、--num_frames、--max_height/--max_width、--cfg 0.1classifier-free guidance 概率、--prediction_type v_prediction、--snr_gamma 5.0、EMA--use_ema、--ema_decay 0.9999等可调参数可作为复现与二次训练的起点。五、视频编辑以 Open-Sora 为底座的长视频编辑报告中还介绍了与 ReVideo 团队的合作方向ReVideo 通过修改首帧并在编辑区域内施加运动控制实现精准视频编辑但其编辑长度受限于基础模型原基于 SVD。Open-Sora 作为长视频生成基础模型可以弥补这一短板双方正在探索以 Open-Sora 为底座的长视频编辑。初版结果仍有多处待改进之处未来会继续集成 ReVideo 推进长视频编辑模型。六、失败案例与讨论尽管 v1.1.0 效果显著与 Sora 之间仍有差距。报告坦诚地分析了三类典型失败CausalVideoVAE 的细粒度抖动在沙丘、树叶等挑战性场景中重建视频即使时间维下采样倍数不同左为 4 倍、右为 2 倍下采样仍存在抖动说明单纯降低时间下采样无法彻底解决该问题。扩散模型的语义扭曲以雪地中的金毛幼犬为提示时模型会出现头部归属混淆的语义扭曲对照 Sora 基础模型的早期输出分别放大 1×/4×/32×也存在类似问题说明通过扩大模型规模与训练数据量可能获得更好结果。动态受限limited dynamics网络爬取的视频虽然画质高但充斥着近乎静止的特写镜头导致生成视频动态不足这类伪动态视频在素材网站数据中大量存在是数据集层面的结构性问题。负提示negative prompt的有效性是另一个值得关注的实践结论即便训练数据没有显式打标签使用负提示仍能显著提升视频质量。报告因此建议在训练数据中注入更多先验——例如有水印的视频在标注中注明 watermark低码率视频标注 low quality / blurry 等标签帮助模型区分海量低质预训练数据与少量高质微调数据。示例负提示为distorted, discontinuous, ugly, blurry, low resolution, motionless, static, low quality。七、未来工作后续工作聚焦两大方向数据扩展Data Scaling当前数据全部来自素材网站特写多、运动慢是动态受限的主因将继续从多元来源收集数据v1.1.0 仅有约 3k 小时视频下一版本目标达到约100k 小时并欢迎社区推荐更多数据集。模型设计Model DesignCausalVideoVAE 方面内部测试表明即使不做时间下采样也无法完全消除细粒度重建抖动需要重新思考如何在同时支持图像与视频的前提下最大程度缓解抖动下一版本将引入更强大的 CausalVideoVAE扩散模型方面21D 模型在短视频上质量高但长视频容易出现不连续与不一致将在模型架构上探索更多可能性。八、在仓库中继续深入若希望在本仓库中进一步验证或复现本文内容可重点关注以下文件VAE 核心实现opensora/models/causalvideovae/model/vae/modeling_causalvae.pyCausalVAEModel的编码/解码、平铺推理与混合逻辑时间模块与因果卷积opensora/models/causalvideovae/model/modules/updownsample.py、opensora/models/causalvideovae/model/modules/conv.py损失与判别器opensora/models/causalvideovae/model/lossesVAE 训练与重建脚本scripts/causalvae/train.sh、scripts/causalvae/rec_video.sh、examples/rec_video.py扩散模型训练/采样脚本scripts/text_condition/gpu、scripts/text_condition/npu版本演进与设计哲学仓库根目录 README.md 及 docs 下的系列技术报告如 Report-v1.0.0.md、Report-v1.3.0.md可对照阅读理解 v1.1.0 在整体演进中的定位。总体而言Open-Sora-Plan v1.1.0 通过编码器瘦身 时间混合模块 3D GAN 平铺推理的组合拳显著提升了视频压缩的质量与效率以约 3k 小时高质量数据验证了数据驱动与缩放定律的可行性其失败案例分析与开源数据也为社区后续在长视频一致性、动态建模与数据工程上的探索提供了宝贵参照。【免费下载链接】Open-Sora-PlanThis project aim to reproduce Sora (Open AI T2V model), we wish the open source community contribute to this project.项目地址: https://gitcode.com/GitHub_Trending/op/Open-Sora-Plan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考