{ lib, stdenvNoCC, python3, fetchFromGitHub, makeWrapper, enableVisualization ? false, }: let python = python3.withPackages ( ps: with ps; [ (opencv4.override { enableGtk3 = enableVisualization; }) onnxruntime pillow numpy ] ); in stdenvNoCC.mkDerivation { pname = "openseeface"; version = "1.20.4-unstable-2024-09-21"; src = fetchFromGitHub { owner = "emilianavt"; repo = "OpenSeeFace"; rev = "e6e24efd2038ab778ac094bab21c2c18a7efbeb2"; hash = "sha256-pSZXD6UiKPd8sTagdA/I6bI8nWdF1c6SX2Bho+X7pX8="; }; nativeBuildInputs = [ makeWrapper ]; installPhase = '' runHook preInstall mkdir -p $out/share/openseeface cp -r *.py models $out/share/openseeface makeWrapper ${python.interpreter} "$out/bin/facetracker" \ --add-flags "$out/share/openseeface/facetracker.py" runHook postInstall ''; meta = { description = "Robust realtime face and facial landmark tracking on CPU with Unity integration"; homepage = "https://github.com/emilianavt/OpenSeeFace"; license = lib.licenses.bsd2; mainProgram = "facetracker"; maintainers = with lib.maintainers; [ tomasajt ]; }; }