Model Cards for IQA-PyTorch

December 30, 2025 ยท View on GitHub

General FR/NR Methods

List all model names with:

import pyiqa
print(pyiqa.list_models())
FR MethodModel namesDescriptionScore Direction
DMMdmmPublished in TMMHigher is better
TOPIQtopiq_fr, topiq_fr-pipalProposed in this paperHigher is better
AHIQahiqHigher is better
PieAPPpieappLower is better
LPIPSlpips, lpips-vgg, stlpips, stlpips-vgg, lpips+, lpips-vgg+Lower is better
DISTSdistsLower is better
WaDIQaMwadiqam_frHigher is better
CKDN1ckdnHigher is better
FSIMfsimHigher is better
SSIMssim, ssimcGray input (y channel), color inputHigher is better
MS-SSIMms_ssimHigher is better
CW-SSIMcw_ssimHigher is better
PSNRpsnr, psnryColor input, gray input (y channel)Higher is better
VIFvifHigher is better
GMSDgmsdLower is better
NLPDnlpdLower is better
VSIvsiHigher is better
MADmadLower is better
NR MethodModel namesDescriptionScore Direction
Q-Alignqalign (with quality[default], aesthetic options)Large vision-language modelsHigher is better
QualiCLIP(+)qualiclip, qualiclip+, qualiclip+-clive, qualiclip+-flive, qualiclip+-spaqQualiCLIP(+) with different datasets, koniq by defaultHigher is better
MACLIPmaclipCLIP based methodHigher is better
LIQEliqe, liqe_mixCLIP based methodHigher is better
ARNIQAarniqa, arniqa-live, arniqa-csiq, arniqa-tid, arniqa-kadid, arniqa-clive, arniqa-flive, arniqa-spaqARNIQA with different datasets, koniq by defaultHigher is better
TOPIQtopiq_nr, topiq_nr-flive, topiq_nr-spaqTOPIQ with different datasets, koniq by defaultHigher is better
TReStres, tres-fliveTReS with different datasets, koniq by defaultHigher is better
FIDfidStatistic distance between two datasetsLower is better
CLIPIQA(+)clipiqa, clipiqa+, clipiqa+_vitL14_512,clipiqa+_rn50_512CLIPIQA(+) with different backbone, RN50 by defaultHigher is better
MANIQAmaniqa, maniqa-kadid, maniqa-pipalMUSIQ with different datasets, koniq by defaultHigher is better
MUSIQmusiq, musiq-spaq, musiq-paq2piq, musiq-avaMUSIQ with different datasets, koniq by defaultHigher is better
DBCNNdbcnnHigher is better
PaQ-2-PiQpaq2piqHigher is better
HyperIQAhyperiqaHigher is better
NIMAnima, nima-vgg16-avaAesthetic metric trained with AVA datasetHigher is better
WaDIQaMwadiqam_nrHigher is better
CNNIQAcnniqaHigher is better
NRQM(Ma)2nrqmNo backwardHigher is better
PI(Perceptual Index)piNo backwardLower is better
BRISQUEbrisque, brisque_matlabNo backwardLower is better
ILNIQEilniqeNo backwardLower is better
NIQEniqe, niqe_matlabNo backwardLower is better
PIQEpiqeNo backwardLower is better

[1] This method use distorted image as reference. Please refer to the paper for details.
[2] Currently, only naive random forest regression is implemented and does not support backward.

IQA Methods for Specific Tasks

TaskMethodDescriptionScore Direction
Color IQAmsswdPerceptual color difference metric MS-SWD, ECCV2024, Arxiv, GithubLower is better
Face IQAtopiq_nr-faceTOPIQ model trained with face IQA dataset (GFIQA)Higher is better
Underwater IQAurankerA ranking-based underwater image quality assessment (UIQA) method, AAAI2023, Arxiv, GithubHigher is better

Metric Output Score Range

Note: ~ means that the corresponding numeric bound is typical value and not mathematically guaranteed

You can now access the rough output range of each metric like this:

metric = pyiqa.create_metric('lpips')
print(metric.score_range)