Files

78 lines
1.6 KiB
Nix

{
lib,
buildPythonPackage,
cmake,
config,
cudaSupport ? config.cudaSupport,
fetchFromGitHub,
nanobind,
ninja,
setuptools,
torch,
comfyui,
}:
let
inherit (torch) cudaPackages;
in
buildPythonPackage (finalAttrs: {
pname = "comfy-kitchen";
version = "0.2.31";
pyproject = true;
src = fetchFromGitHub {
owner = "Comfy-Org";
repo = "comfy-kitchen";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-apa7N9Y0bt4fpbMTP0qRUC0QnMuJvoxoCOeWONWCExo=";
};
buildInputs = lib.optionals cudaSupport (
with cudaPackages;
[
cuda_cudart
libcublas
]
);
build-system = [
cmake
nanobind
ninja
setuptools
];
dependencies = [ torch ];
dontUseCmakeConfigure = true;
pypaBuildFlags =
if cudaSupport then
[
''--config-setting=--cuda-archs="${
lib.concatMapStringsSep ";" cudaPackages.flags.dropDots torch.cudaCapabilities
}"''
]
else
[ "-C--global-option=--no-cuda" ];
env = lib.optionalAttrs cudaSupport {
CUDA_HOME = cudaPackages.cuda_nvcc;
};
# Upstream tests exercise the CUDA/Triton kernel backends; this build
# might use BUILD_NO_CUDA = True, so those backends would be unavailable
# and additionally the nix sandbox would prevent it.
doCheck = false;
pythonImportsCheck = [ "comfy_kitchen" ];
meta = {
description = "Fast kernel library for ComfyUI with multiple compute backends";
homepage = "https://github.com/Comfy-Org/comfy-kitchen";
license = lib.licenses.asl20;
inherit (comfyui.meta) maintainers;
};
})