引言
虽然我把arch linux
装在了移动硬盘里,使得我可以同时在我的轻薄本和游戏本之间运行同一个系统,并拥有一个系统级同步的开发环境,但由于我之前将stable-diffusion-webui
部署在了游戏本的win11上,这就导致我无法在带着轻薄本出门时使用stable-diffusion-webui
来生成一些简单的demo
。我的生图需求并不高,不需要生成复杂的模型和图片,所以没必要等着回去用游戏本或者用在线模型来满足这个需求。其次,我的游戏本和轻薄本都是win11与移动硬盘上的linux组成的双系统,这次我选择将其迁移到我的arch-linux
中,方便在两台电脑都跑通stable-diffusion-webui
。
折腾记录
第一个要解决的问题肯定是python
版本问题,因为arch默认使用最新的python
,
stable-diffusion-webui
文档(截至博客发布前)里推荐使用 python 3.10.6
, 所以我选择pyenv
来管理多版本python
, 使用以下命令安装pyenv
和python 3.10.6
sudo pacman -S pyenv
pyenv install 3.10.6
最新版的python
我尝试了会报依赖错误,
我是报了类似这个帖子的错误ERROR: Failed building wheel for tokenizers
手动装torch也报错
pip install torch==2.1.2 torchvision==0.16.2 --extra-index-url https://download.pytorch.org/whl/cu121
ERROR: Could not find a version that satisfies the requirement torch==2.1.2 (from versions: 2.2.0, 2.2.0+cu121, 2.2.1, 2.2.1+cu121, 2.2.2, 2.2.2+cu121, 2.3.0, 2.3.0+cu121, 2.3.1, 2.3.1+cu121)
Github
上截至博客发布前也有相关issues
:
Webui not working with Python 3.12 [Bug]: · Issue #15667 · AUTOMATIC1111/stable-diffusion-webui · GitHub
系统级python
降级是不可能的,我也懒得折腾,所以还是用pyenv
搞一个文档推荐的python
环境来解决这个问题
克隆仓库,并修改python
为指定版本
git clone https://github.com/openvinotoolkit/stable-diffusion-webui.git
cd stable-diffusion-webui
alias python=/home/styunlen/.pyenv/versions/3.10.6/bin/python
alias python3=/home/styunlen/.pyenv/versions/3.10.6/bin/python
python -m venv venv
source venv/bin/activate
webui.sh
中的python
路径也可以手动改为以下内容
# python3 executable
# if [[ -z "${python_cmd}" ]]
# then
# python_cmd="python3"
# fi
python_cmd="/home/$USER/.pyenv/versions/3.10.6/bin/python"
接下来requirements.txt
中的依赖可以使用pip
安装也可以直接运行./webui.sh
来自动安装
export PYTORCH_TRACING_MODE=TORCHFX
export COMMANDLINE_ARGS="--skip-torch-cuda-test --precision full --no-half"
./webui.sh
# 或 pip install -r requirements.txt 后运行webui.sh
模型下载太慢的话可以用下载器下载,然后复制到当前目录就行了
512X512一分钟,虽然很慢,将就用用吧。
保存一下启动脚本,方便启动
cat << EOF > start.sh
export PYTORCH_TRACING_MODE=TORCHFX
export COMMANDLINE_ARGS="--skip-torch-cuda-test --precision full --no-half"
./webui.sh
EOF
参考文档
Installation on Intel Silicon · openvinotoolkit/stable-diffusion-webui Wiki · GitHub
Install and Run on AMD GPUs · AUTOMATIC1111/stable-diffusion-webui Wiki · GitHub
原文标题: 在Arch Liunx里只用Intel Ultra 7 155H跑stable-diffusion-webui
原文作者: Styunlen(九仞)
原文地址: https://styunlen.cn/archives/post-1679.html
总结
**标题**: 在Arch Linux中使用pyenv和stable-diffusion-webui设置跨机同步开发环境**摘要**:
本文分享了一位开发者在Arch Linux系统中使用pyenv工具和stable-diffusion-webui部署稳定的图像生成工具的经历。最初,由于stable-diffusion-webui部署于Windows 11系统而非Arch Linux的移动硬盘环境中,作者无法在外出使用轻薄本时利用该工具生成低复杂度的demo图片。为了在两个系统间实现环境同步,他选择将stable-diffusion-webui迁移到Arch Linux中。过程中,他通过pyenv工具解决了python版本问题,并成功安装了要求的版本和其他依赖项,解决了安装PyTorch时的版本不可用问题。文章最后还提供了优化脚本执行和下载模型的建议。
**主要步骤:**
1. **确定问题和目标**:要在Arch Linux中使用stable-diffusion-webui,从而在外出时也能利用它。
2. **解决环境问题**:使用pyenv工具安装和管理stable-diffusion-webui推荐的Python版本3.10.6,解决了新版Python的依赖错误问题。
3. **设置和执行**:依照官方文档指引(以及GitHub上的相关issue)克隆稳定版本仓库、修改python路径、安装依赖、执行webui启动脚本,并建议在模型下载慢时使用下载器。
4. **优化脚本执行**:保存启动脚本以便快速启动stable-diffusion-webui。
**结论:**
通过使用pyenv工具和参照官方与社区资源文档,本文作者展示了如何在Arch Linux中成功部署stable-diffusion-webui。这不仅使他在不同的工作环境间能更好地协同工作,也节省了因为环境不一致而带来的时间和精力的消耗。对于希望在类似配置下实现类似需求的开发者,这篇文章提供了详细的记录和具有参考价值的教程。