AVIIAX / vid
Este modelo se basa en un modelo de difusión de generación de texto a video en varias etapas, que recibe un texto descriptivo y retorna 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 consta de tres subredes: modelo de extracción de características de texto, modelo de difusión de características de texto a espacio latente de video, y modelo de espacio latente de video a espacio visual de video. El modelo adopta una estructura UNet3D y genera videos mediante un proceso iterativo de eliminación de ruido a partir de un video de ruido gaussiano puro. El modelo está destinado para propósitos de investigación. Actualmente solo soporta entrada en inglés.
Como usar
Vamos a instalar primero las bibliotecas requeridas:
$ pip install diffusers transformers accelerate torch
Ahora, generar 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 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 uso de memoria en 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)
El código anterior mostrará la ruta guardada del archivo de video de salida, y el formato de codificación actual se puede reproducir con el reproductor VLC.
Funcionalidades
- Modelo de difusión de generación de video a partir de texto
- Consta de tres subredes
- Parámetros del modelo: aproximadamente 1.7 mil millones
- Adopta una estructura UNet3D
- Genera videos a partir de ruido gaussiano
- Solo admite entrada en inglés
Casos de uso
- Generación de videos basados en descripciones de texto en inglés arbitrarias
- Investigación en tecnologías de generación de video a partir de texto
- Optimización para la generación de videos de larga duración