How to build insightface for Python3.13.x on Windows
shiba*2さんは、既にPython3.14.x環境における様々なPythonライブラリーのビルドに挑戦されていますが、特に私の環境において必要とするライブラリーの貴重なビルド情報を次々に公開されておられます。
クラウドのLinuxベースで主に開発をされている為に、Windowsベースの私とは環境が当然異なりますので、私としては、Windowsベースに置き換えた形での情報を記録する必要があります。
今回は、先月参考にさせて頂いた、InsightFace for Python3.13.xのビルド方法を公開します。
…
それにしても、Python3.12.x時代にはほとんど露呈しなかった問題ですが、3.13.移行後は、必要とするライブラリーが悉く存在せず、自力でビルドする必要が増えた気がします 。
更に今は、丁度CUDAの12.x→13.xへのメジャーバージョンアップと時期が重なっているので、余計ですね。昨日も、onnxruntime-gpuをcu130対応でビルドする為に、散々苦労しましたけどね。
現在、グローバル環境側がCUDA13.xに移行済みであれば、今回の記事においても以下が必要になります。
私が作成した各種ライブラリーは順次、以下で公開しています。
私はA1111系WebUIの環境開発の為に、まだPython3.12.xでやるべき仕事が残っていますが、これらを悉くGitHubに公開し、かつ自身の3.12.x環境を全てEmbedded Python環境に移行させた後、3.12.xを削除し、3.14.x環境も導入していく予定です。
Windows版Python 3.13対応InsightFaceビルド・インストール完全解説書
概要
この解説書では、Windows環境でPython 3.13対応のInsightFaceをビルド・インストールする手順を詳細に説明します。
前提条件
Windows 10/11 x64
Python 3.13がインストール済み
Visual Studio 2022 (C++ビルドツール)
CUDA Toolkit 13.0
cuDNN 9.13
手順
1. 環境構築
1.1 CUDA13.x対応onnxruntime-gpuのインストール
# 既存のonnxruntimeをアンインストール
pip uninstall -y onnxruntime-gpu
# CUDA 13.0対応のonnxruntime-gpuをインストール
pip install https://huggingface.co/ussoewwin/onnxruntime-gpu-1.24.0/resolve/main/onnxruntime_gpu-1.24.0-cp313-cp313-win_amd64.whl1.2 依存関係のインストール
# 必要なPythonパッケージをインストール
pip install numpy tqdm requests matplotlib Pillow scipy scikit-learn scikit-image easydict albumentations prettytable opencv-python-headless
# 最新のCythonをインストール(重要)
pip install --upgrade cython1.3 CUDA環境の確認
# CUDA Toolkitの確認
where nvcc
# cuDNNの確認
Get-ChildItem "C:\Program Files\NVIDIA\" -Recurse -Name "*cudnn*" -ErrorAction SilentlyContinue2. InsightFaceリポジトリのクローンとセットアップ
2.1 作業ディレクトリの作成
# ビルド用ディレクトリを作成
mkdir insightface_build
cd insightface_build2.2 リポジトリのクローン
# InsightFaceリポジトリをクローン
git clone https://github.com/deepinsight/insightface.git
cd insightface
# サブモジュールを初期化・更新
git submodule update --init --recursive3. ビルドの実行
3.1 ビルドディレクトリに移動
cd python-package3.2 古いビルド成果物の削除
# 古いビルド成果物を削除
Remove-Item -Recurse -Force build -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force dist -ErrorAction SilentlyContinue
# 古いCython生成ファイルを削除(重要)
Remove-Item -Force insightface\thirdparty\face3d\mesh\cython\mesh_core_cython.cpp -ErrorAction SilentlyContinue3.3 ビルドの実行
# 最新CythonでPython 3.13対応のC++コードを生成・コンパイル
python setup.py build_ext --inplace
# wheelパッケージを作成
python setup.py bdist_wheel4. インストールとテスト
4.1 生成されたwheelファイルの確認
dir dist4.2 パッケージのインストール
# ビルドしたパッケージをインストール
pip install dist\insightface-0.7.3-cp313-cp313-win_amd64.whl4.3 動作テスト
# 基本動作テスト
python -c "import insightface; print('Insightface version:', insightface.__version__)"
# CUDAプロバイダーテスト
python -c "import onnxruntime as ort; print('Available providers:', ort.get_available_providers())"5. 完全動作テスト
5.1 基本機能テスト
import numpy as np
import cv2
import insightface
from insightface.app import FaceAnalysis
print("Test 1: Library basic operation check starting...")
try:
print(f"Insightface version: {insightface.__version__}")
app = FaceAnalysis(providers=['CUDAExecutionProvider'])
app.prepare(ctx_id=0, det_size=(640, 640))
print("FaceAnalysis initialization successful. ONNX models loaded normally.")
except Exception as e:
print(f"Test 1 error: {e}")5.2 3Dメッシュ機能テスト
print("Test 2: 3D mesh module check starting...")
try:
from insightface.thirdparty.face3d.mesh import render
print("Compiled Cython module import successful.")
# ダミーデータでレンダリング関数をテスト
dummy_vertices = np.random.rand(10, 3).astype(np.float32) * 256
dummy_triangles = np.array([[0, 1, 2], [3, 4, 5]], dtype=np.int32)
dummy_colors = np.random.rand(10, 3).astype(np.float32)
rendered_image = render.render_colors(dummy_vertices, dummy_triangles, dummy_colors, 256, 256)
print(f"Rendering function executed successfully!")
print(f"Generated image shape: {rendered_image.shape} (height, width, channels)")
print("All tests completed successfully! Build is successful.")
except Exception as e:
print(f"Test 2 error: {e}")トラブルシューティング
よくある問題と解決方法
1. CUDA関連の警告
問題: `cudnn64_9.dll` が見つからない
解決方法:
cuDNNのbinディレクトリをPATHに追加
環境変数 `CUDNN_PATH` を設定
2. ビルドエラー
問題: Cythonコンパイルエラー
解決方法:
最新のCythonをインストール
古い `mesh_core_cython.cpp` を削除
Visual Studio 2022のC++ビルドツールを確認
3. インポートエラー
問題: モジュールが見つからない
解決方法:
仮想環境を確認
パッケージの再インストール
成功の確認
すべてのテストが正常に完了すれば、以下が確認できます:
✅ InsightFace 0.7.3 が正常にインストール
✅ CUDA GPUアクセラレーション が動作
✅ 3Dメッシュ機能 が正常に動作
✅ Python 3.13対応 のCythonモジュールが動作
注意事項
この手順はWindows環境専用です
CUDA Toolkit 13.0とcuDNN 9.13が必要です
Visual Studio 2022のC++ビルドツールが必要です
環境変数の設定は再起動後に有効になります
