text-to-video-ms-1.7b-legacy
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