From 0eb042425cf2d83219eece0d33e9ef8599d09874 Mon Sep 17 00:00:00 2001 From: Yakhyokhuja Valikhujaev Date: Mon, 27 Apr 2026 20:51:50 +0900 Subject: [PATCH] chore: Minor changes to workflow names and docs (#111) --- .github/workflows/ci.yml | 2 +- .github/workflows/docs.yml | 6 +++--- .github/workflows/publish.yml | 2 +- README.md | 8 ++++---- docs/concepts/overview.md | 6 ++---- docs/index.md | 8 ++++---- docs/notebooks.md | 2 +- examples/01_face_detection.ipynb | 2 +- examples/02_face_alignment.ipynb | 2 +- examples/03_face_verification.ipynb | 2 +- examples/04_face_search.ipynb | 2 +- examples/05_face_analyzer.ipynb | 2 +- examples/06_face_parsing.ipynb | 2 +- examples/07_face_anonymization.ipynb | 2 +- examples/08_gaze_estimation.ipynb | 2 +- examples/09_face_segmentation.ipynb | 2 +- examples/10_face_vector_store.ipynb | 2 +- examples/11_head_pose_estimation.ipynb | 2 +- examples/12_face_recognition.ipynb | 2 +- examples/13_portrait_matting.ipynb | 2 +- mkdocs.yml | 2 +- pyproject.toml | 2 +- 22 files changed, 31 insertions(+), 33 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 43824a0..026b040 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: Build +name: CI on: push: diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 33b71bb..096d963 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,8 +1,8 @@ -name: Deploy docs +name: Deploy Documentation on: release: - types: [released] # Fires only for stable releases (not pre-releases), after publish.yml creates the Release + types: [released] workflow_dispatch: permissions: @@ -14,7 +14,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - fetch-depth: 0 # Fetch full history for git-committers and git-revision-date plugins + fetch-depth: 0 - uses: actions/setup-python@v5 with: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 4312a50..52b2e42 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -3,7 +3,7 @@ name: Publish to PyPI on: push: tags: - - "v*.*.*" # Trigger only on version tags like v0.1.9 + - "v*.*.*" concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/README.md b/README.md index e15c7a7..f580892 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

UniFace: All-in-One Face Analysis Library

+

UniFace: A Unified Face Analysis Library for Python

@@ -14,12 +14,12 @@
- UniFace - All-in-One Open-Source Face Analysis Library + UniFace - A Unified Face Analysis Library for Python
--- -**UniFace** is a lightweight, production-ready face analysis library built on ONNX Runtime. It provides high-performance face detection, recognition, landmark detection, face parsing, gaze estimation, and attribute analysis with hardware acceleration support across platforms. +**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes. --- @@ -226,7 +226,7 @@ cv2.imwrite("green_screen.jpg", result) | [02_face_alignment.ipynb](examples/02_face_alignment.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/02_face_alignment.ipynb) | Face alignment for recognition | | [03_face_verification.ipynb](examples/03_face_verification.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/03_face_verification.ipynb) | Compare faces for identity | | [04_face_search.ipynb](examples/04_face_search.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/04_face_search.ipynb) | Find a person in group photos | -| [05_face_analyzer.ipynb](examples/05_face_analyzer.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/05_face_analyzer.ipynb) | All-in-one analysis | +| [05_face_analyzer.ipynb](examples/05_face_analyzer.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/05_face_analyzer.ipynb) | Unified face analysis | | [06_face_parsing.ipynb](examples/06_face_parsing.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/06_face_parsing.ipynb) | Semantic face segmentation | | [07_face_anonymization.ipynb](examples/07_face_anonymization.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/07_face_anonymization.ipynb) | Privacy-preserving blur | | [08_gaze_estimation.ipynb](examples/08_gaze_estimation.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/08_gaze_estimation.ipynb) | Gaze direction estimation | diff --git a/docs/concepts/overview.md b/docs/concepts/overview.md index df60408..4146ca5 100644 --- a/docs/concepts/overview.md +++ b/docs/concepts/overview.md @@ -64,16 +64,14 @@ graph TB ## Design Principles -### 1. ONNX-First +### 1. Cross-Platform Inference -UniFace runs inference primarily via ONNX Runtime for core components: +UniFace uses portable model runtimes to provide consistent inference across macOS, Linux, and Windows. Most core components run through ONNX Runtime, while optional components may use PyTorch where appropriate. - **Cross-platform**: Same models work on macOS, Linux, Windows - **Hardware acceleration**: Automatic selection of optimal provider - **Production-ready**: No Python-only dependencies for inference -Some optional components (e.g., emotion TorchScript, torchvision NMS) require PyTorch. - ### 2. Minimal Dependencies Core dependencies are kept minimal: diff --git a/docs/index.md b/docs/index.md index bbe743e..0d48c0c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -10,7 +10,7 @@ template: home.html # UniFace { .hero-title } -

All-in-One Open-Source Face Analysis Library

+

A Unified Face Analysis Library for Python

[![PyPI Version](https://img.shields.io/pypi/v/uniface.svg?label=Version)](https://pypi.org/project/uniface/) [![Python Version](https://img.shields.io/badge/Python-3.10%2B-blue)](https://www.python.org/) @@ -20,7 +20,7 @@ template: home.html [![Kaggle Badge](https://img.shields.io/badge/Notebooks-Kaggle?label=Kaggle&color=blue)](https://www.kaggle.com/yakhyokhuja/code) [![Discord](https://img.shields.io/badge/Discord-Join%20Server-5865F2?logo=discord&logoColor=white)](https://discord.gg/wdzrjr7R5j) - + [Get Started](quickstart.md){ .md-button .md-button--primary } [View on GitHub](https://github.com/yakhyo/uniface){ .md-button } @@ -31,7 +31,7 @@ template: home.html
### :material-face-recognition: Face Detection -ONNX-optimized detectors (RetinaFace, SCRFD, YOLO) with 5-point landmarks. +RetinaFace, SCRFD, and YOLO detectors with 5-point landmarks.
@@ -90,7 +90,7 @@ FAISS-backed embedding store for fast multi-identity face search. ## Installation -UniFace runs inference primarily via **ONNX Runtime**; some optional components (e.g., emotion TorchScript, torchvision NMS) require **PyTorch**. +UniFace uses portable model runtimes for consistent inference across macOS, Linux, and Windows. Most core components run through **ONNX Runtime**, while optional components may use **PyTorch** where appropriate. **CPU / Apple Silicon** ```bash diff --git a/docs/notebooks.md b/docs/notebooks.md index 3f5add0..31e450d 100644 --- a/docs/notebooks.md +++ b/docs/notebooks.md @@ -12,7 +12,7 @@ Run UniFace examples directly in your browser with Google Colab, or download and | [Face Alignment](https://github.com/yakhyo/uniface/blob/main/examples/02_face_alignment.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/02_face_alignment.ipynb) | Align faces for recognition | | [Face Verification](https://github.com/yakhyo/uniface/blob/main/examples/03_face_verification.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/03_face_verification.ipynb) | Compare faces for identity | | [Face Search](https://github.com/yakhyo/uniface/blob/main/examples/04_face_search.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/04_face_search.ipynb) | Find a person in group photos | -| [Face Analyzer](https://github.com/yakhyo/uniface/blob/main/examples/05_face_analyzer.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/05_face_analyzer.ipynb) | All-in-one face analysis | +| [Face Analyzer](https://github.com/yakhyo/uniface/blob/main/examples/05_face_analyzer.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/05_face_analyzer.ipynb) | Unified face analysis | | [Face Parsing](https://github.com/yakhyo/uniface/blob/main/examples/06_face_parsing.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/06_face_parsing.ipynb) | Semantic face segmentation | | [Face Anonymization](https://github.com/yakhyo/uniface/blob/main/examples/07_face_anonymization.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/07_face_anonymization.ipynb) | Privacy-preserving blur | | [Gaze Estimation](https://github.com/yakhyo/uniface/blob/main/examples/08_gaze_estimation.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yakhyo/uniface/blob/main/examples/08_gaze_estimation.ipynb) | Gaze direction estimation | diff --git a/examples/01_face_detection.ipynb b/examples/01_face_detection.ipynb index dda052f..eead195 100644 --- a/examples/01_face_detection.ipynb +++ b/examples/01_face_detection.ipynb @@ -13,7 +13,7 @@ " \"GitHub\n", "
\n", "\n", - "**UniFace** is a lightweight, production-ready, all-in-one face analysis library built on ONNX Runtime.\n", + "**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes.\n", "\n", "🔗 **GitHub**: [github.com/yakhyo/uniface](https://github.com/yakhyo/uniface) | 📚 **Docs**: [yakhyo.github.io/uniface](https://yakhyo.github.io/uniface)\n", "\n", diff --git a/examples/02_face_alignment.ipynb b/examples/02_face_alignment.ipynb index bc07a21..cecb754 100644 --- a/examples/02_face_alignment.ipynb +++ b/examples/02_face_alignment.ipynb @@ -17,7 +17,7 @@ " \"GitHub\n", "\n", "\n", - "**UniFace** is a lightweight, production-ready, all-in-one face analysis library built on ONNX Runtime.\n", + "**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes.\n", "\n", "🔗 **GitHub**: [github.com/yakhyo/uniface](https://github.com/yakhyo/uniface) | 📚 **Docs**: [yakhyo.github.io/uniface](https://yakhyo.github.io/uniface)\n", "\n", diff --git a/examples/03_face_verification.ipynb b/examples/03_face_verification.ipynb index 0bb8360..f6585a2 100644 --- a/examples/03_face_verification.ipynb +++ b/examples/03_face_verification.ipynb @@ -13,7 +13,7 @@ " \"GitHub\n", "\n", "\n", - "**UniFace** is a lightweight, production-ready, all-in-one face analysis library built on ONNX Runtime.\n", + "**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes.\n", "\n", "🔗 **GitHub**: [github.com/yakhyo/uniface](https://github.com/yakhyo/uniface) | 📚 **Docs**: [yakhyo.github.io/uniface](https://yakhyo.github.io/uniface)\n", "\n", diff --git a/examples/04_face_search.ipynb b/examples/04_face_search.ipynb index a6c1ac7..9fabede 100644 --- a/examples/04_face_search.ipynb +++ b/examples/04_face_search.ipynb @@ -13,7 +13,7 @@ " \"GitHub\n", "\n", "\n", - "**UniFace** is a lightweight, production-ready, all-in-one face analysis library built on ONNX Runtime.\n", + "**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes.\n", "\n", "🔗 **GitHub**: [github.com/yakhyo/uniface](https://github.com/yakhyo/uniface) | 📚 **Docs**: [yakhyo.github.io/uniface](https://yakhyo.github.io/uniface)\n", "\n", diff --git a/examples/05_face_analyzer.ipynb b/examples/05_face_analyzer.ipynb index a0b1998..de71b14 100644 --- a/examples/05_face_analyzer.ipynb +++ b/examples/05_face_analyzer.ipynb @@ -13,7 +13,7 @@ " \"GitHub\n", "\n", "\n", - "**UniFace** is a lightweight, production-ready, all-in-one face analysis library built on ONNX Runtime.\n", + "**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes.\n", "\n", "🔗 **GitHub**: [github.com/yakhyo/uniface](https://github.com/yakhyo/uniface) | 📚 **Docs**: [yakhyo.github.io/uniface](https://yakhyo.github.io/uniface)\n", "\n", diff --git a/examples/06_face_parsing.ipynb b/examples/06_face_parsing.ipynb index 1e8b153..ac024a8 100644 --- a/examples/06_face_parsing.ipynb +++ b/examples/06_face_parsing.ipynb @@ -13,7 +13,7 @@ " \"GitHub\n", "\n", "\n", - "**UniFace** is a lightweight, production-ready, all-in-one face analysis library built on ONNX Runtime.\n", + "**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes.\n", "\n", "🔗 **GitHub**: [github.com/yakhyo/uniface](https://github.com/yakhyo/uniface) | 📚 **Docs**: [yakhyo.github.io/uniface](https://yakhyo.github.io/uniface)\n", "\n", diff --git a/examples/07_face_anonymization.ipynb b/examples/07_face_anonymization.ipynb index cd08cb0..af35317 100644 --- a/examples/07_face_anonymization.ipynb +++ b/examples/07_face_anonymization.ipynb @@ -13,7 +13,7 @@ " \"GitHub\n", "\n", "\n", - "**UniFace** is a lightweight, production-ready, all-in-one face analysis library built on ONNX Runtime.\n", + "**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes.\n", "\n", "🔗 **GitHub**: [github.com/yakhyo/uniface](https://github.com/yakhyo/uniface) | 📚 **Docs**: [yakhyo.github.io/uniface](https://yakhyo.github.io/uniface)\n", "\n", diff --git a/examples/08_gaze_estimation.ipynb b/examples/08_gaze_estimation.ipynb index f4756ae..f947119 100644 --- a/examples/08_gaze_estimation.ipynb +++ b/examples/08_gaze_estimation.ipynb @@ -13,7 +13,7 @@ " \"GitHub\n", "\n", "\n", - "**UniFace** is a lightweight, production-ready, all-in-one face analysis library built on ONNX Runtime.\n", + "**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes.\n", "\n", "🔗 **GitHub**: [github.com/yakhyo/uniface](https://github.com/yakhyo/uniface) | 📚 **Docs**: [yakhyo.github.io/uniface](https://yakhyo.github.io/uniface)\n", "\n", diff --git a/examples/09_face_segmentation.ipynb b/examples/09_face_segmentation.ipynb index 7ebdcaf..3619766 100644 --- a/examples/09_face_segmentation.ipynb +++ b/examples/09_face_segmentation.ipynb @@ -13,7 +13,7 @@ " \"GitHub\n", "\n", "\n", - "**UniFace** is a lightweight, production-ready, all-in-one face analysis library built on ONNX Runtime.\n", + "**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes.\n", "\n", "🔗 **GitHub**: [github.com/yakhyo/uniface](https://github.com/yakhyo/uniface) | 📚 **Docs**: [yakhyo.github.io/uniface](https://yakhyo.github.io/uniface)\n", "\n", diff --git a/examples/10_face_vector_store.ipynb b/examples/10_face_vector_store.ipynb index c807aac..d9b3de6 100644 --- a/examples/10_face_vector_store.ipynb +++ b/examples/10_face_vector_store.ipynb @@ -13,7 +13,7 @@ " \"GitHub\n", "\n", "\n", - "**UniFace** is a lightweight, production-ready, all-in-one face analysis library built on ONNX Runtime.\n", + "**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes.\n", "\n", "🔗 **GitHub**: [github.com/yakhyo/uniface](https://github.com/yakhyo/uniface) | 📚 **Docs**: [yakhyo.github.io/uniface](https://yakhyo.github.io/uniface)\n", "\n", diff --git a/examples/11_head_pose_estimation.ipynb b/examples/11_head_pose_estimation.ipynb index 9c48fb5..939cc92 100644 --- a/examples/11_head_pose_estimation.ipynb +++ b/examples/11_head_pose_estimation.ipynb @@ -13,7 +13,7 @@ " \"GitHub\n", "\n", "\n", - "**UniFace** is a lightweight, production-ready, all-in-one face analysis library built on ONNX Runtime.\n", + "**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes.\n", "\n", "🔗 **GitHub**: [github.com/yakhyo/uniface](https://github.com/yakhyo/uniface) | 📚 **Docs**: [yakhyo.github.io/uniface](https://yakhyo.github.io/uniface)\n", "\n", diff --git a/examples/12_face_recognition.ipynb b/examples/12_face_recognition.ipynb index fb9fc17..1c1926c 100644 --- a/examples/12_face_recognition.ipynb +++ b/examples/12_face_recognition.ipynb @@ -14,7 +14,7 @@ " \"GitHub\n", "\n", "\n", - "**UniFace** is a lightweight, production-ready, all-in-one face analysis library built on ONNX Runtime.\n", + "**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes.\n", "\n", "🔗 **GitHub**: [github.com/yakhyo/uniface](https://github.com/yakhyo/uniface) | 📚 **Docs**: [yakhyo.github.io/uniface](https://yakhyo.github.io/uniface)\n", "\n", diff --git a/examples/13_portrait_matting.ipynb b/examples/13_portrait_matting.ipynb index 469e3be..34f6da5 100644 --- a/examples/13_portrait_matting.ipynb +++ b/examples/13_portrait_matting.ipynb @@ -13,7 +13,7 @@ " \"GitHub\n", "\n", "\n", - "**UniFace** is a lightweight, production-ready, all-in-one face analysis library built on ONNX Runtime.\n", + "**UniFace** is a lightweight, production-ready Python library for face detection, recognition, tracking, landmark analysis, face parsing, gaze estimation, and face attributes.\n", "\n", "🔗 **GitHub**: [github.com/yakhyo/uniface](https://github.com/yakhyo/uniface) | 📚 **Docs**: [yakhyo.github.io/uniface](https://yakhyo.github.io/uniface)\n", "\n", diff --git a/mkdocs.yml b/mkdocs.yml index 961a250..eaa6c4e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,5 +1,5 @@ site_name: UniFace -site_description: All-in-One Face Analysis Library with ONNX Runtime +site_description: A Unified Face Analysis Library for Python site_author: Yakhyokhuja Valikhujaev site_url: https://yakhyo.github.io/uniface diff --git a/pyproject.toml b/pyproject.toml index 061811b..26a7b7b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "uniface" version = "3.5.1rc1" -description = "UniFace: A Comprehensive Library for Face Detection, Recognition, Tracking, Landmark Analysis, Face Parsing, Gaze Estimation, Age, and Gender Detection" +description = "UniFace: A Unified Face Analysis Library for Python" readme = "README.md" license = "MIT" authors = [{ name = "Yakhyokhuja Valikhujaev", email = "yakhyo9696@gmail.com" }]