This is literally just a shell.nix
/flake.nix
for stable-diffusion-webui that also enables CUDA/ROCm on NixOS.
This supports NVIDIA GPUs (using CUDA), AMD GPUs (using ROCm), and CPU compute (including Apple silicon).
First, run:
git clone https://github.com/virchau13/automatic1111-webui-nix
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cp automatic1111-webui-nix/*.nix stable-diffusion-webui/
cd stable-diffusion-webui
git add *.nix
After that, choose the command according to your platform:
nix develop .#cpu # CPU or Apple silicon
nix develop .#cuda # CUDA
nix develop .#rocm # ROCm
nix-shell --argstr variant CPU # CPU
nix-shell --argstr variant CUDA # CUDA
nix-shell --argstr variant ROCM # ROCm
cd automatic1111-webui-nix
./webui.sh
# follow the tutorials at the original project for setting up Stable Diffusion / GFPGAN / whatever
You might want to switch to high performance mode on battery-powered devices.
This is just a Nix shell for bootstrapping the web UI, not an actual pure flake; the ./webui.sh
will still install
a bunch of Python packages (into a venv, so not polluting your system) when you run it.
Run ./webui.sh --xformers
to set up xformers. If this command fails, try git pulling from the source repository, then deleting the venv (rm -r venv
) and reinstalling everything from scratch again (sometimes the venv will keep old packages around forever even if they should be updated.)