ayase 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ayase-0.1.0/.gitignore +51 -0
- ayase-0.1.0/LICENSE +21 -0
- ayase-0.1.0/PKG-INFO +618 -0
- ayase-0.1.0/README.md +445 -0
- ayase-0.1.0/pyproject.toml +219 -0
- ayase-0.1.0/src/ayase/__init__.py +21 -0
- ayase-0.1.0/src/ayase/__main__.py +11 -0
- ayase-0.1.0/src/ayase/audio.py +69 -0
- ayase-0.1.0/src/ayase/base_modules.py +228 -0
- ayase-0.1.0/src/ayase/cli.py +693 -0
- ayase-0.1.0/src/ayase/config.py +158 -0
- ayase-0.1.0/src/ayase/models.py +887 -0
- ayase-0.1.0/src/ayase/modules/__init__.py +242 -0
- ayase-0.1.0/src/ayase/modules/action_recognition.py +215 -0
- ayase-0.1.0/src/ayase/modules/advanced_flow.py +144 -0
- ayase-0.1.0/src/ayase/modules/aesthetic.py +125 -0
- ayase-0.1.0/src/ayase/modules/aesthetic_scoring.py +144 -0
- ayase-0.1.0/src/ayase/modules/afine.py +89 -0
- ayase-0.1.0/src/ayase/modules/ahiq.py +93 -0
- ayase-0.1.0/src/ayase/modules/aigv_assessor.py +240 -0
- ayase-0.1.0/src/ayase/modules/arniqa.py +84 -0
- ayase-0.1.0/src/ayase/modules/audio.py +149 -0
- ayase-0.1.0/src/ayase/modules/audio_pesq.py +195 -0
- ayase-0.1.0/src/ayase/modules/audio_text_alignment.py +103 -0
- ayase-0.1.0/src/ayase/modules/audio_visual_sync.py +223 -0
- ayase-0.1.0/src/ayase/modules/background_consistency.py +128 -0
- ayase-0.1.0/src/ayase/modules/background_diversity.py +198 -0
- ayase-0.1.0/src/ayase/modules/basic.py +183 -0
- ayase-0.1.0/src/ayase/modules/bd_rate.py +133 -0
- ayase-0.1.0/src/ayase/modules/bias_detection.py +206 -0
- ayase-0.1.0/src/ayase/modules/brisque.py +126 -0
- ayase-0.1.0/src/ayase/modules/butteraugli.py +209 -0
- ayase-0.1.0/src/ayase/modules/c3dvqa.py +176 -0
- ayase-0.1.0/src/ayase/modules/cambi.py +118 -0
- ayase-0.1.0/src/ayase/modules/camera_jitter.py +79 -0
- ayase-0.1.0/src/ayase/modules/camera_motion.py +150 -0
- ayase-0.1.0/src/ayase/modules/captioning.py +242 -0
- ayase-0.1.0/src/ayase/modules/celebrity_id.py +192 -0
- ayase-0.1.0/src/ayase/modules/cgvqm.py +175 -0
- ayase-0.1.0/src/ayase/modules/ciede2000.py +186 -0
- ayase-0.1.0/src/ayase/modules/ckdn.py +74 -0
- ayase-0.1.0/src/ayase/modules/clip_iqa.py +120 -0
- ayase-0.1.0/src/ayase/modules/clip_temporal.py +153 -0
- ayase-0.1.0/src/ayase/modules/cnniqa.py +84 -0
- ayase-0.1.0/src/ayase/modules/codec_compatibility.py +195 -0
- ayase-0.1.0/src/ayase/modules/codec_specific_quality.py +340 -0
- ayase-0.1.0/src/ayase/modules/color_consistency.py +107 -0
- ayase-0.1.0/src/ayase/modules/commonsense.py +120 -0
- ayase-0.1.0/src/ayase/modules/compare2score.py +84 -0
- ayase-0.1.0/src/ayase/modules/compression_artifacts.py +242 -0
- ayase-0.1.0/src/ayase/modules/contrique.py +104 -0
- ayase-0.1.0/src/ayase/modules/cover.py +162 -0
- ayase-0.1.0/src/ayase/modules/cpbd.py +104 -0
- ayase-0.1.0/src/ayase/modules/cw_ssim.py +93 -0
- ayase-0.1.0/src/ayase/modules/dataset_analytics.py +356 -0
- ayase-0.1.0/src/ayase/modules/dbcnn.py +84 -0
- ayase-0.1.0/src/ayase/modules/decoder_stress.py +82 -0
- ayase-0.1.0/src/ayase/modules/dedup.py +77 -0
- ayase-0.1.0/src/ayase/modules/deepfake_detection.py +279 -0
- ayase-0.1.0/src/ayase/modules/deepwsd.py +75 -0
- ayase-0.1.0/src/ayase/modules/delta_ictcp.py +172 -0
- ayase-0.1.0/src/ayase/modules/depth_anything.py +112 -0
- ayase-0.1.0/src/ayase/modules/depth_consistency.py +194 -0
- ayase-0.1.0/src/ayase/modules/depth_map_quality.py +181 -0
- ayase-0.1.0/src/ayase/modules/dists.py +174 -0
- ayase-0.1.0/src/ayase/modules/diversity_selection.py +88 -0
- ayase-0.1.0/src/ayase/modules/dmm.py +101 -0
- ayase-0.1.0/src/ayase/modules/dnsmos.py +125 -0
- ayase-0.1.0/src/ayase/modules/dover.py +313 -0
- ayase-0.1.0/src/ayase/modules/dreamsim_metric.py +108 -0
- ayase-0.1.0/src/ayase/modules/dynamics_controllability.py +181 -0
- ayase-0.1.0/src/ayase/modules/dynamics_range.py +111 -0
- ayase-0.1.0/src/ayase/modules/embedding.py +176 -0
- ayase-0.1.0/src/ayase/modules/exposure.py +97 -0
- ayase-0.1.0/src/ayase/modules/face_fidelity.py +285 -0
- ayase-0.1.0/src/ayase/modules/face_iqa.py +125 -0
- ayase-0.1.0/src/ayase/modules/face_landmark_quality.py +236 -0
- ayase-0.1.0/src/ayase/modules/fast_vqa.py +292 -0
- ayase-0.1.0/src/ayase/modules/finevq.py +246 -0
- ayase-0.1.0/src/ayase/modules/flicker_detection.py +128 -0
- ayase-0.1.0/src/ayase/modules/flip_metric.py +219 -0
- ayase-0.1.0/src/ayase/modules/flolpips.py +218 -0
- ayase-0.1.0/src/ayase/modules/flow_coherence.py +102 -0
- ayase-0.1.0/src/ayase/modules/funque.py +278 -0
- ayase-0.1.0/src/ayase/modules/fvd.py +279 -0
- ayase-0.1.0/src/ayase/modules/fvmd.py +198 -0
- ayase-0.1.0/src/ayase/modules/generative_distribution_metrics.py +215 -0
- ayase-0.1.0/src/ayase/modules/harmful_content.py +242 -0
- ayase-0.1.0/src/ayase/modules/hdr_metadata.py +117 -0
- ayase-0.1.0/src/ayase/modules/hdr_sdr_vqa.py +269 -0
- ayase-0.1.0/src/ayase/modules/hdr_vdp.py +153 -0
- ayase-0.1.0/src/ayase/modules/hdr_vqm.py +360 -0
- ayase-0.1.0/src/ayase/modules/human_fidelity.py +185 -0
- ayase-0.1.0/src/ayase/modules/hyperiqa.py +84 -0
- ayase-0.1.0/src/ayase/modules/i2v_similarity.py +451 -0
- ayase-0.1.0/src/ayase/modules/ilniqe.py +111 -0
- ayase-0.1.0/src/ayase/modules/imaging_quality.py +170 -0
- ayase-0.1.0/src/ayase/modules/inception_score.py +134 -0
- ayase-0.1.0/src/ayase/modules/jedi_metric.py +158 -0
- ayase-0.1.0/src/ayase/modules/judder_stutter.py +141 -0
- ayase-0.1.0/src/ayase/modules/jump_cut.py +74 -0
- ayase-0.1.0/src/ayase/modules/kandinsky_motion.py +111 -0
- ayase-0.1.0/src/ayase/modules/knowledge_graph.py +191 -0
- ayase-0.1.0/src/ayase/modules/kvd.py +189 -0
- ayase-0.1.0/src/ayase/modules/kvq.py +190 -0
- ayase-0.1.0/src/ayase/modules/laion_aesthetic.py +89 -0
- ayase-0.1.0/src/ayase/modules/letterbox.py +108 -0
- ayase-0.1.0/src/ayase/modules/liqe.py +119 -0
- ayase-0.1.0/src/ayase/modules/llm_advisor.py +172 -0
- ayase-0.1.0/src/ayase/modules/llm_descriptive_qa.py +295 -0
- ayase-0.1.0/src/ayase/modules/maclip.py +99 -0
- ayase-0.1.0/src/ayase/modules/mad_metric.py +99 -0
- ayase-0.1.0/src/ayase/modules/maniqa.py +84 -0
- ayase-0.1.0/src/ayase/modules/mdtvsfa.py +95 -0
- ayase-0.1.0/src/ayase/modules/metadata.py +154 -0
- ayase-0.1.0/src/ayase/modules/motion.py +187 -0
- ayase-0.1.0/src/ayase/modules/motion_amplitude.py +242 -0
- ayase-0.1.0/src/ayase/modules/motion_smoothness.py +211 -0
- ayase-0.1.0/src/ayase/modules/movie.py +266 -0
- ayase-0.1.0/src/ayase/modules/ms_ssim.py +296 -0
- ayase-0.1.0/src/ayase/modules/multi_view_consistency.py +147 -0
- ayase-0.1.0/src/ayase/modules/multiple_objects.py +124 -0
- ayase-0.1.0/src/ayase/modules/musiq.py +120 -0
- ayase-0.1.0/src/ayase/modules/naturalness.py +250 -0
- ayase-0.1.0/src/ayase/modules/nima.py +84 -0
- ayase-0.1.0/src/ayase/modules/niqe.py +173 -0
- ayase-0.1.0/src/ayase/modules/nlpd_metric.py +99 -0
- ayase-0.1.0/src/ayase/modules/nrqm.py +100 -0
- ayase-0.1.0/src/ayase/modules/nsfw.py +103 -0
- ayase-0.1.0/src/ayase/modules/object_detection.py +220 -0
- ayase-0.1.0/src/ayase/modules/object_permanence.py +266 -0
- ayase-0.1.0/src/ayase/modules/ocr_fidelity.py +226 -0
- ayase-0.1.0/src/ayase/modules/p1203.py +153 -0
- ayase-0.1.0/src/ayase/modules/paq2piq.py +88 -0
- ayase-0.1.0/src/ayase/modules/paranoid_decoder.py +84 -0
- ayase-0.1.0/src/ayase/modules/perceptual_fr.py +187 -0
- ayase-0.1.0/src/ayase/modules/physics.py +127 -0
- ayase-0.1.0/src/ayase/modules/pi_metric.py +107 -0
- ayase-0.1.0/src/ayase/modules/pieapp.py +93 -0
- ayase-0.1.0/src/ayase/modules/piqe.py +113 -0
- ayase-0.1.0/src/ayase/modules/playback_speed.py +78 -0
- ayase-0.1.0/src/ayase/modules/production_quality.py +223 -0
- ayase-0.1.0/src/ayase/modules/promptiqa.py +118 -0
- ayase-0.1.0/src/ayase/modules/psnr_hvs.py +183 -0
- ayase-0.1.0/src/ayase/modules/ptlflow_motion.py +103 -0
- ayase-0.1.0/src/ayase/modules/pu_metrics.py +171 -0
- ayase-0.1.0/src/ayase/modules/q_align.py +371 -0
- ayase-0.1.0/src/ayase/modules/qcn.py +104 -0
- ayase-0.1.0/src/ayase/modules/qualiclip.py +84 -0
- ayase-0.1.0/src/ayase/modules/raft_motion.py +94 -0
- ayase-0.1.0/src/ayase/modules/ram_tagging.py +119 -0
- ayase-0.1.0/src/ayase/modules/resolution_bucketing.py +164 -0
- ayase-0.1.0/src/ayase/modules/rqvqa.py +205 -0
- ayase-0.1.0/src/ayase/modules/scene.py +77 -0
- ayase-0.1.0/src/ayase/modules/scene_complexity.py +204 -0
- ayase-0.1.0/src/ayase/modules/scene_detection.py +119 -0
- ayase-0.1.0/src/ayase/modules/scene_tagging.py +118 -0
- ayase-0.1.0/src/ayase/modules/sd_reference.py +196 -0
- ayase-0.1.0/src/ayase/modules/semantic_alignment.py +158 -0
- ayase-0.1.0/src/ayase/modules/semantic_segmentation_consistency.py +245 -0
- ayase-0.1.0/src/ayase/modules/semantic_selection.py +113 -0
- ayase-0.1.0/src/ayase/modules/spatial_relationship.py +93 -0
- ayase-0.1.0/src/ayase/modules/spectral.py +175 -0
- ayase-0.1.0/src/ayase/modules/spectral_upscaling.py +92 -0
- ayase-0.1.0/src/ayase/modules/ssimc.py +101 -0
- ayase-0.1.0/src/ayase/modules/ssimulacra2.py +153 -0
- ayase-0.1.0/src/ayase/modules/st_greed.py +219 -0
- ayase-0.1.0/src/ayase/modules/st_lpips.py +230 -0
- ayase-0.1.0/src/ayase/modules/stabilized_motion.py +175 -0
- ayase-0.1.0/src/ayase/modules/stereoscopic_quality.py +225 -0
- ayase-0.1.0/src/ayase/modules/strred.py +157 -0
- ayase-0.1.0/src/ayase/modules/structural.py +119 -0
- ayase-0.1.0/src/ayase/modules/style_consistency.py +80 -0
- ayase-0.1.0/src/ayase/modules/subject_consistency.py +126 -0
- ayase-0.1.0/src/ayase/modules/t2v_score.py +311 -0
- ayase-0.1.0/src/ayase/modules/temporal_flickering.py +256 -0
- ayase-0.1.0/src/ayase/modules/temporal_style.py +83 -0
- ayase-0.1.0/src/ayase/modules/text.py +141 -0
- ayase-0.1.0/src/ayase/modules/text_overlay.py +116 -0
- ayase-0.1.0/src/ayase/modules/ti_si.py +125 -0
- ayase-0.1.0/src/ayase/modules/tlvqm.py +291 -0
- ayase-0.1.0/src/ayase/modules/topiq.py +126 -0
- ayase-0.1.0/src/ayase/modules/topiq_fr.py +93 -0
- ayase-0.1.0/src/ayase/modules/trajan.py +235 -0
- ayase-0.1.0/src/ayase/modules/tres.py +87 -0
- ayase-0.1.0/src/ayase/modules/unique_iqa.py +93 -0
- ayase-0.1.0/src/ayase/modules/usability_rate.py +69 -0
- ayase-0.1.0/src/ayase/modules/vfr_detection.py +93 -0
- ayase-0.1.0/src/ayase/modules/video_memorability.py +232 -0
- ayase-0.1.0/src/ayase/modules/video_reward.py +103 -0
- ayase-0.1.0/src/ayase/modules/video_text_matching.py +203 -0
- ayase-0.1.0/src/ayase/modules/video_type_classifier.py +118 -0
- ayase-0.1.0/src/ayase/modules/videoscore.py +151 -0
- ayase-0.1.0/src/ayase/modules/videval.py +295 -0
- ayase-0.1.0/src/ayase/modules/vif.py +247 -0
- ayase-0.1.0/src/ayase/modules/visqol.py +139 -0
- ayase-0.1.0/src/ayase/modules/vlm_judge.py +161 -0
- ayase-0.1.0/src/ayase/modules/vmaf.py +281 -0
- ayase-0.1.0/src/ayase/modules/vmaf_4k.py +88 -0
- ayase-0.1.0/src/ayase/modules/vmaf_neg.py +186 -0
- ayase-0.1.0/src/ayase/modules/vmaf_phone.py +91 -0
- ayase-0.1.0/src/ayase/modules/vqa_score.py +144 -0
- ayase-0.1.0/src/ayase/modules/vtss.py +119 -0
- ayase-0.1.0/src/ayase/modules/wadiqam.py +84 -0
- ayase-0.1.0/src/ayase/modules/wadiqam_fr.py +101 -0
- ayase-0.1.0/src/ayase/modules/watermark_classifier.py +149 -0
- ayase-0.1.0/src/ayase/modules/watermark_robustness.py +221 -0
- ayase-0.1.0/src/ayase/modules/xpsnr.py +102 -0
- ayase-0.1.0/src/ayase/pipeline.py +604 -0
- ayase-0.1.0/src/ayase/profile.py +93 -0
- ayase-0.1.0/src/ayase/py.typed +0 -0
- ayase-0.1.0/src/ayase/scanner.py +206 -0
- ayase-0.1.0/src/ayase/third_party/__init__.py +0 -0
- ayase-0.1.0/src/ayase/third_party/dover/__init__.py +2 -0
- ayase-0.1.0/src/ayase/third_party/dover/datasets/__init__.py +3 -0
- ayase-0.1.0/src/ayase/third_party/dover/datasets/basic_datasets.py +812 -0
- ayase-0.1.0/src/ayase/third_party/dover/datasets/dover_datasets.py +433 -0
- ayase-0.1.0/src/ayase/third_party/dover/version.py +16 -0
- ayase-0.1.0/src/ayase/third_party/fastvqa/LICENSE +9 -0
- ayase-0.1.0/src/ayase/third_party/fastvqa/__init__.py +9 -0
- ayase-0.1.0/src/ayase/third_party/fastvqa/datasets/__init__.py +45 -0
- ayase-0.1.0/src/ayase/third_party/fastvqa/datasets/basic_datasets.py +830 -0
- ayase-0.1.0/src/ayase/third_party/fastvqa/datasets/fusion_datasets.py +959 -0
- ayase-0.1.0/src/ayase/third_party/fastvqa/options/f3dvqa-b.yml +137 -0
- ayase-0.1.0/src/ayase/third_party/fastvqa/options/fast-b.yml +123 -0
- ayase-0.1.0/src/ayase/third_party/fastvqa/options/fast-m.yml +67 -0
- ayase-0.1.0/src/ayase/third_party/fastvqa/options/fastervqa-ms.yml +113 -0
- ayase-0.1.0/src/ayase/third_party/fastvqa/options/fastervqa-mt.yml +116 -0
- ayase-0.1.0/src/ayase/third_party/fastvqa/version.py +24 -0
- ayase-0.1.0/src/ayase/third_party/kandinsky/__init__.py +0 -0
- ayase-0.1.0/src/ayase/third_party/kandinsky/video_motion_predictor/__init__.py +44 -0
- ayase-0.1.0/src/ayase/third_party/kandinsky/video_motion_predictor/backbone.py +77 -0
- ayase-0.1.0/src/ayase/third_party/kandinsky/video_motion_predictor/configs/base.json +37 -0
- ayase-0.1.0/src/ayase/third_party/kandinsky/video_motion_predictor/model.py +206 -0
- ayase-0.1.0/src/ayase/third_party/kandinsky/video_motion_predictor/modeling_config.py +21 -0
- ayase-0.1.0/src/ayase/third_party/kandinsky/video_motion_predictor/modeling_videomaev2.py +537 -0
- ayase-0.1.0/src/ayase/third_party/kandinsky/video_motion_predictor/transformer_head.py +291 -0
- ayase-0.1.0/src/ayase/tui.py +1343 -0
- ayase-0.1.0/src/ayase/utils/__init__.py +0 -0
- ayase-0.1.0/src/ayase/utils/sampling.py +91 -0
- ayase-0.1.0/src/ayase/video.py +70 -0
- ayase-0.1.0/tests/__init__.py +0 -0
- ayase-0.1.0/tests/modules/__init__.py +1 -0
- ayase-0.1.0/tests/modules/conftest.py +62 -0
- ayase-0.1.0/tests/modules/test_curation_metrics.py +136 -0
- ayase-0.1.0/tests/modules/test_dataset_modules.py +109 -0
- ayase-0.1.0/tests/modules/test_depth_and_multiview.py +50 -0
- ayase-0.1.0/tests/modules/test_face_modules.py +30 -0
- ayase-0.1.0/tests/modules/test_fields_general.py +210 -0
- ayase-0.1.0/tests/modules/test_image_iqa_metrics.py +98 -0
- ayase-0.1.0/tests/modules/test_industry_metrics.py +646 -0
- ayase-0.1.0/tests/modules/test_iqa_research_metrics.py +152 -0
- ayase-0.1.0/tests/modules/test_metrics_table.py +38 -0
- ayase-0.1.0/tests/modules/test_ml_basics.py +97 -0
- ayase-0.1.0/tests/modules/test_motion_scene_semantic_metrics.py +290 -0
- ayase-0.1.0/tests/modules/test_opencv_modules.py +208 -0
- ayase-0.1.0/tests/modules/test_perceptual_metrics.py +298 -0
- ayase-0.1.0/tests/modules/test_quality_metrics_all.py +68 -0
- ayase-0.1.0/tests/modules/test_reference_and_meta_metrics.py +343 -0
- ayase-0.1.0/tests/modules/test_safety_modules.py +39 -0
- ayase-0.1.0/tests/modules/test_video_native_fields.py +26 -0
- ayase-0.1.0/tests/modules/test_video_native_metrics.py +268 -0
- ayase-0.1.0/tests/test_golden_values.py +688 -0
- ayase-0.1.0/tests/test_integration_synthetic.py +595 -0
- ayase-0.1.0/tests/test_module_smoke.py +83 -0
- ayase-0.1.0/tests/test_profiles.py +74 -0
- ayase-0.1.0/tests/test_readme_contract.py +910 -0
- ayase-0.1.0/tests/test_regressions.py +136 -0
- ayase-0.1.0/tests/test_tui.py +925 -0
ayase-0.1.0/.gitignore
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Generated dumps
|
|
2
|
+
repomix-output.*
|
|
3
|
+
|
|
4
|
+
# Python
|
|
5
|
+
__pycache__/
|
|
6
|
+
*.py[cod]
|
|
7
|
+
*$py.class
|
|
8
|
+
*.so
|
|
9
|
+
*.egg
|
|
10
|
+
*.egg-info/
|
|
11
|
+
dist/
|
|
12
|
+
build/
|
|
13
|
+
sdist/
|
|
14
|
+
wheels/
|
|
15
|
+
*.whl
|
|
16
|
+
|
|
17
|
+
# Virtual environments
|
|
18
|
+
.venv/
|
|
19
|
+
venv/
|
|
20
|
+
env/
|
|
21
|
+
.env
|
|
22
|
+
|
|
23
|
+
# Testing & coverage
|
|
24
|
+
.pytest_cache/
|
|
25
|
+
.coverage
|
|
26
|
+
htmlcov/
|
|
27
|
+
coverage.xml
|
|
28
|
+
|
|
29
|
+
# Type checking & linting
|
|
30
|
+
.mypy_cache/
|
|
31
|
+
.ruff_cache/
|
|
32
|
+
|
|
33
|
+
# IDE
|
|
34
|
+
.vscode/
|
|
35
|
+
.idea/
|
|
36
|
+
*.swp
|
|
37
|
+
*.swo
|
|
38
|
+
*~
|
|
39
|
+
|
|
40
|
+
# OS
|
|
41
|
+
.DS_Store
|
|
42
|
+
Thumbs.db
|
|
43
|
+
|
|
44
|
+
# Project specific
|
|
45
|
+
ayase.toml
|
|
46
|
+
test_datasets/
|
|
47
|
+
reports/
|
|
48
|
+
*.log
|
|
49
|
+
models/
|
|
50
|
+
.claude/
|
|
51
|
+
.ayase_sd_cache/
|
ayase-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Ayase Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
ayase-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,618 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ayase
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Modular media quality metrics toolkit
|
|
5
|
+
Project-URL: Homepage, https://github.com/seruva19/ayase
|
|
6
|
+
Project-URL: Repository, https://github.com/seruva19/ayase
|
|
7
|
+
Project-URL: Issues, https://github.com/seruva19/ayase/issues
|
|
8
|
+
Project-URL: Changelog, https://github.com/seruva19/ayase/blob/main/CHANGELOG.md
|
|
9
|
+
Author: Ayase Contributors
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: ai,computer-vision,dataset,image,metrics,ml,quality-assessment,video,vqa
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Intended Audience :: Science/Research
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Topic :: Multimedia :: Video
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
|
+
Requires-Dist: imageio-ffmpeg<1.0,>=0.4.9
|
|
26
|
+
Requires-Dist: imageio<3.0,>=2.33.0
|
|
27
|
+
Requires-Dist: numpy<3.0,>=1.24.0
|
|
28
|
+
Requires-Dist: opencv-python<5.0,>=4.9.0
|
|
29
|
+
Requires-Dist: pandas<3.0,>=2.1.0
|
|
30
|
+
Requires-Dist: pillow<13.0,>=10.2.0
|
|
31
|
+
Requires-Dist: pyarrow<23.0,>=15.0.0
|
|
32
|
+
Requires-Dist: pydantic-settings<3.0,>=2.1.0
|
|
33
|
+
Requires-Dist: pydantic<3.0,>=2.5.0
|
|
34
|
+
Requires-Dist: rich<15.0,>=13.7.0
|
|
35
|
+
Requires-Dist: tomli-w<2.0,>=1.0.0
|
|
36
|
+
Requires-Dist: tomli<3.0,>=2.0.1; python_version < '3.11'
|
|
37
|
+
Requires-Dist: tqdm<5.0,>=4.66.0
|
|
38
|
+
Requires-Dist: typer[all]<1.0,>=0.12.0
|
|
39
|
+
Requires-Dist: typing-extensions>=4.0.0; python_version < '3.11'
|
|
40
|
+
Provides-Extra: all
|
|
41
|
+
Requires-Dist: accelerate>=0.25.0; extra == 'all'
|
|
42
|
+
Requires-Dist: black>=24.0.0; extra == 'all'
|
|
43
|
+
Requires-Dist: decord>=0.6.0; extra == 'all'
|
|
44
|
+
Requires-Dist: diffusers>=0.25.0; extra == 'all'
|
|
45
|
+
Requires-Dist: einops>=0.7.0; extra == 'all'
|
|
46
|
+
Requires-Dist: huggingface-hub>=0.20.0; extra == 'all'
|
|
47
|
+
Requires-Dist: invisible-watermark>=0.2.0; extra == 'all'
|
|
48
|
+
Requires-Dist: librosa>=0.10.0; extra == 'all'
|
|
49
|
+
Requires-Dist: lpips>=0.1.4; extra == 'all'
|
|
50
|
+
Requires-Dist: mediapipe<1.0,>=0.10.0; extra == 'all'
|
|
51
|
+
Requires-Dist: mypy>=1.8.0; extra == 'all'
|
|
52
|
+
Requires-Dist: nltk>=3.8.0; extra == 'all'
|
|
53
|
+
Requires-Dist: open-clip-torch>=2.24.0; extra == 'all'
|
|
54
|
+
Requires-Dist: paddleocr<3.0,>=2.7.0; extra == 'all'
|
|
55
|
+
Requires-Dist: paddlepaddle<3.0,>=2.5.0; extra == 'all'
|
|
56
|
+
Requires-Dist: pyiqa<1.0,>=0.1.7; extra == 'all'
|
|
57
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == 'all'
|
|
58
|
+
Requires-Dist: pytest>=7.4.0; extra == 'all'
|
|
59
|
+
Requires-Dist: python-levenshtein>=0.21.0; extra == 'all'
|
|
60
|
+
Requires-Dist: pyyaml>=6.0; extra == 'all'
|
|
61
|
+
Requires-Dist: requests>=2.31.0; extra == 'all'
|
|
62
|
+
Requires-Dist: ruff>=0.1.0; extra == 'all'
|
|
63
|
+
Requires-Dist: safetensors>=0.4.0; extra == 'all'
|
|
64
|
+
Requires-Dist: scikit-learn>=1.3.0; extra == 'all'
|
|
65
|
+
Requires-Dist: scikit-video>=1.1.11; extra == 'all'
|
|
66
|
+
Requires-Dist: scipy>=1.11.0; extra == 'all'
|
|
67
|
+
Requires-Dist: soundfile>=0.12.0; extra == 'all'
|
|
68
|
+
Requires-Dist: t2v-metrics>=1.0.0; extra == 'all'
|
|
69
|
+
Requires-Dist: textual>=0.52.0; extra == 'all'
|
|
70
|
+
Requires-Dist: timm>=0.9.12; extra == 'all'
|
|
71
|
+
Requires-Dist: torch<3.0,>=2.1.0; extra == 'all'
|
|
72
|
+
Requires-Dist: torchvision<1.0,>=0.16.0; extra == 'all'
|
|
73
|
+
Requires-Dist: transformers<5.0,>=4.36.0; extra == 'all'
|
|
74
|
+
Requires-Dist: transnetv2-pytorch>=1.0.0; extra == 'all'
|
|
75
|
+
Requires-Dist: ultralytics<9.0,>=8.0.0; extra == 'all'
|
|
76
|
+
Provides-Extra: dev
|
|
77
|
+
Requires-Dist: black>=24.0.0; extra == 'dev'
|
|
78
|
+
Requires-Dist: mypy>=1.8.0; extra == 'dev'
|
|
79
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
|
|
80
|
+
Requires-Dist: pytest>=7.4.0; extra == 'dev'
|
|
81
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
82
|
+
Provides-Extra: i-core
|
|
83
|
+
Provides-Extra: ml
|
|
84
|
+
Requires-Dist: accelerate>=0.25.0; extra == 'ml'
|
|
85
|
+
Requires-Dist: decord>=0.6.0; extra == 'ml'
|
|
86
|
+
Requires-Dist: diffusers>=0.25.0; extra == 'ml'
|
|
87
|
+
Requires-Dist: einops>=0.7.0; extra == 'ml'
|
|
88
|
+
Requires-Dist: huggingface-hub>=0.20.0; extra == 'ml'
|
|
89
|
+
Requires-Dist: lpips>=0.1.4; extra == 'ml'
|
|
90
|
+
Requires-Dist: nltk>=3.8.0; extra == 'ml'
|
|
91
|
+
Requires-Dist: open-clip-torch>=2.24.0; extra == 'ml'
|
|
92
|
+
Requires-Dist: paddleocr<3.0,>=2.7.0; extra == 'ml'
|
|
93
|
+
Requires-Dist: paddlepaddle<3.0,>=2.5.0; extra == 'ml'
|
|
94
|
+
Requires-Dist: pyiqa<1.0,>=0.1.7; extra == 'ml'
|
|
95
|
+
Requires-Dist: python-levenshtein>=0.21.0; extra == 'ml'
|
|
96
|
+
Requires-Dist: pyyaml>=6.0; extra == 'ml'
|
|
97
|
+
Requires-Dist: requests>=2.31.0; extra == 'ml'
|
|
98
|
+
Requires-Dist: safetensors>=0.4.0; extra == 'ml'
|
|
99
|
+
Requires-Dist: scikit-learn>=1.3.0; extra == 'ml'
|
|
100
|
+
Requires-Dist: scikit-video>=1.1.11; extra == 'ml'
|
|
101
|
+
Requires-Dist: scipy>=1.11.0; extra == 'ml'
|
|
102
|
+
Requires-Dist: timm>=0.9.12; extra == 'ml'
|
|
103
|
+
Requires-Dist: torch<3.0,>=2.1.0; extra == 'ml'
|
|
104
|
+
Requires-Dist: torchvision<1.0,>=0.16.0; extra == 'ml'
|
|
105
|
+
Requires-Dist: transformers<5.0,>=4.36.0; extra == 'ml'
|
|
106
|
+
Requires-Dist: ultralytics<9.0,>=8.0.0; extra == 'ml'
|
|
107
|
+
Provides-Extra: tui
|
|
108
|
+
Requires-Dist: textual>=0.52.0; extra == 'tui'
|
|
109
|
+
Provides-Extra: v-align
|
|
110
|
+
Requires-Dist: t2v-metrics>=1.0.0; extra == 'v-align'
|
|
111
|
+
Provides-Extra: v-audio
|
|
112
|
+
Requires-Dist: librosa>=0.10.0; extra == 'v-audio'
|
|
113
|
+
Requires-Dist: soundfile>=0.12.0; extra == 'v-audio'
|
|
114
|
+
Provides-Extra: v-face
|
|
115
|
+
Requires-Dist: mediapipe<1.0,>=0.10.0; extra == 'v-face'
|
|
116
|
+
Provides-Extra: v-iqa
|
|
117
|
+
Requires-Dist: pyiqa<1.0,>=0.1.7; extra == 'v-iqa'
|
|
118
|
+
Requires-Dist: scikit-video>=1.1.11; extra == 'v-iqa'
|
|
119
|
+
Requires-Dist: scipy>=1.11.0; extra == 'v-iqa'
|
|
120
|
+
Requires-Dist: torch<3.0,>=2.1.0; extra == 'v-iqa'
|
|
121
|
+
Requires-Dist: torchvision<1.0,>=0.16.0; extra == 'v-iqa'
|
|
122
|
+
Provides-Extra: v-ml
|
|
123
|
+
Requires-Dist: accelerate>=0.25.0; extra == 'v-ml'
|
|
124
|
+
Requires-Dist: decord>=0.6.0; extra == 'v-ml'
|
|
125
|
+
Requires-Dist: diffusers>=0.25.0; extra == 'v-ml'
|
|
126
|
+
Requires-Dist: einops>=0.7.0; extra == 'v-ml'
|
|
127
|
+
Requires-Dist: huggingface-hub>=0.20.0; extra == 'v-ml'
|
|
128
|
+
Requires-Dist: lpips>=0.1.4; extra == 'v-ml'
|
|
129
|
+
Requires-Dist: nltk>=3.8.0; extra == 'v-ml'
|
|
130
|
+
Requires-Dist: open-clip-torch>=2.24.0; extra == 'v-ml'
|
|
131
|
+
Requires-Dist: paddleocr<3.0,>=2.7.0; extra == 'v-ml'
|
|
132
|
+
Requires-Dist: paddlepaddle<3.0,>=2.5.0; extra == 'v-ml'
|
|
133
|
+
Requires-Dist: pyiqa<1.0,>=0.1.7; extra == 'v-ml'
|
|
134
|
+
Requires-Dist: python-levenshtein>=0.21.0; extra == 'v-ml'
|
|
135
|
+
Requires-Dist: pyyaml>=6.0; extra == 'v-ml'
|
|
136
|
+
Requires-Dist: requests>=2.31.0; extra == 'v-ml'
|
|
137
|
+
Requires-Dist: safetensors>=0.4.0; extra == 'v-ml'
|
|
138
|
+
Requires-Dist: scikit-learn>=1.3.0; extra == 'v-ml'
|
|
139
|
+
Requires-Dist: scikit-video>=1.1.11; extra == 'v-ml'
|
|
140
|
+
Requires-Dist: scipy>=1.11.0; extra == 'v-ml'
|
|
141
|
+
Requires-Dist: timm>=0.9.12; extra == 'v-ml'
|
|
142
|
+
Requires-Dist: torch<3.0,>=2.1.0; extra == 'v-ml'
|
|
143
|
+
Requires-Dist: torchvision<1.0,>=0.16.0; extra == 'v-ml'
|
|
144
|
+
Requires-Dist: transformers<5.0,>=4.36.0; extra == 'v-ml'
|
|
145
|
+
Requires-Dist: ultralytics<9.0,>=8.0.0; extra == 'v-ml'
|
|
146
|
+
Provides-Extra: v-motion
|
|
147
|
+
Requires-Dist: decord>=0.6.0; extra == 'v-motion'
|
|
148
|
+
Requires-Dist: torch<3.0,>=2.1.0; extra == 'v-motion'
|
|
149
|
+
Requires-Dist: torchvision<1.0,>=0.16.0; extra == 'v-motion'
|
|
150
|
+
Provides-Extra: v-object
|
|
151
|
+
Requires-Dist: ultralytics<9.0,>=8.0.0; extra == 'v-object'
|
|
152
|
+
Provides-Extra: v-ocr
|
|
153
|
+
Requires-Dist: paddleocr<3.0,>=2.7.0; extra == 'v-ocr'
|
|
154
|
+
Requires-Dist: paddlepaddle<3.0,>=2.5.0; extra == 'v-ocr'
|
|
155
|
+
Requires-Dist: python-levenshtein>=0.21.0; extra == 'v-ocr'
|
|
156
|
+
Provides-Extra: v-perceptual
|
|
157
|
+
Requires-Dist: einops>=0.7.0; extra == 'v-perceptual'
|
|
158
|
+
Requires-Dist: lpips>=0.1.4; extra == 'v-perceptual'
|
|
159
|
+
Requires-Dist: open-clip-torch>=2.24.0; extra == 'v-perceptual'
|
|
160
|
+
Requires-Dist: timm>=0.9.12; extra == 'v-perceptual'
|
|
161
|
+
Requires-Dist: torch<3.0,>=2.1.0; extra == 'v-perceptual'
|
|
162
|
+
Requires-Dist: torchvision<1.0,>=0.16.0; extra == 'v-perceptual'
|
|
163
|
+
Provides-Extra: v-scene
|
|
164
|
+
Requires-Dist: transnetv2-pytorch>=1.0.0; extra == 'v-scene'
|
|
165
|
+
Provides-Extra: v-text
|
|
166
|
+
Requires-Dist: pyyaml>=6.0; extra == 'v-text'
|
|
167
|
+
Requires-Dist: requests>=2.31.0; extra == 'v-text'
|
|
168
|
+
Requires-Dist: torch<3.0,>=2.1.0; extra == 'v-text'
|
|
169
|
+
Requires-Dist: transformers<5.0,>=4.36.0; extra == 'v-text'
|
|
170
|
+
Provides-Extra: v-watermark
|
|
171
|
+
Requires-Dist: invisible-watermark>=0.2.0; extra == 'v-watermark'
|
|
172
|
+
Description-Content-Type: text/markdown
|
|
173
|
+
|
|
174
|
+
# Ayase
|
|
175
|
+
|
|
176
|
+
Modular media quality metrics toolkit.
|
|
177
|
+
|
|
178
|
+
## Overview
|
|
179
|
+
|
|
180
|
+
- 225 quality metrics across visual, temporal, audio, perceptual, and safety categories.
|
|
181
|
+
- Modular pipeline - modules compute raw values, downstream apps decide what to do with them.
|
|
182
|
+
- CLI and Python API.
|
|
183
|
+
- Profile-based pipeline configuration.
|
|
184
|
+
|
|
185
|
+
## Installation
|
|
186
|
+
|
|
187
|
+
Core (no ML models, metadata/structural checks only):
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
pip install ayase
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
With ML-based quality metrics:
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
pip install ayase[ml] # Everything
|
|
197
|
+
pip install ayase[v-perceptual] # CLIP, LPIPS, open-clip, timm
|
|
198
|
+
pip install ayase[v-iqa] # PyIQA, BRISQUE, NIQE, scikit-video
|
|
199
|
+
pip install ayase[v-motion] # RAFT optical flow, decord
|
|
200
|
+
pip install ayase[v-ocr] # PaddleOCR text recognition
|
|
201
|
+
pip install ayase[v-face] # MediaPipe face detection
|
|
202
|
+
pip install ayase[v-audio] # librosa audio analysis
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Development:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
pip install ayase[dev] # pytest, black, ruff, mypy
|
|
209
|
+
pip install ayase[all] # Everything including dev + TUI
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
See [MODELS.md](MODELS.md) for the complete inventory of all pretrained weights used by every module. Models are downloaded and cached automatically on first use via HuggingFace Hub, Torch Hub, and PyIQA.
|
|
213
|
+
|
|
214
|
+
## Metrics
|
|
215
|
+
|
|
216
|
+
| # | Metric | Title | Tested |
|
|
217
|
+
|---:|---|---|---|
|
|
218
|
+
| 1 | blur_score | Blur Score | Yes |
|
|
219
|
+
| 2 | compression_score | Compression Score | Yes |
|
|
220
|
+
| 3 | aesthetic_score | Aesthetic Score | Yes |
|
|
221
|
+
| 4 | clip_score | CLIP Score | Yes |
|
|
222
|
+
| 5 | brightness | Brightness | Yes |
|
|
223
|
+
| 6 | contrast | Contrast | Yes |
|
|
224
|
+
| 7 | saturation | Saturation | Yes |
|
|
225
|
+
| 8 | fast_vqa_score | Fast VQA Score | Yes |
|
|
226
|
+
| 9 | motion_score | Motion Score | Yes |
|
|
227
|
+
| 10 | camera_motion_score | Camera Motion Score | Yes |
|
|
228
|
+
| 11 | temporal_consistency | Temporal Consistency | Yes |
|
|
229
|
+
| 12 | technical_score | Technical Score | Yes |
|
|
230
|
+
| 13 | noise_score | Noise Score | Yes |
|
|
231
|
+
| 14 | artifacts_score | Artifacts Score | Yes |
|
|
232
|
+
| 15 | watermark_probability | Watermark Probability | Yes |
|
|
233
|
+
| 16 | ocr_area_ratio | OCR Area Ratio | Yes |
|
|
234
|
+
| 17 | face_count | Face Count | Yes |
|
|
235
|
+
| 18 | nsfw_score | NSFW Score | Yes |
|
|
236
|
+
| 19 | audio_quality_score | Audio Quality Score | Yes |
|
|
237
|
+
| 20 | perceptual_hash | Perceptual Hash | Yes |
|
|
238
|
+
| 21 | depth_score | Depth Score | Yes |
|
|
239
|
+
| 22 | auto_caption | Auto Caption | Yes |
|
|
240
|
+
| 23 | vqa_a_score | VQA A Score | Yes |
|
|
241
|
+
| 24 | vqa_t_score | VQA T Score | Yes |
|
|
242
|
+
| 25 | is_score | IS Score | Yes |
|
|
243
|
+
| 26 | sd_score | SD Score | Yes |
|
|
244
|
+
| 27 | gradient_detail | Gradient Detail | Yes |
|
|
245
|
+
| 28 | blip_bleu | BLIP BLEU | Yes |
|
|
246
|
+
| 29 | detection_score | Detection Score | Yes |
|
|
247
|
+
| 30 | count_score | Count Score | Yes |
|
|
248
|
+
| 31 | color_score | Color Score | Yes |
|
|
249
|
+
| 32 | celebrity_id_score | Celebrity ID Score | Yes |
|
|
250
|
+
| 33 | ocr_score | OCR Score | Yes |
|
|
251
|
+
| 34 | ocr_fidelity | OCR Fidelity | Yes |
|
|
252
|
+
| 35 | i2v_clip | I2V CLIP | Yes |
|
|
253
|
+
| 36 | i2v_dino | I2V DINO | Yes |
|
|
254
|
+
| 37 | i2v_lpips | I2V LPIPS | Yes |
|
|
255
|
+
| 38 | i2v_quality | I2V Quality | Yes |
|
|
256
|
+
| 39 | action_score | Action Score | Yes |
|
|
257
|
+
| 40 | action_confidence | Action Confidence | Yes |
|
|
258
|
+
| 41 | flow_score | Flow Score | Yes |
|
|
259
|
+
| 42 | motion_ac_score | Motion AC Score | Yes |
|
|
260
|
+
| 43 | warping_error | Warping Error | Yes |
|
|
261
|
+
| 44 | clip_temp | CLIP Temporal | Yes |
|
|
262
|
+
| 45 | face_consistency | Face Consistency | Yes |
|
|
263
|
+
| 46 | psnr | PSNR | Yes |
|
|
264
|
+
| 47 | ssim | SSIM | Yes |
|
|
265
|
+
| 48 | lpips | LPIPS | Yes |
|
|
266
|
+
| 49 | spectral_entropy | Spectral Entropy | Yes |
|
|
267
|
+
| 50 | spectral_rank | Spectral Rank | Yes |
|
|
268
|
+
| 51 | fvd | FVD | Yes |
|
|
269
|
+
| 52 | kvd | KVD | Yes |
|
|
270
|
+
| 53 | fvmd | FVMD | Yes |
|
|
271
|
+
| 54 | vmaf | VMAF | Yes |
|
|
272
|
+
| 55 | ms_ssim | MS-SSIM | Yes |
|
|
273
|
+
| 56 | vif | VIF | Yes |
|
|
274
|
+
| 57 | niqe | NIQE | Yes |
|
|
275
|
+
| 58 | t2v_score | T2V Score | Yes |
|
|
276
|
+
| 59 | t2v_alignment | T2V Alignment | Yes |
|
|
277
|
+
| 60 | t2v_quality | T2V Quality | Yes |
|
|
278
|
+
| 61 | dynamics_range | Dynamics Range | Yes |
|
|
279
|
+
| 62 | dynamics_controllability | Dynamics Controllability | Yes |
|
|
280
|
+
| 63 | scene_complexity | Scene Complexity | Yes |
|
|
281
|
+
| 64 | compression_artifacts | Compression Artifacts | Yes |
|
|
282
|
+
| 65 | naturalness_score | Naturalness Score | Yes |
|
|
283
|
+
| 66 | video_memorability | Video Memorability | Yes |
|
|
284
|
+
| 67 | usability_rate | Usability Rate | Yes |
|
|
285
|
+
| 68 | confidence_score | Confidence Score | Yes |
|
|
286
|
+
| 69 | human_preference_score | Human Preference Score | Yes |
|
|
287
|
+
| 70 | engagement_score | Engagement Score | Yes |
|
|
288
|
+
| 71 | usability_score | Usability Score | Yes |
|
|
289
|
+
| 72 | hdr_quality | HDR Quality | Yes |
|
|
290
|
+
| 73 | sdr_quality | SDR Quality | Yes |
|
|
291
|
+
| 74 | temporal_information | Temporal Information | Yes |
|
|
292
|
+
| 75 | spatial_information | Spatial Information | Yes |
|
|
293
|
+
| 76 | flicker_score | Flicker Score | Yes |
|
|
294
|
+
| 77 | judder_score | Judder Score | Yes |
|
|
295
|
+
| 78 | stutter_score | Stutter Score | Yes |
|
|
296
|
+
| 79 | dists | DISTS | Yes |
|
|
297
|
+
| 80 | fsim | FSIM | Yes |
|
|
298
|
+
| 81 | gmsd | GMSD | Yes |
|
|
299
|
+
| 82 | vsi_score | VSI Score | Yes |
|
|
300
|
+
| 83 | brisque | BRISQUE | Yes |
|
|
301
|
+
| 84 | pesq_score | PESQ Score | Yes |
|
|
302
|
+
| 85 | av_sync_offset | A/V Sync Offset | Yes |
|
|
303
|
+
| 86 | dover_score | DOVER Score | Yes |
|
|
304
|
+
| 87 | dover_technical | DOVER Technical | Yes |
|
|
305
|
+
| 88 | dover_aesthetic | DOVER Aesthetic | Yes |
|
|
306
|
+
| 89 | topiq_score | TOPIQ Score | Yes |
|
|
307
|
+
| 90 | liqe_score | LIQE Score | Yes |
|
|
308
|
+
| 91 | clip_iqa_score | CLIP-IQA Score | Yes |
|
|
309
|
+
| 92 | color_grading_score | Color Grading Score | Yes |
|
|
310
|
+
| 93 | white_balance_score | White Balance Score | Yes |
|
|
311
|
+
| 94 | exposure_consistency | Exposure Consistency | Yes |
|
|
312
|
+
| 95 | focus_quality | Focus Quality | Yes |
|
|
313
|
+
| 96 | banding_severity | Banding Severity | Yes |
|
|
314
|
+
| 97 | qalign_quality | Q-Align Quality | Yes |
|
|
315
|
+
| 98 | qalign_aesthetic | Q-Align Aesthetic | Yes |
|
|
316
|
+
| 99 | face_quality_score | Face Quality Score | Yes |
|
|
317
|
+
| 100 | face_identity_consistency | Face Identity Consistency | Yes |
|
|
318
|
+
| 101 | face_expression_smoothness | Face Expression Smoothness | Yes |
|
|
319
|
+
| 102 | face_landmark_jitter | Face Landmark Jitter | Yes |
|
|
320
|
+
| 103 | object_permanence_score | Object Permanence Score | Yes |
|
|
321
|
+
| 104 | semantic_consistency | Semantic Consistency | Yes |
|
|
322
|
+
| 105 | depth_temporal_consistency | Depth Temporal Consistency | Yes |
|
|
323
|
+
| 106 | subject_consistency | Subject Consistency | Yes |
|
|
324
|
+
| 107 | background_consistency | Background Consistency | Yes |
|
|
325
|
+
| 108 | motion_smoothness | Motion Smoothness | Yes |
|
|
326
|
+
| 109 | codec_efficiency | Codec Efficiency | Yes |
|
|
327
|
+
| 110 | gop_quality | GOP Quality | Yes |
|
|
328
|
+
| 111 | codec_artifacts | Codec Artifacts | Yes |
|
|
329
|
+
| 112 | deepfake_probability | Deepfake Probability | Yes |
|
|
330
|
+
| 113 | ai_generated_probability | AI-Generated Probability | Yes |
|
|
331
|
+
| 114 | harmful_content_score | Harmful Content Score | Yes |
|
|
332
|
+
| 115 | watermark_strength | Watermark Strength | Yes |
|
|
333
|
+
| 116 | bias_score | Bias Score | Yes |
|
|
334
|
+
| 117 | depth_quality | Depth Quality | Yes |
|
|
335
|
+
| 118 | multiview_consistency | Multiview Consistency | Yes |
|
|
336
|
+
| 119 | stereo_comfort_score | Stereo Comfort Score | Yes |
|
|
337
|
+
| 120 | musiq_score | MUSIQ Score | Yes |
|
|
338
|
+
| 121 | contrique_score | CONTRIQUE Score | Yes |
|
|
339
|
+
| 122 | mdtvsfa_score | MDTVSFA Score | Yes |
|
|
340
|
+
| 123 | nima_score | NIMA Score | Yes |
|
|
341
|
+
| 124 | dbcnn_score | DBCNN Score | Yes |
|
|
342
|
+
| 125 | wadiqam_score | WaDIQaM Score | Yes |
|
|
343
|
+
| 126 | maniqa_score | MANIQA Score | Yes |
|
|
344
|
+
| 127 | arniqa_score | ARNIQA Score | Yes |
|
|
345
|
+
| 128 | qualiclip_score | QualiCLIP Score | Yes |
|
|
346
|
+
| 129 | pieapp | PieAPP | Yes |
|
|
347
|
+
| 130 | cw_ssim | CW-SSIM | Yes |
|
|
348
|
+
| 131 | nlpd | NLPD | Yes |
|
|
349
|
+
| 132 | mad | MAD | Yes |
|
|
350
|
+
| 133 | ahiq | AHIQ | Yes |
|
|
351
|
+
| 134 | topiq_fr | TOPIQ-FR | Yes |
|
|
352
|
+
| 135 | dreamsim | DreamSim | Yes |
|
|
353
|
+
| 136 | cover_score | Cover Score | Yes |
|
|
354
|
+
| 137 | cover_technical | Cover Technical | Yes |
|
|
355
|
+
| 138 | cover_aesthetic | Cover Aesthetic | Yes |
|
|
356
|
+
| 139 | cover_semantic | Cover Semantic | Yes |
|
|
357
|
+
| 140 | vqa_score_alignment | VQAScore Alignment | Yes |
|
|
358
|
+
| 141 | videoscore_visual | VideoScore Visual | Yes |
|
|
359
|
+
| 142 | videoscore_temporal | VideoScore Temporal | Yes |
|
|
360
|
+
| 143 | videoscore_dynamic | VideoScore Dynamic | Yes |
|
|
361
|
+
| 144 | videoscore_alignment | VideoScore Alignment | Yes |
|
|
362
|
+
| 145 | videoscore_factual | VideoScore Factual | Yes |
|
|
363
|
+
| 146 | face_iqa_score | Face IQA Score | Yes |
|
|
364
|
+
| 147 | scene_stability | Scene Stability | Yes |
|
|
365
|
+
| 148 | avg_scene_duration | Average Scene Duration | Yes |
|
|
366
|
+
| 149 | raft_motion_score | RAFT Motion Score | Yes |
|
|
367
|
+
| 150 | ram_tags | RAM Tags | Yes |
|
|
368
|
+
| 151 | depth_anything_score | Depth Anything Score | Yes |
|
|
369
|
+
| 152 | depth_anything_consistency | Depth Anything Consistency | Yes |
|
|
370
|
+
| 153 | video_type | Video Type | Yes |
|
|
371
|
+
| 154 | video_type_confidence | Video Type Confidence | Yes |
|
|
372
|
+
| 155 | jedi | JEDi | Yes |
|
|
373
|
+
| 156 | trajan_score | TRAJAN Score | Yes |
|
|
374
|
+
| 157 | promptiqa_score | PromptIQA Score | Yes |
|
|
375
|
+
| 158 | aigv_static | AIGV Static | Yes |
|
|
376
|
+
| 159 | aigv_temporal | AIGV Temporal | Yes |
|
|
377
|
+
| 160 | aigv_dynamic | AIGV Dynamic | Yes |
|
|
378
|
+
| 161 | aigv_alignment | AIGV Alignment | Yes |
|
|
379
|
+
| 162 | video_reward_score | Video Reward Score | Yes |
|
|
380
|
+
| 163 | text_overlay_score | Text Overlay Score | Yes |
|
|
381
|
+
| 164 | ptlflow_motion_score | PTLFlow Motion Score | Yes |
|
|
382
|
+
| 165 | qcn_score | QCN Score | Yes |
|
|
383
|
+
| 166 | finevq_score | FineVQ Score | Yes |
|
|
384
|
+
| 167 | kvq_score | KVQ Score | Yes |
|
|
385
|
+
| 168 | rqvqa_score | RQ-VQA Score | Yes |
|
|
386
|
+
| 169 | videval_score | VIDEVAL Score | Yes |
|
|
387
|
+
| 170 | tlvqm_score | TLVQM Score | Yes |
|
|
388
|
+
| 171 | funque_score | FUNQUE Score | Yes |
|
|
389
|
+
| 172 | movie_score | MOVIE Score | Yes |
|
|
390
|
+
| 173 | st_greed_score | ST-GREED Score | Yes |
|
|
391
|
+
| 174 | c3dvqa_score | C3DVQA Score | Yes |
|
|
392
|
+
| 175 | flolpips | FloLPIPS | Yes |
|
|
393
|
+
| 176 | hdr_vqm | HDR-VQM | Yes |
|
|
394
|
+
| 177 | st_lpips | ST-LPIPS | Yes |
|
|
395
|
+
| 178 | camera_jitter_score | Camera Jitter Score | Yes |
|
|
396
|
+
| 179 | jump_cut_score | Jump Cut Score | Yes |
|
|
397
|
+
| 180 | playback_speed_score | Playback Speed Score | Yes |
|
|
398
|
+
| 181 | flow_coherence | Flow Coherence | Yes |
|
|
399
|
+
| 182 | letterbox_ratio | Letterbox Ratio | Yes |
|
|
400
|
+
| 183 | vtss | VTSS | Yes |
|
|
401
|
+
| 184 | cnniqa_score | CNNIQA Score | Yes |
|
|
402
|
+
| 185 | hyperiqa_score | HyperIQA Score | Yes |
|
|
403
|
+
| 186 | paq2piq_score | PaQ2PiQ Score | Yes |
|
|
404
|
+
| 187 | tres_score | TReS Score | Yes |
|
|
405
|
+
| 188 | unique_score | Unique Score | Yes |
|
|
406
|
+
| 189 | laion_aesthetic | LAION Aesthetic | Yes |
|
|
407
|
+
| 190 | compare2score | Compare2Score | Yes |
|
|
408
|
+
| 191 | afine_score | A-FINE Score | Yes |
|
|
409
|
+
| 192 | ckdn_score | CKDN Score | Yes |
|
|
410
|
+
| 193 | deepwsd_score | DeepWSD Score | Yes |
|
|
411
|
+
| 194 | ssimulacra2 | SSIMULACRA2 | Yes |
|
|
412
|
+
| 195 | butteraugli | Butteraugli | Yes |
|
|
413
|
+
| 196 | flip_score | Flip Score | Yes |
|
|
414
|
+
| 197 | vmaf_neg | VMAF-NEG | Yes |
|
|
415
|
+
| 198 | ilniqe | ILNIQE | Yes |
|
|
416
|
+
| 199 | nrqm | NRQM | Yes |
|
|
417
|
+
| 200 | pi_score | PI Score | Yes |
|
|
418
|
+
| 201 | piqe | PIQE | Yes |
|
|
419
|
+
| 202 | maclip_score | MACLIP Score | Yes |
|
|
420
|
+
| 203 | dmm | DMM | Yes |
|
|
421
|
+
| 204 | wadiqam_fr | WaDIQaM-FR | Yes |
|
|
422
|
+
| 205 | ssimc | SSIM-C | Yes |
|
|
423
|
+
| 206 | cambi | CAMBI | Yes |
|
|
424
|
+
| 207 | xpsnr | XPSNR | Yes |
|
|
425
|
+
| 208 | vmaf_phone | VMAF-Phone | Yes |
|
|
426
|
+
| 209 | vmaf_4k | VMAF-4K | Yes |
|
|
427
|
+
| 210 | visqol | ViSQOL | Yes |
|
|
428
|
+
| 211 | dnsmos_overall | DNSMOS Overall | Yes |
|
|
429
|
+
| 212 | dnsmos_sig | DNSMOS Signal | Yes |
|
|
430
|
+
| 213 | dnsmos_bak | DNSMOS Background | Yes |
|
|
431
|
+
| 214 | pu_psnr | PU-PSNR | Yes |
|
|
432
|
+
| 215 | pu_ssim | PU-SSIM | Yes |
|
|
433
|
+
| 216 | max_fall | Max FALL | Yes |
|
|
434
|
+
| 217 | max_cll | Max CLL | Yes |
|
|
435
|
+
| 218 | hdr_vdp | HDR-VDP | Yes |
|
|
436
|
+
| 219 | delta_ictcp | Delta ICtCp | Yes |
|
|
437
|
+
| 220 | ciede2000 | CIEDE2000 | Yes |
|
|
438
|
+
| 221 | psnr_hvs | PSNR-HVS | Yes |
|
|
439
|
+
| 222 | psnr_hvs_m | PSNR-HVS-M | Yes |
|
|
440
|
+
| 223 | cgvqm | CGVQM | Yes |
|
|
441
|
+
| 224 | strred | STRRED | Yes |
|
|
442
|
+
| 225 | p1203_mos | P.1203 MOS | Yes |
|
|
443
|
+
|
|
444
|
+
## Quick Start
|
|
445
|
+
|
|
446
|
+
### CLI
|
|
447
|
+
|
|
448
|
+
```bash
|
|
449
|
+
# Scan a dataset and get a report
|
|
450
|
+
ayase scan ./my_dataset
|
|
451
|
+
|
|
452
|
+
# Scan with specific modules
|
|
453
|
+
ayase scan ./my_dataset --modules metadata,basic_quality,motion
|
|
454
|
+
|
|
455
|
+
# List all available modules
|
|
456
|
+
ayase modules list
|
|
457
|
+
|
|
458
|
+
# Check which modules can be loaded (dependencies installed)
|
|
459
|
+
ayase modules check
|
|
460
|
+
|
|
461
|
+
# Filter dataset by quality score
|
|
462
|
+
ayase filter ./my_dataset --min-score 70 --output ./filtered
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
### Python API (recommended)
|
|
466
|
+
|
|
467
|
+
```python
|
|
468
|
+
from ayase import AyasePipeline
|
|
469
|
+
|
|
470
|
+
ayase = AyasePipeline(modules=["basic"])
|
|
471
|
+
results = ayase.run("./my_dataset")
|
|
472
|
+
|
|
473
|
+
for path, sample in results.items():
|
|
474
|
+
if sample.quality_metrics:
|
|
475
|
+
print(f"{sample.path.name}: technical={sample.quality_metrics.technical_score}")
|
|
476
|
+
|
|
477
|
+
print(f"Total: {ayase.stats.total_samples}, Valid: {ayase.stats.valid_samples}")
|
|
478
|
+
ayase.export("report.json")
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
`AyasePipeline` accepts three ways to configure modules:
|
|
482
|
+
|
|
483
|
+
```python
|
|
484
|
+
# By module names
|
|
485
|
+
ayase = AyasePipeline(modules=["metadata", "basic_quality", "motion"])
|
|
486
|
+
|
|
487
|
+
# By profile dict
|
|
488
|
+
ayase = AyasePipeline(profile={
|
|
489
|
+
"name": "my_check",
|
|
490
|
+
"modules": ["basic", "aesthetic"],
|
|
491
|
+
"module_config": {
|
|
492
|
+
"aesthetic": {"model_name": "openai/clip-vit-large-patch14"},
|
|
493
|
+
},
|
|
494
|
+
})
|
|
495
|
+
|
|
496
|
+
# By profile file
|
|
497
|
+
ayase = AyasePipeline(profile="my_profile.toml")
|
|
498
|
+
|
|
499
|
+
# With custom config
|
|
500
|
+
from ayase.config import AyaseConfig
|
|
501
|
+
ayase = AyasePipeline(config=AyaseConfig(general={"parallel_jobs": 16}), modules=["basic"])
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
### Low-level Pipeline API
|
|
505
|
+
|
|
506
|
+
```python
|
|
507
|
+
import asyncio
|
|
508
|
+
from pathlib import Path
|
|
509
|
+
from ayase.pipeline import Pipeline, ModuleRegistry
|
|
510
|
+
from ayase.scanner import scan_dataset
|
|
511
|
+
|
|
512
|
+
ModuleRegistry.discover_modules()
|
|
513
|
+
module_names = ["metadata", "basic_quality", "semantic_alignment"]
|
|
514
|
+
modules = [ModuleRegistry.get_module(n)() for n in module_names]
|
|
515
|
+
|
|
516
|
+
pipeline = Pipeline(modules)
|
|
517
|
+
pipeline.start()
|
|
518
|
+
|
|
519
|
+
samples = scan_dataset(Path("./my_dataset"), recursive=True)
|
|
520
|
+
for sample in samples:
|
|
521
|
+
processed = asyncio.run(pipeline.process_sample(sample))
|
|
522
|
+
|
|
523
|
+
pipeline.stop()
|
|
524
|
+
pipeline.export_report("report.json", format="json")
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
### Profile-based pipelines
|
|
528
|
+
|
|
529
|
+
```python
|
|
530
|
+
from ayase import load_profile, instantiate_profile_modules
|
|
531
|
+
|
|
532
|
+
profile = load_profile("my_profile.toml")
|
|
533
|
+
modules = instantiate_profile_modules(profile)
|
|
534
|
+
# modules is a list of PipelineModule instances ready for Pipeline()
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
## Configuration
|
|
538
|
+
|
|
539
|
+
Create `ayase.toml` in your project root:
|
|
540
|
+
|
|
541
|
+
```toml
|
|
542
|
+
[general]
|
|
543
|
+
parallel_jobs = 8
|
|
544
|
+
cache_enabled = true
|
|
545
|
+
|
|
546
|
+
[quality]
|
|
547
|
+
enable_blur_detection = true
|
|
548
|
+
blur_threshold = 100.0
|
|
549
|
+
|
|
550
|
+
[pipeline]
|
|
551
|
+
dataset_path = "./my_dataset"
|
|
552
|
+
modules = ["metadata", "basic_quality", "motion"]
|
|
553
|
+
plugin_folders = ["plugins"]
|
|
554
|
+
|
|
555
|
+
[output]
|
|
556
|
+
default_format = "markdown"
|
|
557
|
+
artifacts_dir = "reports"
|
|
558
|
+
artifacts_format = "json"
|
|
559
|
+
|
|
560
|
+
[filter]
|
|
561
|
+
default_mode = "list"
|
|
562
|
+
min_score_threshold = 60
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
Ayase looks for config in: `./ayase.toml` -> `~/.config/ayase/config.toml` -> built-in defaults.
|
|
566
|
+
|
|
567
|
+
## Writing Plugins
|
|
568
|
+
|
|
569
|
+
Create a `.py` file in your `plugins/` folder:
|
|
570
|
+
|
|
571
|
+
```python
|
|
572
|
+
from ayase.models import Sample, ValidationIssue, ValidationSeverity
|
|
573
|
+
from ayase.pipeline import PipelineModule
|
|
574
|
+
|
|
575
|
+
class MyCustomCheck(PipelineModule):
|
|
576
|
+
name = "my_check"
|
|
577
|
+
description = "Custom quality check"
|
|
578
|
+
default_config = {"threshold": 0.5}
|
|
579
|
+
|
|
580
|
+
def process(self, sample: Sample) -> Sample:
|
|
581
|
+
# Your logic here
|
|
582
|
+
if some_score < self.config["threshold"]:
|
|
583
|
+
sample.validation_issues.append(
|
|
584
|
+
ValidationIssue(
|
|
585
|
+
severity=ValidationSeverity.WARNING,
|
|
586
|
+
message="Quality below threshold",
|
|
587
|
+
)
|
|
588
|
+
)
|
|
589
|
+
return sample
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
Then run:
|
|
593
|
+
|
|
594
|
+
```bash
|
|
595
|
+
ayase scan ./data --modules metadata,my_check
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
## Development
|
|
599
|
+
|
|
600
|
+
```bash
|
|
601
|
+
git clone <repo-url>
|
|
602
|
+
cd ayase
|
|
603
|
+
pip install -e ".[dev]"
|
|
604
|
+
|
|
605
|
+
# Run tests
|
|
606
|
+
pytest
|
|
607
|
+
|
|
608
|
+
# Lint and format
|
|
609
|
+
ruff check src/ tests/
|
|
610
|
+
black src/ tests/
|
|
611
|
+
|
|
612
|
+
# Type check
|
|
613
|
+
mypy src/ayase
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
## License
|
|
617
|
+
|
|
618
|
+
MIT -- see [LICENSE](LICENSE).
|