← all repositories
photosynthesis-team/piq

Image quality metrics that train with your model

PIQ exists because nobody wants to reimplement SSIM, FID, or BRISQUE for every PyTorch project.

1.6k stars Python Computer VisionData Tooling
piq
Not currently ranked — collecting fresh signals.
star history

What it does

PIQ is a PyTorch-native collection of image quality metrics spanning full-reference (PSNR, SSIM, LPIPS), no-reference (BRISQUE, CLIP-IQA), and distribution-based (FID, KID, Inception Score) measures. It exposes both functional interfaces for quick evaluation and class-based modules that plug directly into training loops as loss functions. The library targets generative and image-to-image tasks where you need consistent, validated scoring without framework hopping.

The interesting bit

Most metric implementations stop at evaluation; PIQ makes the majority of them fully differentiable so you can backpropagate through SSIM, FID, or MS-SSIM during model optimization. It also ships with benchmarking scripts against standard opinion-score datasets like TID2013 and KADID10k, letting you verify that its SSIM actually matches the literature’s SSIM.

Key highlights

  • Pure PyTorch with minimal dependencies; runs on GPU and stays inside your existing training graph.
  • Covers three metric families: full-reference, no-reference, and distribution-based.
  • Most metrics implement both functional and module interfaces, so the same code handles evaluation and loss computation.
  • Includes validation logic to catch bad inputs before they crash a long training run.
  • Benchmarks against TID2013, KADID10k, PIPAL, KonIQ10k, and LIVE-itW with published SRCC comparisons.

Caveats

  • The README notes that compute_feats for distribution metrics expects a data loader of “predefined format,” but does not specify what that format is.
  • Python support is explicitly capped at 3.7–3.10.
  • Benchmark datasets are not bundled; you must download TID2013, KADID10k, and others separately.

Verdict

Worth a look if you train GANs, autoencoders, or any image-to-image models in PyTorch and are tired of copy-pasting metric implementations. Skip it if you only need a single static metric and do not care about differentiability or unified APIs.

Frequently asked

What is photosynthesis-team/piq?
PIQ exists because nobody wants to reimplement SSIM, FID, or BRISQUE for every PyTorch project.
Is piq open source?
Yes — photosynthesis-team/piq is open source, released under the Apache-2.0 license.
What language is piq written in?
photosynthesis-team/piq is primarily written in Python.
How popular is piq?
photosynthesis-team/piq has 1.6k stars on GitHub.
Where can I find piq?
photosynthesis-team/piq is on GitHub at https://github.com/photosynthesis-team/piq.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.