diff --git a/flake.lock b/flake.lock index 7b3a237..b8fbe8b 100644 --- a/flake.lock +++ b/flake.lock @@ -944,15 +944,16 @@ "python-flexseal": "python-flexseal" }, "locked": { - "lastModified": 1750702421, - "narHash": "sha256-YqcUdBULlDDbRPo6bKM6GbmjnvKM++Sq+U2sgKY8/wc=", - "owner": "janrupf", + "lastModified": 1751651278, + "narHash": "sha256-RFP58g7aWQE9LW+Av0ljtOuuvwThICBikAx+l+cYL+4=", + "owner": "rrvsh", "repo": "stable-diffusion-webui-nix", - "rev": "144487fbf9757f157833d0272d226d69e5bb3741", + "rev": "e7d156aef717cdeb1a98c7fe77cbd76c6e437c05", "type": "github" }, "original": { - "owner": "janrupf", + "owner": "rrvsh", + "ref": "fix/comfy-ui-data-directory", "repo": "stable-diffusion-webui-nix", "type": "github" } diff --git a/flake.nix b/flake.nix index b41497d..6cd5bd1 100644 --- a/flake.nix +++ b/flake.nix @@ -37,7 +37,7 @@ # Packages and services that we don't use nixpkgs for. rrv-sh.url = "github:rrvsh/rrv.sh"; nvf.url = "github:rrvsh/nvf/uv-nvim"; - stable-diffusion-webui-nix.url = "github:janrupf/stable-diffusion-webui-nix"; + stable-diffusion-webui-nix.url = "github:rrvsh/stable-diffusion-webui-nix/fix/comfy-ui-data-directory"; zjstatus.url = "github:dj95/zjstatus"; }; } diff --git a/modules/nixos/server/web-apps/comfy-ui/default.nix b/modules/nixos/server/web-apps/comfy-ui/default.nix new file mode 100644 index 0000000..19731b9 --- /dev/null +++ b/modules/nixos/server/web-apps/comfy-ui/default.nix @@ -0,0 +1,34 @@ +{ + config, + lib, + inputs, + ... +}: +let + inherit (lib) singleton; + inherit (lib.pantheon.modules) mkWebApp; + upstreamCfg = config.services.comfyUi; +in +mkWebApp { + inherit config; + name = "comfy-ui"; + defaultPort = 8188; + persistDirs = singleton { + directory = upstreamCfg.dataDir; + inherit (upstreamCfg) user group; + mode = "777"; + }; + extraConfig = { + assertions = singleton { + assertion = config.machine.gpu.nvidia.enable; + message = "You must run the comfy-ui service only with an nvidia gpu."; + }; + services.comfyUi = { + enable = true; + listenHost = "0.0.0.0"; + }; + }; +} +// { + imports = [ inputs.stable-diffusion-webui-nix.nixosModules.default ]; +} diff --git a/systems/x86_64-linux/nemesis/default.nix b/systems/x86_64-linux/nemesis/default.nix index 8a689a1..de55267 100644 --- a/systems/x86_64-linux/nemesis/default.nix +++ b/systems/x86_64-linux/nemesis/default.nix @@ -36,4 +36,5 @@ }; server.web-apps.sd-webui-forge.enable = true; + server.web-apps.comfy-ui.enable = true; }