vdo/text-to-video-ms-1.7b
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.