mirror of
https://github.com/denismhz/flake.git
synced 2025-11-09 16:16:23 +01:00
invokeai: use callPackage
This commit is contained in:
parent
2c8a7c3a50
commit
70fd1f1831
|
|
@ -4,75 +4,25 @@
|
|||
perSystem = { config, pkgs, ... }: let
|
||||
inherit (config.dependencySets) aipython3-amd aipython3-nvidia;
|
||||
|
||||
getVersion = lib.flip lib.pipe [
|
||||
(src: builtins.readFile "${src}/setup.py")
|
||||
(builtins.match ".+VERSION = '([^']+)'.+")
|
||||
builtins.head
|
||||
];
|
||||
|
||||
mkInvokeAIVariant = { aipython3, wsl ? false }: aipython3.buildPythonPackage rec {
|
||||
pname = "InvokeAI";
|
||||
version = getVersion src;
|
||||
src = inputs.invokeai-src;
|
||||
propagatedBuildInputs = with aipython3; [
|
||||
numpy
|
||||
albumentations
|
||||
opencv4
|
||||
pudb
|
||||
imageio
|
||||
imageio-ffmpeg
|
||||
pytorch-lightning
|
||||
protobuf
|
||||
omegaconf
|
||||
test-tube
|
||||
((pkgs.streamlit.overrideAttrs (old: {
|
||||
nativeBuildInputs = old.nativeBuildInputs ++ [ pythonRelaxDepsHook ];
|
||||
pythonRelaxDeps = [ "protobuf" ];
|
||||
})).override { protobuf3 = protobuf; })
|
||||
einops
|
||||
taming-transformers-rom1504
|
||||
torch-fidelity
|
||||
torchmetrics
|
||||
transformers
|
||||
kornia
|
||||
k-diffusion
|
||||
picklescan
|
||||
diffusers
|
||||
pypatchmatch
|
||||
realesrgan
|
||||
pillow
|
||||
send2trash
|
||||
flask
|
||||
flask-socketio
|
||||
flask-cors
|
||||
dependency-injector
|
||||
gfpgan
|
||||
eventlet
|
||||
clipseg
|
||||
getpass-asterisk
|
||||
];
|
||||
nativeBuildInputs = [ aipython3.pythonRelaxDepsHook ];
|
||||
pythonRemoveDeps = [ "clip" "pyreadline3" "flaskwebgui" ];
|
||||
pythonRelaxDeps = [ "protobuf" ];
|
||||
postFixup = ''
|
||||
${lib.optionalString wsl "makeWrapperArgs+=( --set LD_LIBRARY_PATH '/usr/lib/wsl/lib' )"}
|
||||
chmod +x $out/bin/*
|
||||
wrapPythonPrograms
|
||||
'';
|
||||
doCheck = false;
|
||||
meta = {
|
||||
description = "Fancy Web UI for Stable Diffusion";
|
||||
homepage = "https://invoke-ai.github.io/InvokeAI/";
|
||||
mainProgram = "invoke.py";
|
||||
};
|
||||
};
|
||||
|
||||
mkInvokeAIVariant = args: pkgs.callPackage ./package.nix ({ inherit src; } // args);
|
||||
in {
|
||||
packages = {
|
||||
invokeai-amd = mkInvokeAIVariant { aipython3 = aipython3-amd; };
|
||||
invokeai-nvidia = mkInvokeAIVariant { aipython3 = aipython3-nvidia; };
|
||||
invokeai-amd-wsl = mkInvokeAIVariant { aipython3 = aipython3-amd; wsl = true; };
|
||||
invokeai-nvidia-wsl = mkInvokeAIVariant { aipython3 = aipython3-nvidia; wsl = true;};
|
||||
invokeai-amd = mkInvokeAIVariant {
|
||||
aipython3 = aipython3-amd;
|
||||
};
|
||||
invokeai-nvidia = mkInvokeAIVariant {
|
||||
aipython3 = aipython3-nvidia;
|
||||
};
|
||||
invokeai-amd-wsl = mkInvokeAIVariant {
|
||||
aipython3 = aipython3-amd;
|
||||
wsl = true;
|
||||
};
|
||||
invokeai-nvidia-wsl = mkInvokeAIVariant {
|
||||
aipython3 = aipython3-nvidia;
|
||||
wsl = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
74
projects/invokeai/package.nix
Normal file
74
projects/invokeai/package.nix
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
{ aipython3
|
||||
# dependencies
|
||||
, streamlit
|
||||
# misc
|
||||
, lib
|
||||
, src
|
||||
# configuration
|
||||
, wsl ? false
|
||||
}:
|
||||
|
||||
let
|
||||
getVersion = lib.flip lib.pipe [
|
||||
(src: builtins.readFile "${src}/setup.py")
|
||||
(builtins.match ".+VERSION = '([^']+)'.+")
|
||||
builtins.head
|
||||
];
|
||||
in
|
||||
|
||||
aipython3.buildPythonPackage {
|
||||
pname = "InvokeAI";
|
||||
version = getVersion src;
|
||||
inherit src;
|
||||
propagatedBuildInputs = with aipython3; [
|
||||
numpy
|
||||
albumentations
|
||||
opencv4
|
||||
pudb
|
||||
imageio
|
||||
imageio-ffmpeg
|
||||
pytorch-lightning
|
||||
protobuf
|
||||
omegaconf
|
||||
test-tube
|
||||
((streamlit.overrideAttrs (old: {
|
||||
nativeBuildInputs = old.nativeBuildInputs ++ [ pythonRelaxDepsHook ];
|
||||
pythonRelaxDeps = [ "protobuf" ];
|
||||
})).override { protobuf3 = protobuf; })
|
||||
einops
|
||||
taming-transformers-rom1504
|
||||
torch-fidelity
|
||||
torchmetrics
|
||||
transformers
|
||||
kornia
|
||||
k-diffusion
|
||||
picklescan
|
||||
diffusers
|
||||
pypatchmatch
|
||||
realesrgan
|
||||
pillow
|
||||
send2trash
|
||||
flask
|
||||
flask-socketio
|
||||
flask-cors
|
||||
dependency-injector
|
||||
gfpgan
|
||||
eventlet
|
||||
clipseg
|
||||
getpass-asterisk
|
||||
];
|
||||
nativeBuildInputs = [ aipython3.pythonRelaxDepsHook ];
|
||||
pythonRemoveDeps = [ "clip" "pyreadline3" "flaskwebgui" ];
|
||||
pythonRelaxDeps = [ "protobuf" ];
|
||||
postFixup = ''
|
||||
${lib.optionalString wsl "makeWrapperArgs+=( --set LD_LIBRARY_PATH '/usr/lib/wsl/lib' )"}
|
||||
chmod +x $out/bin/*
|
||||
wrapPythonPrograms
|
||||
'';
|
||||
doCheck = false;
|
||||
meta = {
|
||||
description = "Fancy Web UI for Stable Diffusion";
|
||||
homepage = "https://invoke-ai.github.io/InvokeAI/";
|
||||
mainProgram = "invoke.py";
|
||||
};
|
||||
}
|
||||
Loading…
Reference in a new issue