provin / prueba
Este modelo se basa en un modelo de difusión de generación de texto a video en múltiples etapas, que ingresa un texto de descripción y devuelve un video que coincide con la descripción del texto. Este modelo consta de tres subredes: 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 del 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 desde el video de ruido gaussiano puro. Este modelo está destinado a fines de investigación.
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', 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)
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)
El código anterior mostrará la ruta de guardado del video de salida, y el formato de codificación actual se puede reproducir con el reproductor VLC. El archivo mp4 de salida puede ser visto por el reproductor multimedia VLC. Algunos otros reproductores multimedia pueden no reproducirlo normalmente.
Funcionalidades
- Modelo de extracción de características de texto
- Modelo de difusión del espacio latente de texto a video
- Modelo del espacio latente de video al espacio visual del video
- Estructura UNet3D
- Generación de video a través de proceso iterativo de eliminación de ruido
Casos de uso
- Este modelo tiene una amplia gama de aplicaciones y puede razonar y generar videos basados en descripciones de texto en inglés arbitrarias.