diff --git a/% b/% new file mode 100644 index 0000000..e69de29 diff --git a/Dload b/Dload new file mode 100644 index 0000000..e69de29 diff --git a/flake.nix b/flake.nix index 84a8481..85624bf 100644 --- a/flake.nix +++ b/flake.nix @@ -62,12 +62,25 @@ system = "x86_64-linux"; in { - packages.${system} = { - qwen-asr = nixpkgs.legacyPackages.${system}.callPackage ./packages/qwen-asr.nix { }; - llama-swap = nixpkgs.legacyPackages.${system}.callPackage ./packages/llama-swap { }; - z-image-models = nixpkgs.legacyPackages.${system}.callPackage ./packages/z-image-models { }; - whisper-models = nixpkgs.legacyPackages.${system}.callPackage ./packages/whisper-models { }; - }; + packages.${system} = + let + lib = nixpkgs.lib; + pkgs = import nixpkgs { + inherit system; + config.allowUnfreePredicate = + pkg: + builtins.elem (lib.getName pkg) [ + "fish-speech-models" + ]; + }; + in + { + qwen-asr = pkgs.callPackage ./packages/qwen-asr.nix { }; + llama-swap = pkgs.callPackage ./packages/llama-swap { }; + z-image-models = pkgs.callPackage ./packages/z-image-models { }; + whisper-models = pkgs.callPackage ./packages/whisper-models { }; + fish-speech-models = pkgs.callPackage ./packages/fish-speech-models { }; + }; # legolas nixosConfigurations.legolas = nixpkgs.lib.nixosSystem { diff --git a/modules/llama-swap.nix b/modules/llama-swap.nix index c7e8323..2ef51ae 100644 --- a/modules/llama-swap.nix +++ b/modules/llama-swap.nix @@ -7,12 +7,14 @@ ... }: { + environment.systemPackages = [ pkgs.unstable.llama-cpp-vulkan pkgs.unstable.stable-diffusion-cpp-vulkan pkgs.unstable.whisper-cpp-vulkan inputs.self.packages.${system}.z-image-models inputs.self.packages.${system}.whisper-models + inputs.self.packages.${system}.fish-speech-models ]; services.llama-swap = { @@ -26,8 +28,10 @@ llama-server = lib.getExe' pkgs.unstable.llama-cpp-vulkan "llama-server"; sd-server = lib.getExe' pkgs.unstable.stable-diffusion-cpp-vulkan "sd-server"; whisper-server = lib.getExe' pkgs.unstable.whisper-cpp-vulkan "whisper-server"; + podman = lib.getExe pkgs.podman; z-image-models = inputs.self.packages.${system}.z-image-models; whisper-models = inputs.self.packages.${system}.whisper-models; + fish-speech-models = inputs.self.packages.${system}.fish-speech-models; in { healthCheckTimeout = 180; @@ -125,6 +129,19 @@ ]; macros.model = "${whisper-models}/models/nb-whisper-small-q5_0.bin"; }; + "fish-speech-s2-pro" = { + cmd = "${pkgs.bash}/bin/bash -c '${podman} pull fishaudio/fish-speech:server-cpu && exec ${podman} run --rm --name fish-speech-$\{PORT\} -p $\{PORT\}:8080 -v $\{models\}:/app/checkpoints:Z fishaudio/fish-speech:server-cpu'"; + cmdStop = "${podman} stop fish-speech-$\{PORT\}"; + checkEndpoint = "/v1/health"; + proxy = "http://127.0.0.1:$\{PORT\}"; + ttl = 0; + aliases = [ + "tts-1" + "tts" + "fish-speech" + ]; + macros.models = "${fish-speech-models}/models"; + }; }; }; }; diff --git a/modules/python-packages.nix b/modules/python-packages.nix index 2c86ce7..fa601c8 100644 --- a/modules/python-packages.nix +++ b/modules/python-packages.nix @@ -6,6 +6,7 @@ ps: with ps; [ numpy scipy pandas + polars matplotlib seaborn scikit-learn diff --git a/packages/fish-speech-models/default.nix b/packages/fish-speech-models/default.nix new file mode 100644 index 0000000..b42af53 --- /dev/null +++ b/packages/fish-speech-models/default.nix @@ -0,0 +1,35 @@ +{ + lib, + fetchgit, + runCommand, +}: + +let + src = fetchgit { + url = "https://huggingface.co/fishaudio/s2-pro"; + rev = "1de9996b6be38b745688de084d87a5633f714e4e"; + hash = "sha256-55woKakTuJOh5fXglLewbghSK6Msg/iOYuf0tOOzYok=="; + fetchLFS = true; + }; +in +runCommand "fish-speech-models" + { + version = "1.0.0"; + meta = { + description = "Fish Audio S2 Pro TTS model"; + homepage = "https://huggingface.co/fishaudio/s2-pro"; + license = { + shortName = "fish-audio-research"; + fullName = "Fish Audio Research License"; + url = "https://huggingface.co/fishaudio/s2-pro/blob/main/LICENSE.md"; + free = false; + redistributable = true; + }; + platforms = lib.platforms.all; + }; + } + '' + mkdir -p $out/models + cp -r ${src} $out/models/s2-pro + chmod -R u+w $out/models/s2-pro + '' diff --git a/trying b/trying new file mode 100644 index 0000000..e69de29