vdo/text-to-video-ms-1.7b

vdo
Texto a video

Este modelo se basa en un modelo de difusión multi-etapa de generación de texto a video, que recibe una descripción de texto 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 texto a video por difusión consiste en tres subredes: modelo de extracción de características de texto, modelo de difusión de espacio latente de texto a video y el 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 admite la entrada en inglés. El modelo de difusión adopta una estructura UNet3D y realiza la generación de video a través del proceso iterativo de eliminación de ruido de un 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

Ahora, genere un video:

```python
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)

Aquí hay algunos resultados:

Un astronauta montando un caballo.

Darth Vader surfeando en olas.

Generación de video largo

Puedes optimizar el uso de memoria habilitando la atención y el corte VAE, y utilizando Torch 2.0. Esto debería permitirte generar videos de hasta 25 segundos con menos de 16GB de VRAM de GPU.

$ 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 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 sigue a Spiderman"
video_frames = pipe(prompt, num_inference_steps=25, num_frames=200).frames

# convertir a video
video_path = export_to_video(video_frames)

Los formatos de salida actuales pueden ser reproducidos con el reproductor VLC.

Funcionalidades

Modelo de difusión multi-etapa
Entrada de descripción en texto y salida de video
Solo admite entrada en inglés
Parámetros generales del modelo alrededor de 1.7 mil millones
Estructura UNet3D
Genera video a través de proceso iterativo de eliminación de ruido

Casos de uso

Generación de video a partir de descripciones de texto arbitrarias en inglés.