3.1 KiB
title | tags | image | publish | |||||
---|---|---|---|---|---|---|---|---|
ComfyUIをNixOSで動かす |
|
/uploads/error.png | public |
ComfyUIをNixOSに導入します。Installingの項が簡潔にまとまっているので、そんなに苦労しませんでしたが一応備忘録として残します。
前にArchでSDWebUIを導入する記事を書きましたが、なんかComfyUIいいぞと言う話を聞いたので、新環境に導入してみます。Stable Diffusion WebUIと比べてシンプルで導入も楽でした。
今回検証に使った環境は以下のとおりです。 dist: NixOS desktop: Wayland(hyprland) cpu: Ryzen 7900X3D gpu: Radeon 7900GRE
実行環境・依存関係
ComfyUIはCloneできているものとします。
Pythonをflakeのdirenvで導入します。ディレクトリのルートにflake.nix
を作成します。
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs";
flake-utils.url = "github:numtide/flake-utils";
flake-compat = {
url = "github:edolstra/flake-compat";
flake = false;
};
};
outputs =
{
self,
nixpkgs,
flake-utils,
...
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
pythonEnv = pkgs.python3.withPackages (ps: [ ]);
in
{
devShells.default = pkgs.mkShell {
packages = [
pythonEnv
];
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath (
with pkgs;
[
stdenv.cc.cc.lib
zstd
]
);
};
}
);
}
きちんと依存パッケージを定義できますが、今回はvenvで茶を濁します。torchまわりのパッケージを定義するのは面倒でした。
LD_LIBRARY_PATH
はシェアライブラリの場所です。libstdc++とlibzstdが要求されるので、その解決をしています。
pip
venvを利用するので、pipが使えます。
最初にvenvを作成します。
python -m venv venv
その後、venvに入ります。
source venv/bin/activate
venvの中で、必要なパッケージをインストールします。まずはtorchまわりから。
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.3
コマンドはpytorch.orgで教えてくれるやつです。
その後、ComfyUIの依存パッケージをインストールします。
pip install -r requirements.txt
実行
venvに入った状態で、ComfyUIを起動します。
source venv/bin/activate
python main.py
これでComfyUIが起動します。 やったね!
おわりに
Pythonの環境管理がだるい論はよく聞きますが、flakeとvenvを使うと雑に楽できていい感じでした。もとからpythonのパッケージまわりは行儀が悪いので、中途半端なflakeも許されるはずだ。