Diffusers 文档

Stable Video Diffusion

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

Stable Video Diffusion

Stable Video Diffusion 是由 Andreas Blattmann, Tim Dockhorn, Sumith Kulal, Daniel Mendelevitch, Maciej Kilian, Dominik Lorenz, Yam Levi, Zion English, Vikram Voleti, Adam Letts, Varun Jampani, Robin Rombach 在 Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets 中提出的。

论文摘要如下:

我们提出了 Stable Video Diffusion——一个用于高分辨率、最先进的文本到视频和图像到视频生成的潜在视频扩散模型。最近,经过2D图像合成训练的潜在扩散模型通过插入时间层并在小型高质量视频数据集上进行微调,已转化为生成式视频模型。然而,文献中的训练方法差异很大,该领域尚未就统一的视频数据整理策略达成一致。在本文中,我们确定并评估了成功训练视频 LDM 的三个不同阶段:文本到图像预训练、视频预训练和高质量视频微调。此外,我们证明了精心整理的预训练数据集对于生成高质量视频的必要性,并提出了一个系统化的整理过程来训练一个强大的基础模型,包括字幕和过滤策略。然后,我们探索了在高质量数据上微调我们的基础模型的影响,并训练了一个与闭源视频生成具有竞争力的文本到视频模型。我们还展示了我们的基础模型为下游任务(如图像到视频生成)和对相机运动特定 LoRA 模块的适应性提供了强大的运动表示。最后,我们证明了我们的模型提供了一个强大的多视图3D先验,可以作为基础来微调一个多视图扩散模型,该模型以前馈方式联合生成对象的多个视图,以其计算预算的一小部分优于基于图像的方法。我们在此 URL 发布代码和模型权重。

要了解如何使用 Stable Video Diffusion,请参阅 Stable Video Diffusion 指南。


请查看 Stability AI Hub 组织,获取 基础扩展帧 检查点!

提示

视频生成是内存密集型操作,减少内存使用的一种方法是在管道的 UNet 上设置 enable_forward_chunking,这样你就不会一次性运行整个前馈层。将其分成块在循环中运行会更高效。

有关特定参数如何影响视频生成以及如何通过减少内存使用来优化推理的更多详细信息,请参阅 文本或图像到视频 指南。

StableVideoDiffusionPipeline

class diffusers.StableVideoDiffusionPipeline

< >

( vae: AutoencoderKLTemporalDecoder image_encoder: CLIPVisionModelWithProjection unet: UNetSpatioTemporalConditionModel scheduler: EulerDiscreteScheduler feature_extractor: CLIPImageProcessor )

参数

  • vae (AutoencoderKLTemporalDecoder) — 用于将图像编码和解码为潜在表示的变分自编码器 (VAE) 模型。
  • image_encoder (CLIPVisionModelWithProjection) — 冻结的 CLIP 图像编码器(laion/CLIP-ViT-H-14-laion2B-s32B-b79K)。
  • unet (UNetSpatioTemporalConditionModel) — 一个用于对编码图像潜在表示进行去噪的 UNetSpatioTemporalConditionModel
  • scheduler (EulerDiscreteScheduler) — 与 unet 结合使用的调度器,用于对编码图像潜在表示进行去噪。
  • feature_extractor (CLIPImageProcessor) — 一个 CLIPImageProcessor,用于从生成的图像中提取特征。

用于使用 Stable Video Diffusion 从输入图像生成视频的管道。

该模型继承自 DiffusionPipeline。请查看超类文档,了解为所有管道实现的通用方法(下载、保存、在特定设备上运行等)。

StableVideoDiffusionPipelineOutput

class diffusers.pipelines.stable_video_diffusion.StableVideoDiffusionPipelineOutput

< >

( frames: typing.Union[typing.List[typing.List[PIL.Image.Image]], numpy.ndarray, torch.Tensor] )

参数

  • frames ([List[List[PIL.Image.Image]], np.ndarray, torch.Tensor]) — 长度为 batch_size 的去噪 PIL 图像列表,或形状为 (batch_size, num_frames, height, width, num_channels) 的 numpy 数组或 torch 张量。

Stable Video Diffusion 管道的输出类。

< > 在 GitHub 上更新