gdhe17/Self-Forcing

gdhe17
Texto a video

Self-Forcing es un modelo de difusión de video autoregresivo para generación texto-a-video. Entrena simulando el proceso de inferencia mediante despliegue autoregresivo con caché KV, lo que reduce el desajuste entre entrenamiento y prueba. Está orientado a generación de video en tiempo real y streaming en una sola RTX 4090, manteniendo una calidad comparable a modelos de difusión de última generación.

Como usar

Requisitos principales: GPU Nvidia con al menos 24 GB de memoria, Linux y 64 GB de RAM.

Instalación:

conda create -n self_forcing python=3.10 -y
conda activate self_forcing
pip install -r requirements.txt
pip install flash-attn --no-build-isolation
python setup.py develop

Descarga de checkpoints:

huggingface-cli download Wan-AI/Wan2.1-T2V-1.3B --local-dir-use-symlinks False --local-dir wan_models/Wan2.1-T2V-1.3B
huggingface-cli download gdhe17/Self-Forcing checkpoints/self_forcing_dmd.pt --local-dir .

Demo con interfaz gráfica:

python demo.py

Inferencia por CLI:

python inference.py \
  --config_path configs/self_forcing_dmd.yaml \
  --output_folder videos/self_forcing_dmd \
  --checkpoint_path checkpoints/self_forcing_dmd.pt \
  --data_path prompts/MovieGenVideoBench_extended.txt \
  --use_ema

Entrenamiento con DMD:

torchrun --nnodes=8 --nproc_per_node=8 --rdzv_id=5235 \
  --rdzv_backend=c10d \
  --rdzv_endpoint $MASTER_ADDR \
  train.py \
  --config_path configs/self_forcing_dmd.yaml \
  --logdir logs/self_forcing_dmd \
  --disable-wandb

Funcionalidades

Generación texto-a-video con arquitectura de difusión autoregresiva.
Entrenamiento Self Forcing que simula la inferencia durante el entrenamiento.
Uso de caché KV para despliegue autoregresivo eficiente.
Checkpoint chunk-wise autoregressive entrenado con DMD.
Puede ejecutarse en una GPU Nvidia con al menos 24 GB de memoria, como RTX 4090, A100 o H100.
Incluye demo GUI, inferencia por CLI y scripts de entrenamiento.
Licencia Apache 2.0.
Basado en CausVid y Wan2.1.

Casos de uso

Generación de videos a partir de prompts largos y detallados.
Investigación en modelos de difusión de video autoregresivos.
Prototipos de generación de video en tiempo real o streaming.
Evaluación del entrenamiento Self Forcing para cerrar la brecha entre entrenamiento e inferencia.
Entrenamiento o reproducción de resultados con DMD usando infraestructuras multi-GPU.