Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1116 commits
Select commit Hold shift + click to select a range
b19d703
Update README.md
jiankangdeng Mar 15, 2023
68585f1
Update README.md
jiankangdeng Mar 15, 2023
3314a52
Merge pull request #2257 from dsgibbons/master
nttstar Mar 20, 2023
3091d92
Update README.md
barisgecer Mar 30, 2023
8f89686
add swapping-discord-bot
nttstar Apr 1, 2023
44c7644
Update README of swapping discord bot
nttstar Apr 1, 2023
d39f9c0
Update README.md
nttstar Apr 1, 2023
9780253
Update README.md
nttstar Apr 1, 2023
5e9e506
Update README.md
nttstar Apr 1, 2023
826752f
Update README.md
nttstar Apr 1, 2023
3e64869
Update README.md
nttstar Apr 2, 2023
668e8d4
add v0.7.3, move model storage to github release
nttstar Apr 2, 2023
159b0f9
Merge branch 'master' of https://github.com/deepinsight/insightface
nttstar Apr 2, 2023
53d4a23
Update README.md
nttstar Apr 2, 2023
d5986c7
Update README.md
nttstar Apr 6, 2023
ab27f4d
Fixed torch1.12 api changes
anxiangsir Apr 8, 2023
88ad723
Update README.md
nttstar Apr 10, 2023
272ace1
Update README.md
nttstar Apr 10, 2023
439d8f0
Update README.md
nttstar Apr 10, 2023
91883ad
Update README.md
nttstar Apr 10, 2023
06f2694
Update README.md
nttstar Apr 10, 2023
0f9fe6e
Update README.md
nttstar Apr 13, 2023
a8746be
Update README.md
nttstar Apr 14, 2023
5838607
Update README.md
nttstar Apr 15, 2023
8a5c311
Update README.md
nttstar Apr 15, 2023
15cdbf2
Create privacy.md
nttstar Apr 15, 2023
1ac19c1
Update README.md
nttstar Apr 15, 2023
15a1f15
Update README.md
nttstar Apr 15, 2023
32682e5
Update README.md
nttstar Apr 15, 2023
6b1bc13
Update README.md
nttstar Apr 18, 2023
f0b26ec
Update README.md
nttstar Apr 18, 2023
8c56bfc
Update README.md
nttstar Apr 19, 2023
cd3196f
Update README.md
nttstar Apr 19, 2023
ae21f32
Update README.md
nttstar Apr 20, 2023
5003c0c
Update README.md
nttstar Apr 20, 2023
7de8426
Update README.md
nttstar Apr 23, 2023
71b434c
Update README.md
nttstar Apr 23, 2023
07acf59
Update README.md
nttstar Apr 23, 2023
c30c0e6
Update README.md
nttstar Apr 23, 2023
1fb1c0b
Update README.md
nttstar Apr 27, 2023
fd10d29
Update README.md
nttstar Apr 27, 2023
0ab621f
Update README.md
nttstar Apr 27, 2023
ff22ac4
Update README.md
nttstar May 2, 2023
846a4e7
Update README.md
nttstar May 3, 2023
e68b8b0
Update README.md
nttstar May 3, 2023
4828278
Update README.md
nttstar May 8, 2023
f9f35e8
Update README.md
nttstar May 14, 2023
133a139
Update README.md
nttstar May 15, 2023
fb4d187
Update README.md
nttstar May 15, 2023
6b71e84
Update README.md
nttstar May 15, 2023
8a8731d
Update README.md
nttstar May 15, 2023
8822b11
Update README.md
nttstar May 15, 2023
fc4850b
Update README.md
nttstar May 16, 2023
3b330c9
Update README.md
nttstar May 17, 2023
f6fcbd2
Update README.md
nttstar May 17, 2023
e8c33fc
Update README.md
nttstar May 22, 2023
363903f
Update README.md
nttstar Jun 2, 2023
6cd53d9
Update README.md
nttstar Jun 2, 2023
bc19ea1
Update README.md
nttstar Jun 3, 2023
9097cd7
Update losses.py
parsa-ra Jun 10, 2023
fc62200
Merge pull request #2338 from parsa-ra/patch-1
nttstar Jun 10, 2023
fa209db
del file
nttstar Jul 20, 2023
8fc7b2e
Update README.md
nttstar Jul 20, 2023
9938878
update torch 1.3.0 to 1.13.1
ChengDaqi2023 Jul 21, 2023
da73872
Merge pull request #2380 from ChengDaqi2023/oscs_fix_cisul9gau51vj78h…
nttstar Jul 21, 2023
561bc3e
Update README.md
nttstar Jul 27, 2023
a17f2c0
Update README.md
nttstar Jul 28, 2023
85f7c9d
Update README.md
nttstar Jul 31, 2023
ccfc89c
Update prepare_custom_dataset.md (#2389)
desertSniper87 Aug 2, 2023
00f98ef
Rectified dependency name in arcface_torch custom dataset preparation…
ElisonSherton Aug 2, 2023
ac052f9
init gaze
nttstar Aug 6, 2023
fdc8e31
Update README.md
nttstar Aug 6, 2023
948774a
add gaze tester
nttstar Aug 8, 2023
9440a17
Merge branch 'master' of https://github.com/deepinsight/insightface
nttstar Aug 8, 2023
852e550
Update README.md
nttstar Aug 8, 2023
b6915c6
Update README.md
nttstar Aug 8, 2023
8e11c93
Update README.md
nttstar Aug 8, 2023
9030bda
fix gaze test code
nttstar Aug 8, 2023
c159724
Merge branch 'master' of https://github.com/deepinsight/insightface
nttstar Aug 8, 2023
a7fb353
Update README.md
nttstar Aug 8, 2023
f77d19d
Update README.md
nttstar Aug 8, 2023
83ad05e
Update README.md
nttstar Aug 13, 2023
176dc06
Update README.md
nttstar Aug 13, 2023
e0e6434
Update README.md
nttstar Aug 13, 2023
0cb03d3
Update README.md
nttstar Aug 13, 2023
cb1922e
Update README.md
nttstar Aug 22, 2023
03c08c7
Update README.md
nttstar Aug 26, 2023
839cce9
Update README.md
nttstar Aug 27, 2023
786e63a
Update README.md
nttstar Aug 28, 2023
06615b0
Update README.md
nttstar Sep 10, 2023
c2db414
Update README.md
nttstar Sep 10, 2023
0fe215d
сhanged concatenation of strings to f-strings to improve readability …
eukub Dec 23, 2023
01a34cd
Merge pull request #2496 from eukub/concat-to-fstring
nttstar Dec 24, 2023
e90dacb
Update README.md
nttstar Apr 16, 2024
08d7e96
Add the inspireface project to cpp-package.
tunmx May 1, 2024
fe18c0b
Merge pull request #2569 from tunmx/inspireface
nttstar May 2, 2024
01a1ad3
Update README.md
YufeiJ1ao May 2, 2024
bf5f0a3
Merge pull request #2571 from YufeiJ1ao/patch-1
nttstar May 3, 2024
0843a0b
Update README.md
nttstar May 4, 2024
208d17e
Update README.md
nttstar May 4, 2024
ce564bd
Update InspireFace to 1.0.1
tunmx May 8, 2024
15396be
Merge pull request #2572 from tunmx/update_inspireface_1_0_1
nttstar May 8, 2024
a1e535c
Update README.md
nttstar Jun 7, 2024
098ac7c
Update InspireFace to 1.1.0
tunmx Jun 19, 2024
e3af42f
Merge pull request #2597 from tunmx/dev/inspireface110
nttstar Jun 20, 2024
fa23165
Update README.md
anxiangsir Jun 20, 2024
21fcc5b
Update InspireFace to 1.1.1
tunmx Jun 27, 2024
a61a1dd
Merge pull request #2602 from tunmx/dev/inspireface111
nttstar Jun 27, 2024
f964f67
Update InspireFace to 1.1.2
tunmx Jul 2, 2024
a1b9206
Merge pull request #2605 from tunmx/dev/inspireface112
nttstar Jul 2, 2024
dfc72ba
Update InspireFace to 1.1.4
tunmx Jul 5, 2024
253c82a
Merge pull request #2607 from tunmx/inspireface114
nttstar Jul 5, 2024
31827ec
Modify some incorrect and missing code comments.
tunmx Jul 5, 2024
b9c1d8b
Merge pull request #2608 from tunmx/dev/modify
nttstar Jul 6, 2024
3a8dd77
Update InspireFace to 1.1.6
tunmx Jul 17, 2024
a276e88
Update InspireFace to 1.1.6
tunmx Jul 17, 2024
a00938e
Merge pull request #2612 from tunmx/dev/inspireface116
nttstar Jul 17, 2024
e38e761
Update README.md
anxiangsir Jul 24, 2024
7a67208
Update README.md
anxiangsir Jul 24, 2024
04cdeb5
Update README.md
anxiangsir Jul 24, 2024
e1399e1
Update README.md
anxiangsir Jul 24, 2024
036b551
Update README.md
anxiangsir Jul 24, 2024
0f18de5
Update README.md
nttstar Aug 6, 2024
5448291
Update README.md
nttstar Aug 11, 2024
8ee300b
Update README.md
nttstar Aug 11, 2024
fb8f400
Update README.md
nttstar Aug 11, 2024
1da0557
Update README.md
nttstar Aug 11, 2024
1ab58f3
Update README.md
nttstar Aug 11, 2024
b4ac7a2
Update README.md
nttstar Aug 11, 2024
95989c9
Update README.md
nttstar Aug 12, 2024
d8a9f47
Update README.md
nttstar Aug 14, 2024
d1ac587
Update README.md
nttstar Aug 14, 2024
b2646d9
Update the benchmark for apple devices
tunmx Aug 18, 2024
772dab2
Merge pull request #2632 from tunmx/dev/apple_bm
nttstar Aug 18, 2024
0063db4
updating benchmark
tunmx Aug 19, 2024
4ead3bb
Merge pull request #2633 from tunmx/dev/apple_bm
nttstar Aug 19, 2024
7ece4ed
Fix the wrong link
tunmx Aug 27, 2024
15ce207
Merge pull request #2637 from tunmx/dev/fix_link
nttstar Aug 27, 2024
e995048
Update README.md
nttstar Aug 27, 2024
cff2a1b
Update README.md
nttstar Aug 27, 2024
65dd965
Update feature_hub.cpp, fix empty check
chiphead Aug 30, 2024
b0b8253
Merge pull request #2639 from chiphead/patch-1
nttstar Aug 30, 2024
407d319
Clean up unnecessary code
tunmx Sep 18, 2024
83a5802
Merge pull request #2646 from tunmx/bugfix/capi-1
nttstar Sep 18, 2024
052d9e3
update to 1.1.7
tunmx Sep 30, 2024
4f8c54a
Merge pull request #2657 from tunmx/dev/inspireface117
nttstar Sep 30, 2024
4b6acd0
Added the system resource management and monitoring functions
tunmx Oct 9, 2024
a1eb852
Merge pull request #2663 from tunmx/dev/sys_stat
nttstar Oct 11, 2024
00595a7
Update face_analysis.py
ease-zh Nov 1, 2024
a333044
Update face_analysis.py
ease-zh Nov 1, 2024
0159b24
Update README.md (#2681)
anxiangsir Nov 5, 2024
05d887c
clean
nttstar Nov 10, 2024
337990a
Update README.md
nttstar Nov 13, 2024
cc19aa9
Fixed failed db file creation under Python-Native
tunmx Nov 19, 2024
8dc3a9d
Merge pull request #2692 from tunmx/bugfix/persistence
nttstar Nov 20, 2024
758a0e6
fix creation of C++ sample
sam-herman Nov 21, 2024
2e29b41
Merge pull request #2693 from sam-herman/add-lib-config
nttstar Nov 22, 2024
4aa1a40
Merge pull request #2679 from ease-zh/patch-1
nttstar Dec 5, 2024
e14ee07
Update README.md
nttstar Feb 13, 2025
844e107
Create insightface_app.py
Raghucharan16 Feb 17, 2025
f0e8775
Merge pull request #2728 from Raghucharan16/patch-1
nttstar Feb 18, 2025
85dc9bf
Fix macOS installation: Add LLVM check & logging in setup.py
BVishal-Geek Feb 28, 2025
4e605d2
Fix macOS installation: Add LLVM,brew check & logging in setup.py
BVishal-Geek Mar 1, 2025
bd6d9c8
Merge pull request #2731 from BVishal-Geek/fix-macos-installation
nttstar Mar 1, 2025
e1b98a3
Update README.md
nttstar Mar 2, 2025
f0cfaf3
Update pickle_object.py
XiaoXiaoJiangYun Mar 10, 2025
977ea67
Merge pull request #2733 from XiaoXiaoJiangYun/master
nttstar Mar 10, 2025
ca64996
Update inspireface to 1.2.0
tunmx Mar 24, 2025
786c4a8
Merge pull request #2742 from tunmx/dev/isf_update
nttstar Mar 25, 2025
efb5639
Update README.md
nttstar Apr 23, 2025
7e25e4e
Update
tunmx May 22, 2025
5cfeed1
Merge pull request #2764 from tunmx/dev/up121
nttstar May 22, 2025
6221743
Upgrade InspireFace to version 1.22
tunmx Jun 14, 2025
8f94f04
Merge pull request #2775 from tunmx/feature/up122
nttstar Jun 15, 2025
df32ba9
Fix the issue of rga image processing for face detection
tunmx Jun 15, 2025
add23b8
Update
tunmx Jun 16, 2025
554a055
Merge pull request #2776 from tunmx/bugfix/det_preprocess_error
nttstar Jun 16, 2025
cf2a79c
Update README.md
nttstar Jul 14, 2025
124b562
Update inspireface to 1.2.3
tunmx Aug 8, 2025
c5676c1
Merge pull request #2790 from tunmx/feature/up123
nttstar Aug 8, 2025
29b6cd6
Update README.md
nttstar Aug 18, 2025
2a78bae
Update README.md
nttstar Sep 27, 2025
fafe621
Revise InsightFace project licensing
jiankangdeng Nov 19, 2025
aa879df
update approved license table
jiankangdeng Nov 19, 2025
9beea9d
Update approved_license.md
jiankangdeng Nov 19, 2025
f0b6def
Update README.md
jiankangdeng Nov 19, 2025
3ac013a
Update README.md
nttstar Nov 24, 2025
f9da892
Delete approved_license.md
nttstar Nov 24, 2025
1e639d7
Update README.md
nttstar Nov 24, 2025
087bb07
Update README.md
nttstar Nov 24, 2025
81e4703
Update README.md
nttstar Nov 24, 2025
ce94005
Update README.md
nttstar Nov 24, 2025
2bcb4bd
Update README.md
nttstar Nov 24, 2025
852cc3a
Update README.md
nttstar Nov 24, 2025
633464f
Update README.md
nttstar Nov 24, 2025
71bf50d
Update README.md
nttstar Nov 25, 2025
53a870f
Add Stefanos Zafeiriou to project maintainers
jiankangdeng Mar 18, 2026
ef0d5f8
Fix email address for Stefanos Zafeiriou
jiankangdeng Mar 18, 2026
bfb2112
Update maintainers in README.md
jiankangdeng Mar 18, 2026
a6fd8f9
Fix image links in README for video demo and introduction
nttstar Mar 29, 2026
b2ae510
Change image sources to raw GitHub links
nttstar Mar 29, 2026
f7a7d77
Change image URLs in README.md
nttstar Mar 29, 2026
55a01e2
Change image sources to raw GitHub URLs
nttstar Mar 29, 2026
4ff4676
Change image sources to raw GitHub links
nttstar Mar 29, 2026
705aa14
Change image sources to raw GitHub links
nttstar Mar 29, 2026
c55fbba
Remove Face Recognition Demo link and image
nttstar Mar 29, 2026
f8613d4
Fix image URLs in README.md
nttstar Mar 29, 2026
af6b383
Add InsightFace Evaluation Studio GUI
nttstar May 20, 2026
35c19ad
Add manual CI and improve wheel compatibility
nttstar May 20, 2026
225859f
Fix CI path test and disable pip cache
nttstar May 20, 2026
af41109
Upgrade CI actions and validate GUI workspace paths
nttstar May 20, 2026
db140e3
Simplify settings dialog and add UI themes
nttstar May 20, 2026
ee3907f
Persist album state and adjust default thresholds
nttstar May 21, 2026
644a473
Refine recognition controls and add button tooltips
nttstar May 21, 2026
b468cd4
Slim GUI optional dependencies
nttstar May 21, 2026
fa4441b
Include PDF report support in GUI extra
nttstar May 21, 2026
9d41a19
Configure Qt plugin paths for Essentials GUI
nttstar May 21, 2026
5c70153
Add CI check for Qt Essentials plugins
nttstar May 21, 2026
30d9a45
Support Windows PySide6 plugin layout
nttstar May 21, 2026
d816077
Add polished GUI theme options
nttstar May 21, 2026
399ca41
Differentiate GUI color themes
nttstar May 21, 2026
b225ed8
Theme face swap result viewer
nttstar May 21, 2026
ae34921
Refine recognition controls and table layouts
nttstar May 21, 2026
981173f
Add GFPGAN restore model workflow
nttstar May 21, 2026
1241a44
Switch GFPGAN downloads to GitHub release
nttstar May 21, 2026
57023e4
Fix model manager download workflow
nttstar May 21, 2026
9d49a3d
Cache face recognition gallery embeddings
nttstar May 21, 2026
1cf7d1f
Trim face recognition cache notice
nttstar May 21, 2026
5d13eb4
Refine album HDBSCAN clustering workflow
nttstar May 21, 2026
a2baca9
Require HDBSCAN for album clustering
nttstar May 21, 2026
438c534
Store album thumbnails in database
nttstar May 21, 2026
972ca5f
Decode album thumbnails with Pillow
nttstar May 21, 2026
e2d3acf
Update GUI evaluation studio CI and localization
nttstar May 22, 2026
36e82fb
Opt GitHub Actions into Node 24
nttstar May 22, 2026
0f66b98
Update GUI evaluation reports and release tooling
nttstar May 22, 2026
533e825
Stabilize GUI localization tests
nttstar May 22, 2026
b818ebe
Use SCRFD auto detection by default
nttstar May 23, 2026
6e4c4e6
Update Python package changelog for 1.0
nttstar May 23, 2026
3ddfebb
Update GUI app icon assets
nttstar May 23, 2026
615eb11
Update package CI icon assertions
nttstar May 23, 2026
c2eb8e7
Merge pull request #2885 from deepinsight/codex/gui-1.0
nttstar May 23, 2026
70f3269
Prepare 1.0.1 package dependency cleanup
nttstar May 23, 2026
658b034
Merge pull request #2886 from deepinsight/codex/gui-1.0
nttstar May 23, 2026
afb0c0d
new android example
tunmx Jul 22, 2026
1456819
Merge pull request #2892 from tunmx/feature/new_android_exm
nttstar Jul 22, 2026
575ffbc
feat(server): add self-hosted InsightFace Server
nttstar Jul 26, 2026
4c7cb91
docs: announce InsightFace Server release
nttstar Jul 26, 2026
cdbe605
docs: mention Server in InsightFace 1.0 update
nttstar Jul 27, 2026
ab78b40
Revise README with new features and server details
nttstar Jul 27, 2026
7fadd42
build(server): update packaging dependencies
nttstar Jul 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
43 changes: 43 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# The server images intentionally receive only the Server tree and the selected
# InsightFace inference package; unrelated repository data never enters the
# Docker build context.
**
!server/
!server/**
!python-package/
!python-package/insightface/
!python-package/insightface/__init__.py
!python-package/insightface/app/
!python-package/insightface/app/**
!python-package/insightface/model_zoo/
!python-package/insightface/model_zoo/**
!python-package/insightface/utils/
!python-package/insightface/utils/**
!python-package/insightface/data/
!python-package/insightface/data/__init__.py
!python-package/insightface/data/image.py
!python-package/insightface/data/pickle_object.py
!python-package/insightface/thirdparty/
!python-package/insightface/thirdparty/__init__.py

# Re-exclude local state and secrets below the whitelisted source trees.
.private/
server/.venv/
server/.data/
server/.models/
server/.mypy_cache/
server/.pytest_cache/
server/.ruff_cache/
server/build/
server/test-results/
**/__pycache__/
**/*.py[cod]
**/._*
**/.DS_Store
server/**/dist/
**/*.onnx
**/.env
**/.env.*
**/*.key
**/*.pem
!server/backend/insightface_server/licensing/trusted_keys/*.pem
302 changes: 302 additions & 0 deletions .github/workflows/manual-python-package-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,302 @@
name: Manual Python Package CI

on:
workflow_dispatch:

permissions:
contents: read

env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"

jobs:
build-package:
name: Build package / macOS / Python 3.11
runs-on: macos-latest
timeout-minutes: 30

defaults:
run:
shell: bash
working-directory: python-package

env:
PIP_DISABLE_PIP_VERSION_CHECK: "1"
PIP_NO_PYTHON_VERSION_WARNING: "1"
PIP_NO_CACHE_DIR: "1"
PYTHONUTF8: "1"

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Python 3.11
uses: actions/setup-python@v6
with:
python-version: "3.11"

- name: Upgrade packaging tools
run: |
python -m pip install --upgrade pip setuptools wheel build twine

- name: Build wheel and source distribution
run: |
rm -rf dist build *.egg-info
python -m build

- name: Check package metadata
run: |
python -m twine check dist/*

- name: Inspect built package contents
run: |
python - <<'PY'
from pathlib import Path
import tarfile
from zipfile import ZipFile

wheels = sorted(Path("dist").glob("insightface-1.0.1-*.whl"))
sdists = sorted(Path("dist").glob("insightface-1.0.1.tar.gz"))
assert wheels, "No wheel was built."
assert sdists, "No source distribution was built."
wheel_path = wheels[-1]
sdist_path = sdists[-1]

with ZipFile(wheel_path) as archive:
names = archive.namelist()
wheel_metadata = archive.read("insightface-1.0.1.dist-info/WHEEL").decode()
package_metadata = archive.read("insightface-1.0.1.dist-info/METADATA").decode()
with tarfile.open(sdist_path, "r:gz") as archive:
sdist_names = archive.getnames()

assert "Root-Is-Purelib: true" in wheel_metadata
assert "Tag: py3-none-any" in wheel_metadata
assert "Requires-Dist: onnxruntime" in package_metadata
assert "Requires-Dist: opencv-python" in package_metadata
assert "Provides-Extra: gui" in package_metadata
assert "Requires-Dist: PySide6-Essentials" in package_metadata
assert "Requires-Dist: reportlab" in package_metadata
assert "Requires-Dist: scikit-learn" in package_metadata
assert "Provides-Extra: face3d" in package_metadata
assert "Requires-Dist: matplotlib" in package_metadata
assert "Requires-Dist: pandas" not in package_metadata
assert "Requires-Dist: easydict" not in package_metadata
assert "Requires-Dist: prettytable" not in package_metadata
assert "License: MIT" not in package_metadata
assert "Requires-Dist: PySide6 " not in package_metadata
assert "insightface/data/images/t1.jpg" in names
assert "insightface/data/objects/meanshape_68.pkl" in names
assert "insightface/gui/assets/app_icon.png" in names
assert "insightface/gui/assets/app_icon.ico" in names
assert "insightface/gui/assets/app_icon.icns" in names
assert any(name.endswith("insightface/gui/assets/app_icon.png") for name in sdist_names)
assert any(name.endswith("insightface/gui/assets/app_icon.ico") for name in sdist_names)
assert any(name.endswith("insightface/gui/assets/app_icon.icns") for name in sdist_names)
assert not any(".data/data/insightface/data/" in name for name in names)
assert not any(name.endswith((".so", ".pyd", ".dll", ".dylib")) for name in names)

print(f"Package inspection passed: {wheel_path}, {sdist_path}")
PY

- name: Upload package artifacts
uses: actions/upload-artifact@v5
with:
name: python-package-dist
path: python-package/dist/*

install-test:
name: Install test / ${{ matrix.os }} / Python ${{ matrix.python-version }}
needs: build-package
runs-on: ${{ matrix.os }}
timeout-minutes: 45

strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
python-version:
- "3.9"
- "3.10"
- "3.11"
- "3.12"

defaults:
run:
shell: bash
working-directory: python-package

env:
QT_QPA_PLATFORM: offscreen
PIP_DISABLE_PIP_VERSION_CHECK: "1"
PIP_NO_PYTHON_VERSION_WARNING: "1"
PIP_NO_CACHE_DIR: "1"
PYTHONUTF8: "1"

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

- name: Install Linux GUI runtime libraries
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
libegl1 \
libgl1 \
libglib2.0-0 \
libxkbcommon-x11-0 \
libxcb-cursor0 \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-render-util0 \
libxcb-xinerama0
working-directory: .

- name: Download macOS-built package artifacts
uses: actions/download-artifact@v5
with:
name: python-package-dist
path: python-package/dist

- name: Install test tools
run: |
python -m pip install --upgrade pip setuptools wheel pytest

- name: Install built wheel with GUI extra
run: |
python - <<'PY'
import subprocess
import sys
from pathlib import Path

wheels = sorted(Path("dist").glob("insightface-1.0.1-*.whl"))
assert wheels, "No wheel artifact was downloaded."
wheel = wheels[-1]
subprocess.check_call([sys.executable, "-m", "pip", "install", f"{wheel}[gui]"])
print(f"Installed package artifact: {wheel}")
PY

- name: Check PySide6 Essentials platform plugins
run: |
python - <<'PY'
import os
import sys
from importlib import metadata
from pathlib import Path

assert metadata.version("PySide6-Essentials")
assert metadata.version("shiboken6")
for dist_name in ("PySide6", "PySide6-Addons"):
try:
version = metadata.version(dist_name)
except metadata.PackageNotFoundError:
continue
raise AssertionError(f"{dist_name} should not be installed in the GUI extra, found {version}")

from insightface.gui.app import configure_qt_plugin_paths, qt_plugin_root_candidates

os.environ.pop("QT_PLUGIN_PATH", None)
os.environ.pop("QT_QPA_PLATFORM_PLUGIN_PATH", None)
configure_qt_plugin_paths()

if not os.environ.get("QT_PLUGIN_PATH") or not os.environ.get("QT_QPA_PLATFORM_PLUGIN_PATH"):
raise AssertionError(
"Qt plugin paths were not configured. "
f"Candidates: {[str(path) for path in qt_plugin_root_candidates()]}"
)

plugin_root = Path(os.environ["QT_PLUGIN_PATH"])
platform_dir = Path(os.environ["QT_QPA_PLATFORM_PLUGIN_PATH"])
if sys.platform == "darwin":
expected = {"libqcocoa.dylib", "libqoffscreen.dylib"}
elif sys.platform.startswith("win"):
expected = {"qwindows.dll", "qoffscreen.dll"}
elif sys.platform.startswith("linux"):
expected = {"libqxcb.so", "libqoffscreen.so"}
else:
expected = set()

available = {path.name for path in platform_dir.iterdir()}
missing = expected - available
assert plugin_root.exists(), plugin_root
assert platform_dir.exists(), platform_dir
assert not missing, f"Missing Qt platform plugins: {sorted(missing)} in {platform_dir}"

print(f"PySide6 Essentials Qt plugin root: {plugin_root}")
print(f"Available platform plugins: {sorted(available)}")
PY

- name: Check installed dependencies
run: |
python -m pip check

- name: Verify installed package and entry points
run: |
python - <<'PY'
import subprocess
import sys
import tempfile

checks = [
[sys.executable, "-c", "import insightface, insightface.gui; assert insightface.__version__ == '1.0.1'; assert insightface.gui.__version__ == '1.0.1'"],
[sys.executable, "-m", "insightface.gui", "--version"],
["insightface-gui", "--version"],
["insightface-eval-studio", "--version"],
["insightface-desktop", "--version"],
]
with tempfile.TemporaryDirectory() as tmp:
for command in checks:
output = subprocess.check_output(command, text=True, cwd=tmp)
if command[-1] == "--version":
assert "InsightFace Evaluation Studio 1.0.1" in output
assert "insightface 1.0.1" in output
print("Installed package and console entry points verified.")
PY

- name: Copy GUI tests outside source tree
run: |
python - <<'PY'
import os
import shutil
from pathlib import Path

source = Path("tests/gui")
target = Path(os.environ["RUNNER_TEMP"]) / "insightface-gui-tests"
if target.exists():
shutil.rmtree(target)
shutil.copytree(source, target)
print(f"Copied GUI tests to {target}")
PY

- name: Run GUI and packaging tests against installed wheel
run: |
python - <<'PY'
import os
import subprocess
import sys
from pathlib import Path

test_dir = Path(os.environ["RUNNER_TEMP"]) / "insightface-gui-tests"
subprocess.check_call([sys.executable, "-m", "pytest", str(test_dir), "-q"], cwd=str(test_dir.parent))
PY

- name: Run multilingual GUI tests against installed wheel
run: |
python - <<'PY'
import os
import subprocess
import sys
from pathlib import Path

test_file = Path(os.environ["RUNNER_TEMP"]) / "insightface-gui-tests" / "test_i18n.py"
subprocess.check_call([sys.executable, "-m", "pytest", str(test_file), "-q"], cwd=str(test_file.parent.parent))
PY
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,16 @@ ENV/

# mypy
.mypy_cache/

# InsightFace Server local state and private biometric/model assets
.private/
evaluation_data/
.pytest_cache/
.ruff_cache/
server/.data/
server/.models/*
!server/.models/.gitkeep
server/test-results/
*.onnx

.DS_Store
3 changes: 0 additions & 3 deletions .gitmodules

This file was deleted.

Loading