Downloads · 30 days
0
SunsetOnCordoba/eigenvideo-checkpoints
eigenvideo-checkpoints is a machine learning model from SunsetOnCordoba. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
Checkpoints from EigenVideo - an autoregressive video generation model that predicts future frames in HunyuanVideo's 16-channel latent space.
Downloads · 30 days
0
Access
Public
Updated Dec 10, 2025
Repo size
1.5 GB
Likes
0
Public
Click a slice to open those files.
.pt1.5 GB · 100%
From the Hugging Face model README
Checkpoints from EigenVideo - an autoregressive video generation model that predicts future frames in HunyuanVideo's 16-channel latent space.
EigenVideo uses the EigenSwitch architecture with:
The model operates in HunyuanVideo's VAE latent space (16 channels, 8x spatial, 4x temporal compression).
File: overfit_step_500.pt
Single-video memorization checkpoint that validates the architecture works. Trained on one video clip to near-perfect reconstruction.
| Metric | Value |
|---|---|
| Parameters | 58.6M |
| Training Steps | 500 |
| Final Loss | 0.027 |
| Correlation | 0.989 |
| d_model | 512 |
| n_layers | 12 |
| n_slots | 4 |
Config:
{
"d_model": 512,
"n_layers": 12,
"n_slots": 4,
"n_heads": 64,
"text_embed_dim": 1024,
"num_cross_attn_heads": 8,
"use_overlapping_patches": False
}
File: 50M_h100_step_200.pt
Larger model with H100-optimized settings. Trained on multiple video clips with text conditioning.
| Metric | Value |
|---|---|
| Parameters | 50M+ |
| Training Steps | 200 |
| Final Loss | 0.040 |
| d_model | 768 |
| n_layers | 16 |
| n_slots | 64 |
Config:
{
"d_model": 768,
"n_layers": 16,
"n_slots": 64,
"n_heads": 64,
"headdim": 32,
"text_embed_dim": 1024,
"num_cross_attn_heads": 8,
"use_overlapping_patches": True
}
import torch
from eigenvideo.models.student.eigen_switch_model import EigenSwitchModel
# Load checkpoint
ckpt = torch.load("overfit_step_500.pt", map_location="cpu")
config = ckpt["config"]
# Create model
model = EigenSwitchModel(**config)
model.load_state_dict(ckpt["model_state_dict"])
model.eval()
# Generate video frames
# z_0: initial latent frame [B, 16, H, W]
# text_embed: T5-large embeddings [B, seq_len, 1024]
output = model(z_0, seq_len=16, text_embed=text_embed)
z_pred = output.predicted_latents # [B, T, 16, H, W]
from diffusers import AutoencoderKLHunyuanVideo
vae = AutoencoderKLHunyuanVideo.from_pretrained(
"hunyuanvideo-community/HunyuanVideo",
subfolder="vae",
torch_dtype=torch.float16,
)
vae = vae.cuda().eval()
# z_pred shape: [B, C, T, H, W] where C=16
z_pred = z_pred / vae.config.scaling_factor
frames = vae.decode(z_pred).sample # [B, 3, T*4, H*8, W*8]
These models were trained on latents from the UltraVideo dataset:
Related datasets:
Apache 2.0
@misc{eigenvideo2024,
title={EigenVideo: Autoregressive Video Generation with EigenTitan Memory},
year={2024}
}