Files
DiffSynth-Studio/docs/source/model/StableVideoDiffusion.md
2024-11-01 14:01:31 +08:00

2.6 KiB
Raw Blame History

Stable Video Diffusion

相关链接

模型介绍

Stable Video Diffusion 模型是 StabilityAI 训练并开源的图生视频模型,该模型与 Stable Diffusion 模型类似,采用三段式的模型架构。

  • Image Encoder 采用了 CLIP 模型中的 ViT 部分,用于将输入的图像转化为 Embedding。
  • VAE 分为 Encoder 和 Decoder 部分Encoder 部分与 Stable Diffusion v1.x 完全相同仅在图像层面对视频进行逐帧压缩Decoder 部分在 Stable Diffusion v1.x VAE Decoder 的基础上增加了 3D 的卷积层并进一步进行了训练,用于消除逐帧处理过程中的闪烁问题。
  • UNet 部分同时将 Image Encoder 和 VAE Encoder 的输出作为输入,用于在 Latent Space 中进行迭代去噪。

Stable Video Diffusion 模型可以把输入的图像作为视频第一帧,并生成后续的 24 帧。但值得注意的是,虽然理论上可以继续分段生成更长视频,但分段之间缺乏连续性,因此我们不建议用这个模型分段生成较长视频。

Stable Video Diffusion 的生成效果:

代码样例

from diffsynth import save_video, ModelManager, SVDVideoPipeline
from PIL import Image


model_manager = ModelManager(model_id_list=["stable-video-diffusion-img2vid-xt"])
pipe = SVDVideoPipeline.from_model_manager(model_manager)
video = pipe(
    input_image=Image.open("your_input_image.png").resize((1024, 576)),
    num_frames=25, fps=15, height=576, width=1024,
    motion_bucket_id=127,
    num_inference_steps=50
)
save_video(video, "output_video.mp4", fps=15, quality=5)