Skip to main content

SRVP‑FD

Python Package PyPI version Python Versions License

SRVP‑FD computes Fréchet distance between images or videos using the encoder of the
Stochastic Latent Residual Video Prediction (SRVP) model.


Installation

pip install srvp-fd          # via pip
uv pip install srvp-fd       # via uv (faster resolver)

Usage

import torch
from srvp_fd import frechet_distance, FrechetDistanceCalculator

# Images – shape: [batch, channels, height, width]
images1 = torch.randn(512, 1, 64, 64)
images2 = torch.randn(512, 1, 64, 64)

# Basic image comparison
fd = frechet_distance(images1, images2)
print(fd)

# Using a different pretrained encoder
fd_bair = frechet_distance(images1, images2, dataset="bair")

# Videos – shape: [batch, seq_len, channels, height, width]
videos1 = torch.randn(512, 16, 1, 64, 64)
videos2 = torch.randn(512, 16, 1, 64, 64)

# Different comparison types
fd_frame    = frechet_distance(videos1[:, 0], videos2[:, 0], comparison_type="frame")
fd_static   = frechet_distance(videos1, videos2, comparison_type="static_content")
fd_dynamics = frechet_distance(videos1, videos2, comparison_type="dynamics")

# Class-based API (weights loaded only once at initialization - more efficient for multiple calculations)
calc = FrechetDistanceCalculator(dataset="mmnist_stochastic")

fd1 = calc(images1, images2)                           # frame by default
fd2 = calc(videos1, videos2, comparison_type="static_content")
fd3 = calc(videos1, videos2, comparison_type="dynamics")

Comparison Types

comparison_type Latent signal (SRVP notation) Captures
"frame" Per‑frame embedding $\tilde{\mathbf x}_t = h_\phi(\mathbf{x}_t)$ Appearance of a single frame (no temporal context)
"static_content" Global content vector $\mathbf{w} = c_\psi(\tilde{\mathbf{x}}_{i_1}, …, \tilde{\mathbf{x}}_{i_k})$ pooled from the first k conditioning frames Scene or object identity that remains constant throughout the clip
"dynamics" Parameters $(\boldsymbol{\mu}_\theta,\boldsymbol{\sigma}_\theta)$ of the initial latent‑state distribution that seeds the residual dynamics $f_\theta$ Motion patterns and stochastic variation over time

For precise mathematical definitions consult SRVP paper (Franceschi et al., 2020) and the official implementation.

Gaussian‑mixture approximation: For the "dynamics" comparison we collapse the batch of per‑sample Gaussians into a single Gaussian using the closed‑form mean and covariance of an equal‑weighted mixture for the Fréchet distance computation.

Features

  • Multiple comparison modes (frame / static content / dynamics)
  • Pre‑trained weights downloaded automatically from HuggingFace Hub
  • Supported datasets: Moving MNIST, BAIR, KTH, Human3.6M
  • Single‑load, class‑based API for high‑throughput evaluation
  • CPU and GPU compatible
  • Covariance maths guarded for numerical stability

Fréchet distance formula

$$ d^2\bigl((m_1,,C_1),(m_2,,C_2)\bigr) = \lVert m_1 - m_2\rVert^2 + \mathrm{Tr}\bigl(C_1 + C_2 - 2\sqrt{C_1C_2}\bigr) $$

where $m$ are the feature means and $C$ the covariances.


Citation

If you use SRVP‑FD in your research or publications, please cite the original SRVP paper, which provides the foundation for this tool's encoder and latent representations:

This package builds on the encoder from the original SRVP model to define a set of Fréchet-based distances for evaluating image and video generation models.

@inproceedings{franceschi2020stochastic,
  title   = {Stochastic Latent Residual Video Prediction},
  author  = {Franceschi, Jean-Yves and Delasalles, Edouard and Chen, Mickael
             and Lamprier, Sylvain and Gallinari, Patrick},
  booktitle = {International Conference on Machine Learning},
  pages   = {3233--3246},
  year    = {2020},
  organization = {PMLR}
}

License

Apache License 2.0 – same as the original SRVP implementation.


Acknowledgements

Built on the excellent work of the SRVP authors:
Jean‑Yves Franceschi · Edouard Delasalles · Mickaël Chen · Sylvain Lamprier · Patrick Gallinari

Metadata

Release files for srvp-fd 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for srvp-fd 0.4.1
File Size Uploaded
srvp_fd-0.4.1.tar.gz 15.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for srvp-fd 0.4.1
File Interpreter ABI Platform
srvp_fd-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 31.2 kB

Release files / srvp_fd-0.4.1.tar.gz

Download URL srvp_fd-0.4.1.tar.gz
Size 15.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a6266dfaf00fb47fd1acdac87dcb2def39a273a8b56eb78d259f2362eb853225
BLAKE2b-256 checksum
How to use checksums
7a4777da9f2febeb85e4acde28a4aec9ca28606a88997ea1da8378b95c95b09a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / srvp_fd-0.4.1-py3-none-any.whl

Download URL srvp_fd-0.4.1-py3-none-any.whl
Size 16.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2c0d3d302bb5a90517f59d4e77240b0aaee2383c1a08ec68efb014ae892d9942
BLAKE2b-256 checksum
How to use checksums
ad1b1a86364a6dba9a3e5b078aa8d5a4d7dd964bb6257f298aa60dff64771e28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page