{ pkgs, lib, osConfig, ... }: let withCuda = osConfig.system.name == "gunter"; onnxruntime-gpu = (pkgs.onnxruntime.override { cudaSupport = withCuda; }).overrideAttrs (old: { # TODO: Remove when fixed in nixpkgs # https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/development/libraries/onnxruntime/default.nix#L154 buildInputs = old.buildInputs ++ [ pkgs.cudaPackages.nccl ]; }); obs-backgrounremoval-gpu = ((pkgs.obs-studio-plugins.obs-backgroundremoval.override { onnxruntime = onnxruntime-gpu; }).overrideAttrs (old: { version = "1.1.14-beta"; src = pkgs.fetchFromGitHub { owner = "occ-ai"; repo = "obs-backgroundremoval"; rev = "94be8c35fe077be93a6f5ef347a802295a36dddd"; hash = "sha256-qnxDNeTWQYiRMqT6jNp8GC8ef6aaAAY+OXAak54dVc8="; }; cmakeFlags = if withCuda then (lib.lists.remove "-DDISABLE_ONNXRUNTIME_GPU=ON" old.cmakeFlags) else old.cmakeFlags; })); in { programs.obs-studio = { enable = true; plugins = with pkgs.obs-studio-plugins; [ obs-pipewire-audio-capture obs-shaderfilter ] ++ [ obs-backgrounremoval-gpu ]; }; }