AVIIAX / vid

AVIIAX
Texto a video

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

Recibe las últimas noticias y actualizaciones sobre el mundo de IA directamente en tu bandeja de entrada.