ali-vilab/text-to-video-ms-1.7b

ali-vilab
Texto a video

Este modelo se basa en un modelo de difusión de generación de texto a video de múltiples etapas, que toma como entrada un texto descriptivo y devuelve un video que coincide con la descripción del texto. Solo se admite entrada en inglés. El modelo de generación de texto a video consiste en tres sub-redes: modelo de extracción de características de texto, modelo de difusión del espacio latente de texto a video y modelo del espacio latente de video al espacio visual de video. Los parámetros generales del modelo son aproximadamente 1.7 mil millones. Actualmente, solo admite entrada en inglés. El modelo de difusión adopta una estructura UNet3D y implementa la generación de video a través del proceso iterativo de eliminación de ruido del 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 y uso indebido, uso malicioso y uso excesivo.

Como usar

Primero, instalemos las bibliotecas necesarias:

$ pip install diffusers transformers accelerate torch

Ahora, generemos 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', torch_dtype=torch.float16, variant='fp16')
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)

Generación de video largo:

$ pip install git+https://github.com/huggingface/diffusers transformers accelerate
import torch
from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler
from diffusers.utils import export_to_video

# cargar la tubería
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 el uso de memoria de 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)

El archivo mp4 de salida se puede ver con el reproductor multimedia VLC. Es posible que algunos otros reproductores multimedia no lo vean normalmente.

Funcionalidades

Generación de video a partir de descripciones textuales
Adopta una estructura UNet3D
Proceso iterativo de eliminación de ruido
Parámetros del modelo de aproximadamente 1.7 mil millones
Solo se admite entrada en inglés

Casos de uso

Este modelo tiene una amplia gama de aplicaciones y puede razonar y generar videos basados en descripciones textuales en inglés arbitrarias.