From bb5573a85ad158ff805dc34ee3e23e01bd7e4ad6 Mon Sep 17 00:00:00 2001 From: Ari Gato Date: Sat, 31 Aug 2024 20:21:33 +0200 Subject: [PATCH] treewide: playing around with ml/ai crap --- flake.lock | 148 +++++++++++++++++++++++++++++++++++- flake.nix | 3 +- nixos/kyorinrin/default.nix | 25 ++++++ nixos/microlith/default.nix | 30 +++++++- 4 files changed, 200 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 25bfa81..fb8dc7d 100644 --- a/flake.lock +++ b/flake.lock @@ -202,6 +202,23 @@ "type": "github" } }, + "flake-utils_2": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "id": "flake-utils", + "type": "indirect" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -306,9 +323,29 @@ "type": "github" } }, + "nix-comfyui": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_3", + "poetry2nix": "poetry2nix" + }, + "locked": { + "lastModified": 1724630400, + "narHash": "sha256-40BMcGmRNbdBs+vc+bGIsuJJOyZjFiuRZpIW8yfyOqA=", + "owner": "dyscorv", + "repo": "nix-comfyui", + "rev": "b80947a30a0ec9c683cbfb840f689e18c562fc3f", + "type": "github" + }, + "original": { + "owner": "dyscorv", + "repo": "nix-comfyui", + "type": "github" + } + }, "nix-formatter-pack": { "inputs": { - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "nmd": "nmd", "nmt": "nmt" }, @@ -348,6 +385,28 @@ "type": "github" } }, + "nix-github-actions_2": { + "inputs": { + "nixpkgs": [ + "nix-comfyui", + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703863825, + "narHash": "sha256-rXwqjtwiGKJheXB43ybM8NwWB8rO2dSRrEqes0S7F5Y=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "5163432afc817cf8bd1f031418d1869e4c9d5547", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1703013332, @@ -412,6 +471,20 @@ } }, "nixpkgs_3": { + "locked": { + "lastModified": 1724395761, + "narHash": "sha256-zRkDV/nbrnp3Y8oCADf5ETl1sDrdmAW6/bBVJ8EbIdQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ae815cee91b417be55d43781eb4b73ae1ecc396c", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1669933672, "narHash": "sha256-9nzaATSTmEMpTrx+7j3vVwQkcpu9JMkQ1M08iPtu7m4=", @@ -427,7 +500,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1724869516, "narHash": "sha256-6DeaNrKehN4Gar6bZbwuPtwPzpd5vgV45QwR4ZZ91lQ=", @@ -475,6 +548,37 @@ "type": "gitlab" } }, + "poetry2nix": { + "inputs": { + "flake-utils": [ + "nix-comfyui", + "flake-utils" + ], + "nix-github-actions": "nix-github-actions_2", + "nixpkgs": [ + "nix-comfyui", + "nixpkgs" + ], + "systems": [ + "nix-comfyui", + "flake-utils", + "systems" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1724417163, + "narHash": "sha256-gD0N0pnKxWJcKtbetlkKOIumS0Zovgxx/nMfOIJIzoI=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "7619e43c2b48c29e24b88a415256f09df96ec276", + "type": "github" + }, + "original": { + "id": "poetry2nix", + "type": "indirect" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -510,8 +614,9 @@ "impermanence": "impermanence", "jovian-nixos": "jovian-nixos", "lanzaboote": "lanzaboote", + "nix-comfyui": "nix-comfyui", "nix-formatter-pack": "nix-formatter-pack", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "simple-nixos-mailserver": "simple-nixos-mailserver" } }, @@ -605,6 +710,43 @@ "type": "github" } }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nix-comfyui", + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719749022, + "narHash": "sha256-ddPKHcqaKCIFSFc/cvxS14goUhCOAwsM1PbMr0ZtHMg=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "8df5ff62195d4e67e2264df0b7f5e8c9995fd0bd", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, "utils": { "inputs": { "systems": "systems_2" diff --git a/flake.nix b/flake.nix index 52cad27..321c1dc 100644 --- a/flake.nix +++ b/flake.nix @@ -26,9 +26,10 @@ url = "github:Jovian-Experiments/Jovian-NixOS"; inputs.nixpkgs.follows = "nixpkgs"; }; + nix-comfyui.url = "github:dyscorv/nix-comfyui"; }; - outputs = { self, nixpkgs, deploy-rs, ... }@inputs: + outputs = { self, nixpkgs, deploy-rs, nix-comfyui, ... }@inputs: let systems = [ "x86_64-linux" "aarch64-linux" ]; forAllSystems = nixpkgs.lib.genAttrs systems; diff --git a/nixos/kyorinrin/default.nix b/nixos/kyorinrin/default.nix index 333772e..64b6037 100644 --- a/nixos/kyorinrin/default.nix +++ b/nixos/kyorinrin/default.nix @@ -1,5 +1,6 @@ { config, inputs, pkgs, ... }: + { networking.hostName = "kyorinrin"; @@ -11,6 +12,10 @@ secureboot ]; + nixpkgs.overlays = [ + inputs.nix-comfyui.overlays.default + ]; + boot.kernelPackages = pkgs.linuxKernel.packages.linux_zen; services.fprintd.enable = true; @@ -31,10 +36,30 @@ iio-sensor-proxy xournalpp + + pkgs.comfyuiPackages.rocm.comfyui-with-extensions ]; services.displayManager.sddm.settings.Fingerprintlogin = { Session = "plasma"; User = "ar"; }; + + hardware.graphics.extraPackages = with pkgs; [ + rocmPackages.clr.icd + ]; + + systemd.tmpfiles.rules = + let + rocmEnv = pkgs.symlinkJoin { + name = "rocm-combined"; + paths = with pkgs.rocmPackages; [ + rocblas + hipblas + clr + ]; + }; + in [ + "L+ /opt/rocm - - - - ${rocmEnv}" + ]; } diff --git a/nixos/microlith/default.nix b/nixos/microlith/default.nix index f00b892..06467a0 100644 --- a/nixos/microlith/default.nix +++ b/nixos/microlith/default.nix @@ -1,4 +1,4 @@ -{ config, inputs, ... }: +{ pkgs, config, inputs, ... }: { networking.hostName = "microlith"; @@ -17,5 +17,31 @@ virtualisation.docker.enable = true; virtualisation.libvirtd.enable = true; - networking.firewall.allowedTCPPorts = [ 8000 8080 ]; + networking.firewall.allowedTCPPorts = [ 8000 8080 8188 ]; + + nixpkgs.overlays = [ + inputs.nix-comfyui.overlays.default + ]; + + environment.systemPackages = [ + pkgs.comfyuiPackages.rocm.comfyui-with-extensions + ]; + + hardware.graphics.extraPackages = with pkgs; [ + rocmPackages.clr.icd + ]; + + systemd.tmpfiles.rules = + let + rocmEnv = pkgs.symlinkJoin { + name = "rocm-combined"; + paths = with pkgs.rocmPackages; [ + rocblas + hipblas + clr + ]; + }; + in [ + "L+ /opt/rocm - - - - ${rocmEnv}" + ]; }