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.