当前位置:AIGC资讯 > AIGC > 正文

在Arch Liunx里只用Intel Ultra 7 155H跑stable-diffusion-webui

引言

虽然我把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, 使用以下命令安装pyenvpython 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。这不仅使他在不同的工作环境间能更好地协同工作,也节省了因为环境不一致而带来的时间和精力的消耗。对于希望在类似配置下实现类似需求的开发者,这篇文章提供了详细的记录和具有参考价值的教程。

更新时间 2024-07-20