guoyww/animatediff-motion-adapter-v1-5-3

guoyww
Texto a video

AnimateDiff es un método que permite crear videos utilizando modelos preexistentes de Stable Diffusion de texto a imagen. Lo logra insertando capas de módulos de movimiento en un modelo de texto a imagen congelado y entrenándolo en clips de video para extraer un priord de movimiento. Estos módulos de movimiento se aplican después de los bloques ResNet y de Atención en el UNet de Stable Diffusion. Su propósito es introducir un movimiento coherente entre los cuadros de imagen. Para soportar estos módulos, introducimos los conceptos de MotionAdapter y UNetMotionModel, que sirven como una manera conveniente de usar estos módulos de movimiento con los modelos existentes de Stable Diffusion.

Como usar

import torch
from diffusers import MotionAdapter, AnimateDiffPipeline, EulerAncestralDiscreteScheduler
from diffusers.utils import export_to_gif

# Cargar el adaptador de movimiento
adapter = MotionAdapter.from_pretrained("guoyww/animatediff-motion-adapter-v1-5-3")
# Cargar el modelo ajustado basado en SD 1.5
model_id = "SG161222/Realistic_Vision_V5.1_noVAE"
pipe = AnimateDiffPipeline.from_pretrained(model_id, motion_adapter=adapter)
scheduler = EulerAncestralDiscreteScheduler.from_pretrained(
model_id,
subfolder="scheduler",
beta_schedule="linear",
)
pipe.scheduler = scheduler

# habilitar ahorro de memoria
pipe.enable_vae_slicing()
pipe.enable_model_cpu_offload()

output = pipe(
prompt=(
"masterpiece, bestquality, highlydetailed, ultradetailed, sunset, "
"orange sky, warm lighting, fishing boats, ocean waves seagulls, "
"rippling water, wharf, silhouette, serene atmosphere, dusk, evening glow, "
"golden hour, coastal landscape, seaside scenery"),
negative_prompt="bad quality, worse quality",
num_frames=16,
guidance_scale=7.5,
num_inference_steps=25,
generator=torch.Generator("cpu").manual_seed(42),
)
frames = output.frames[0]
export_to_gif(frames, "animation.gif")

Funcionalidades

Crear videos utilizando modelos de texto a imagen preexistentes
Capa de módulos de movimiento insertados en el modelo de texto a imagen
Entrenamiento realizado en clips de video para extraer el priord de movimiento
Aplicación de módulos de movimiento después de los bloques ResNet y de Atención
Introducción de movimiento coherente entre los cuadros

Casos de uso

Creación de videos a partir de modelos de texto a imagen
Generación de movimiento coherente en videos utilizando módulos de movimiento
Adaptación de modelos existentes de Stable Diffusion para creación de videos