108 lines
2.1 KiB
Nix
Executable File
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";
|
|
};
|
|
}
|