text-to-video-ms-1.7b-legacy

ali-vilab
Texto a video

Este modelo se basa en un modelo de difusión de generación de video a partir de texto en múltiples etapas, que toma un texto de descripción y devuelve un video que coincide con la descripción del texto. Solo se admite la entrada en inglés. El modelo de generación de video a partir de texto consiste en tres subredes: un modelo de extracción de características de texto, un modelo de difusión del espacio latente de texto a video y un modelo de espacio latente de video a espacio visual de video. Los parámetros generales del modelo son aproximadamente 1.7 mil millones. Actualmente, solo se admite la entrada en inglés. El modelo de difusión adopta una estructura UNet3D e implementa la generación de video a través del proceso iterativo de eliminación de ruido desde el video de ruido gaussiano puro. Este modelo está destinado a fines de investigación. Por favor, consulte las secciones de limitaciones y sesgos del modelo, uso indebido, uso malicioso y uso excesivo.

Como usar

Primero instalemos las bibliotecas necesarias:

$ pip install git+https://github.com/huggingface/diffusers transformers accelerate

Ahora, genera un video:

import torch
from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler
from diffusers.utils import export_to_video

pipe = DiffusionPipeline.from_pretrained("damo-vilab/text-to-video-ms-1.7b-legacy", torch_dtype=torch.float16)
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe.enable_model_cpu_offload()

prompt = "Spiderman está surfeando"
video_frames = pipe(prompt, num_inference_steps=25).frames
video_path = export_to_video(video_frames)

Puedes optimizar el uso de memoria habilitando el corte de atención y VAE y usando Torch 2.0 para generar vídeos de hasta 25 segundos en menos de 16GB de VRAM de GPU:

$ pip install diffusers transformers accelerate transformers accelerate
import torch
from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler
from diffusers.utils import export_to_video

# cargar pipeline
pipe = DiffusionPipeline.from_pretrained("damo-vilab/text-to-video-ms-1.7b", torch_dtype=torch.float16, variant="fp16")
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)

# optimizar para memoria GPU
pipe.enable_model_cpu_offload()
pipe.enable_vae_slicing()

# generar
prompt = "Spiderman está surfeando. Darth Vader también está surfeando y siguiendo a Spiderman"
video_frames = pipe(prompt, num_inference_steps=25, num_frames=200).frames

# convertir a video
video_path = export_to_video(video_frames)

Funcionalidades

Modelo de extracción de características de texto
Modelo de difusión del espacio latente de texto a video
Modelo de espacio latente de video a espacio visual de video
Estructura UNet3D
Eliminación iterativa de ruido desde video de ruido gaussiano puro

Casos de uso

Generación de videos a partir de descripciones en inglés
Aplicaciones en investigación
Razonamiento y generación de videos basados en descripciones arbitrarias en inglés