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
|
perSystem = { config, pkgs, ... }: let
|
||||||
inherit (config.dependencySets) aipython3-amd aipython3-nvidia;
|
inherit (config.dependencySets) aipython3-amd aipython3-nvidia;
|
||||||
|
|
||||||
getVersion = lib.flip lib.pipe [
|
src = inputs.invokeai-src;
|
||||||
(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 {
|
in {
|
||||||
packages = {
|
packages = {
|
||||||
invokeai-amd = mkInvokeAIVariant { aipython3 = aipython3-amd; };
|
invokeai-amd = mkInvokeAIVariant {
|
||||||
invokeai-nvidia = mkInvokeAIVariant { aipython3 = aipython3-nvidia; };
|
aipython3 = aipython3-amd;
|
||||||
invokeai-amd-wsl = mkInvokeAIVariant { aipython3 = aipython3-amd; wsl = true; };
|
};
|
||||||
invokeai-nvidia-wsl = mkInvokeAIVariant { aipython3 = aipython3-nvidia; wsl = true;};
|
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