· 4 min read

Guía paso a paso para ejecutar Stable Video Diffusion (SVD) en Linux

Stable Video Diffusion (SVD) es un modelo de generación de video, y este artículo proporciona una guía detallada sobre cómo ejecutar SVD en Linux, junto con consejos para solucionar problemas.

Vamos a explorar cómo utilizar Stable Video Diffusion (SVD), un modelo de generación de video fácil de usar lanzado por Stability AI, basado en la difusión estable de modelos de imágenes. Proporciona tanto los modelos necesarios como el código de código abierto, lo que lo hace accesible para que todos puedan empezar en menos de 20 segundos.

Recursos oficiales y páginas web para SVD

Requisitos de instalación

  1. Requisito de memoria de GPU: al menos 16 GB de memoria de GPU.
  2. Requisito de RAM: se recomiendan 32 GB de RAM o más.

Descargar el código de Stable Video Diffusion

git clone https://github.com/Stability-AI/generative-models
cd generative-models

Descargar modelos preentrenados oficiales para Stable Video Diffusion

Hay cuatro modelos disponibles, y cualquiera de ellos se puede utilizar. Deben colocarse en el directorio generative-models/checkpoints/.

Diferencias entre los modelos:

  • SVD: Este modelo está entrenado para generar 14 fotogramas de resolución 576x1024 basados en fotogramas contextuales del mismo tamaño.
  • SVD-XT: Similar a la arquitectura SVD pero ajustado para generar 25 fotogramas de imágenes. Ten en cuenta que requiere más memoria de GPU y RAM.

Configuración del entorno de Python

Se recomienda crear un entorno de Python utilizando conda con Python 3.10 e instalar las dependencias de SVD.

conda create --name svd python=3.10 -y
source activate svd
pip3 install -r requirements/pt2.txt
pip3 install .

Ejecución de Stable Video Diffusion

web de Stable Video Diffusion

Ve al directorio del código de SVD y ejecuta SVD utilizando Streamlit. Puedes personalizar los parámetros de ejecución, como --server.port y --server.address.

cd generative-models
streamlit run scripts/demo/video_sampling.py --server.address 0.0.0.0 --server.port 4801

Cuando ejecutes SVD, también descargará dos modelos, models–laion–CLIP-ViT y ViT-L-14. Puedes descargarlos manualmente y colocarlos en los siguientes directorios:

/root/.cache/huggingface/hub/models–laion–CLIP-ViT-H-14-laion2B-s32B-b79K
/root/.cache/clip/ViT-L-14.pt

Enlaces de descarga:

Cuando veas el siguiente contenido en la terminal, significa que SVD se ha ejecutado con éxito:

ejecución de Stable Video Diffusion

Uso de SVD

Abre un navegador web y ve a http://<ip>:4801. Verás la siguiente interfaz:

Comienza a utilizar Stable Video Diffusion para generar videos. Selecciona la versión del modelo y marca:

Arrastra y suelta las imágenes que desees utilizar para generar videos en el área de Input, luego haz clic en el botón Sample y espera a que se genere el video.

La velocidad de generación depende de la configuración de tu máquina. Por ejemplo, una RTX 3090 tarda alrededor de 2-3 minutos, y el video generado se descargará automáticamente de forma local.

Explicación de la configuración de parámetros

configuración y parámetros de Stable Video Diffusion

  • H (Altura): Configura la altura de los fotogramas de video en píxeles. El valor predeterminado es 576.
  • W (Ancho): Configura el ancho de los fotogramas de video en píxeles. El valor predeterminado es 1024.
  • T (Tiempo o Fotogramas): Configura el número de fotogramas a generar para el video. El valor predeterminado es 14.
  • Seed: Ingresa un número para obtener resultados aleatorios pero reproducibles. El valor predeterminado es 23.
  • Guardar imágenes localmente: Marca esta opción para guardar los fotogramas de video generados en tu sistema local.

Configuración avanzada

  • Pasos #1 (Iteraciones): Configura el número de iteraciones necesarias para generar cada fotograma de video. El valor predeterminado es 25.

  • Muestreador #1: Elige un algoritmo de muestreo para guiar la generación de fotogramas de video. La opción predeterminada es EulerEDMSampler.

  • Discretización #1: Configura la estrategia de discretización. El valor predeterminado es EDMDiscretization.

  • Discretización #2: Puedes elegir una segunda estrategia de discretización, como LinearPredictionGuider.

Funciones especiales

  • Decodificar t fotogramas a la vez: Configura el número de fotogramas a decodificar de una vez en la memoria. Si tienes poca VRAM (memoria de video), considera configurar un valor más bajo, como 2.
  • Sobrescribir fps en el generador de mp4: Marca esta opción para sobrescribir la configuración de la velocidad de fotogramas al generar archivos de video mp4.

Problemas comunes con Stable Video Diffusion

No se encuentra el módulo llamado 'scripts'

>> from scripts.demo.streamlit_helpers import *
ModuleNotFoundError: No se encuentra el módulo llamado 'scripts'

Este error ocurre porque el directorio generative-models debe agregarse a la variable de entorno PYTHONPATH. Puedes hacerlo de la siguiente manera:

echo 'export PYTHONPATH=/generative-models:$PYTHONPATH' >> /root/.bashrc
source /root/.bashrc

TypeError: randn_like()

    value_dict["cond_frames"] = img + cond_aug * torch.randn_like(img)
TypeError: randn_like

Este error se debe a no seleccionar una imagen para generar desde ella. Debes cargar una imagen.

    Share:
    Back to Blog