Files
nix-config/packages/comfyui/comfyui/default.nix
mjallen18 70002a19e2 hmm
2026-04-07 18:39:42 -05:00

108 lines
2.1 KiB
Nix
Executable File

{
stdenv,
lib,
python3Packages,
fetchFromGitHub,
pkgs,
namespace,
python3,
...
}:
let
dependencies =
with python3Packages;
[
aiohttp
torch
torchaudio
torchvision
numpy
requests
torchsde
einops
transformers
tokenizers
sentencepiece
safetensors
aiohttp
yarl
pyyaml
pillow
scipy
tqdm
psutil
alembic
sqlalchemy
av
requests
#non essential dependencies:
kornia
# spandrel
pydantic
pydantic-settings
]
++ (with pkgs.${namespace}; [
comfy-aimdo
]);
pythonEnv = python3.withPackages (_ps: dependencies);
in
stdenv.mkDerivation rec {
pname = "comfy-ui";
version = "0.12.0";
src = fetchFromGitHub {
owner = "Comfy-Org";
repo = "ComfyUI";
tag = "v${version}";
hash = "sha256-fCTMxtFkAy4TfUgtj42EKmvw/hr/L9Y3OKfHXpnSkPw=";
};
dontUnpack = false;
dontBuild = true;
dontConfigure = true;
nativeBuildInputs = [ ];
installPhase = ''
mkdir -p $out/{bin,app}
ln -sf ${pythonEnv}/bin/python $out/bin/python
cp -r $src/* $out/app
'';
# ln -s ${comfyUiLauncher}/bin/comfy-ui $out/bin/comfy-ui
# ln -s $out/bin/comfy-ui $out/bin/comfyui
# passthru = {
# inherit
# # comfyuiSrc
# # pythonRuntime
# # modelDownloaderDir
# # frontendRoot
# dependencies
# version
# ;
# };
meta = with lib; {
description = "ComfyUI - A powerful and modular diffusion model GUI";
homepage = "https://github.com/comfyanonymous/ComfyUI";
# ComfyUI is GPL-3.0; bundled custom nodes have various licenses
license = with licenses; [
gpl3 # ComfyUI, Impact Pack, KJNodes
agpl3Only # bitsandbytes-NF4
mit # rgthree-comfy, Florence2, MMAudio
asl20 # GGUF, LTXVideo, x-flux, PuLID, WanVideoWrapper
];
platforms = platforms.linux ++ platforms.darwin;
maintainers = [
{
name = "James Brink";
github = "utensils";
}
];
mainProgram = "comfy-ui";
};
}