provin / prueba

provin
Texto a video

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.