このカスタムノードは、ComfyUI で anime-face-detector を利用してアニメ顔を検出し、顔領域・目・眉・口・顎・顔輪郭およびランドマークの抽出や切り抜き、可視化を行います。
AnimeFaceDetectorNodeanime-face-detectorのLandmarkDetectorを使用bboxとkeypointsを取得して顔のパーツ領域を出力
FacePartsVisualizerNode- 検出結果を画像上に描画
- 出力は ComfyUI 互換の
torch.Tensor形式
SaveFacePartsJsonNode- 検出された顔・両目・口のBBox、および28箇所のランドマーク座標、元画像の解像度をパースしてJSON形式で保存します。
- 外部アプリ(PixiJSなど)とのWebSocket連携のために、書き出したファイルのパス情報をUIイベントとして応答します。
このカスタムノードは、以下のパッケージ構成で動作確認が行われています。
- Python: 3.10 〜 3.12 (ComfyUI 組み込み Python 環境)
- PyTorch (torch): 2.10.0 以上 (動作確認環境:
2.12.1+cu130) - torchvision: 動作確認環境:
0.27.1+cu130 - onnxruntime:
1.23.2以上 (anime-face-detector の動作に必要) - CUDA:
12.1以上 (GPUを使用する場合の推奨)
ComfyUI Portable 環境で次のコマンドを実行します。
python_embeded\python.exe -m pip install --upgrade pip setuptools wheel
python_embeded\python.exe -m pip install --no-build-isolation git+https://github.com/sawarae/anime-face-detector.git
python_embeded\python.exe -m pip install opencv-python numpyImportant
カスタムリポジトリ(sawarae/anime-face-detector)を使用する理由
オリジナルの anime-face-detector(PyPI公式パッケージ等)は、依存ライブラリである mmcv や mmdet の導入難易度が Windows 環境において非常に高く、コンパイルエラーやセットアップ失敗が多発します。
これに対し、当プラグインで指定している sawarae/anime-face-detector は、mmcv 等への依存を排除し、ONNX Runtime 推論ベースに軽量化・最適化されたフォーク(改造)版 です。
これにより、Windows や ComfyUI の組み込み Python(python_embeded)環境からでも、余計なビルドエラーを起こさず pip のみでスムーズに導入でき、安定した高速な推論が可能となっています。
- ComfyUI を再起動する
- アニメ画像を読み込む
AnimeFaceDetectorNodeを追加し、画像を接続するFacePartsVisualizerNodeを追加し、検出結果を接続して可視化画像を確認するSaveFacePartsJsonNodeを接続し、画像および検出結果を接続してJSON出力を実行するComfyUI/outputディレクトリにface_parts_XXXXX.jsonが生成されることを確認する
workflows/face_detection_api.json をAPIフォーマットとして読み込み、外部アプリからComfyUIへ画像を送信後、WebSocketの executed イベントを購読することで、書き出されたJSONの保存パスを動的に取得し、PixiJS等のフロントエンドで顔パーツのアニメーションやモーフィング制御点として利用可能です。
AnimeFaceDetectorNodeはcreate_detector(device="cpu")で検出器を初期化LandmarkDetectorをdetector(image)形式で呼び出す- モデル出力の
bboxとkeypointsを受け取り、left_eye,right_eye,mouthを推定 - 検出失敗時も空 bbox/空 landmarks を返してノードが落ちないようにしている
FacePartsVisualizerNodeは出力画像を[1, H, W, C]のtorch.Tensorに変換し、float32かつ0.0〜1.0の範囲にする
__init__.pyanime_face_detector_node.pyface_parts_visualizer_node.pyrequirements.txtREADME.mdspec.md
- anime-face-detector
- opencv-python
- numpy
ComfyUI 側には
torchが既に入っている前提です。