IT评测·应用市场-qidao123.com

标题: Ubuntu20.04摆设stable-diffusion-webui情况小记 [打印本页]

作者: 小秦哥    时间: 2025-3-9 10:04
标题: Ubuntu20.04摆设stable-diffusion-webui情况小记
Ubuntu20.04摆设stable-diffusion-webui情况小记

  
   Stable Diffusion web UI
A web interface for Stable Diffusion, implemented using Gradio library.
  前言

今天这篇算是工作学习条记吧,紧张纪录下stable-diffusion-webui开源项目安装过程中遇到的问题,Stable Diffusion 是一种基于深度学习的文本到图像天生模子,可以或许根据给定的文本形貌天生高质量的图像。它属于一种称为扩散模子(Diffusion Models)的天生模子,扩散模子在图像天生领域取得了显著的成果。
  stable-diffusion-webui 是一个开源项目,旨在为 Stable Diffusion 模子提供一个简便、用户友爱的 Web 界面。这个界面使得用户可以或许更方便地利用 Stable Diffusion 天生图像,进行各种设置调解,乃至利用 GPU 加速来提高天生服从。它本质上是一个基于 Python 的 Web 应用步伐,通常利用 Flask 或 FastAPI 作为后端框架,前端则是基于 HTML/CSS/JavaScript 实现的。
stable-diffusion-webui 作为一个开源项目标,它的安装过程已经被无数先行者实践过了,但是人们总会因为如许那样的原因遇到新的问题,大概是版本不对应,平台不熟悉、项目不熟悉、情况有问题等等,在我熬到半夜成功安装完一次以后,回过头来再看项目标 README 文件发现是那样的清晰,但是为什么在成功安装前踩了那么多坑呢?总结我遇到的坎坷有几点:英语不熟、Ubuntu恐惧、python混乱、操之过急。
所以我觉得把我安装的履历纪录下来照旧很有必要的,如许可以让我以后在类似的问题上少踩一些坑,安装背景是如许的,之前团队小伙伴也是用这个项目天生图,但是用的Windows版本,从 README 文件来看Windows版本在显卡驱动正常的情况下只需要 git clone 克隆库之后,运行 webui-user.bat 脚本即可,但是那台Windows设置不高,所以准备用新电脑再搭一次情况。
新入伍的电脑设置设置贼优秀:i9CPU32核、128G内存、Geforce RTX 4070Ti显卡、4TSSD硬盘,另有Windows10家庭版和Ubuntu20.04双系统,考虑抵家庭版系统的限制和分配给它的小硬盘空间,我们照旧决定在Ubuntu上重新摆设一套情况,首先在我的认知里高配显卡和Ubuntu就不搭,所以当我遇到找不到显卡需要安装驱动时就头大,固然如今来看这只是私见,但当时安装时并不知道,加上搜到的一些Ubuntu安装显卡驱动的繁琐教程,我走了一些弯路。
再有就是对英语的生疏感,导致检察README文件时有些急躁,有点胡乱一锅端的操作,另有就是要再安装一个新版本的Python解释器的恐惧,这也是导致我开始安装总遇到问题的紧张原因,当我梳理了python3-venv功能之后,根本明白了虚拟情况的隔离概念和利益,也就明白了这些安装命令的作用。
后视镜视角检察安装文档

首先分析我的电脑系统是Ubuntu20.04,这就决定我电脑默认的Python不符合要求,下面是具体步骤:
  1. Automatic Installation on Linux
  2. 1.Install the dependencies:
  3. # Debian-based:
  4. sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0
  5. # Red Hat-based:
  6. sudo dnf install wget git python3 gperftools-libs libglvnd-glx
  7. # openSUSE-based:
  8. sudo zypper install wget git python3 libtcmalloc4 libglvnd
  9. # Arch-based:
  10. sudo pacman -S wget git python3
复制代码
先看这一段,一开始我准备一股脑全实行一遍,厥后发现只需要实行 sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0 这一句即可,python3 是 Python 编程语言的第三版的实行文件, python3-venv 是一个用于创建 Python 3 虚拟情况的工具包, libgl1 是用于支持 OpenGL 的库,它提供了对图形硬件的低级接口,允许步伐利用硬件加速进行 2D 和 3D 图形的渲染,libglib2.0-0 是 GLib 库的核心部门,它是许多 Linux 应用步伐和工具的基础库之一,提供数据结构、内存管理、线程管理、文件 I/O、网络操作、正则表达式等功能,被广泛用于 GNOME 桌面情况和许多其他 C 应用步伐中。
稍微新一点的Ubuntu系统实行这个命令就安装好了,比如Ubuntu22.04系统,自带的Python版本就是Python3.10,而我当前的电脑系统Ubuntu20.04自带的Python版本是Python2.7和Python3.8,所以Python相关的软件默认安装的不符合条件,接着往下看。
  1. If your system is very new, you need to install python3.11 or python3.10:
  2. # Ubuntu 24.04
  3. sudo add-apt-repository ppa:deadsnakes/ppa
  4. sudo apt update
  5. sudo apt install python3.11
  6. # Manjaro/Arch
  7. sudo pacman -S yay
  8. yay -S python311 # do not confuse with python3.11 package
  9. # Only for 3.11
  10. # Then set up env variable in launch script
  11. export python_cmd="python3.11"
  12. # or in webui-user.sh
  13. python_cmd="python3.11"
复制代码
原来这个项目需要的版本是Python3.11 大概 Python3.10,所以系统自带的Python3.8是不可的,这里开头有句提示,假如系统太新(比如Ubuntu24.04)就利用这些命令安装,而我们是因为系统太老所以要利用这些命令
  1. sudo add-apt-repository ppa:deadsnakes/ppa
  2. sudo apt update
  3. sudo apt install python3.11
  4. sudo apt install python3.11-venv # 这句原文档没有,我觉得安装对应版本的好一些
复制代码
这里补充关键的一点,对照上面所需的命令,应该额外安装一下 sudo apt install python3.11-venv 这个虚拟情况的软件,别的的重中之重是要实行 export python_cmd="python3.11",大概在 webui-user.sh 文件中添加 python_cmd="python3.11"信息,我就是没看到这一步,导致Python安装混乱,耽误了几个小时,保举将设置放到文件中,一会告诉你这个文件在哪,接着往下看
  1. 2.Navigate to the directory you would like the webui to be installed and execute the following command:
  2. wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh
  3. Or just clone the repo wherever you want:
  4. git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
复制代码
这第二步给了两种方式,一种是直接下载脚本实行,另一种是直接clone一个库,我就是为了省事选了第一种,但又没设置python_cmd变量,导致下载过程中这种缺python库,所以这里保举第二种,直接在自定义位置克隆一个库,然后进入stable-diffusion-webui目录,打开文件webui-user.sh,添加python_cmd="python3.11"信息,继续往后看:
  1. 3.Run webui.sh.
  2. 4.Check webui-user.sh for options.
复制代码
第三步是实行 webui.sh 脚本,可以直接运行下载的脚本 ./webui.sh,也可以进入克隆的项目目录stable-diffusion-webui运行命令 ./webui.sh
第四步就是查抄用户参数了,我们手动添加了一个python_cmd="python3.11",其着实 webui.sh 文件中用如许一段形貌:
  1. #################################################
  2. # Please do not make any changes to this file,  #
  3. # change the variables in webui-user.sh instead #
  4. #################################################
复制代码
而在webui-user.sh也有一些被注释的默认变量供我们修改:
  1. #!/bin/bash
  2. #########################################################
  3. # Uncomment and change the variables below to your need:#
  4. #########################################################
  5. # Install directory without trailing slash
  6. #install_dir="/home/$(whoami)"
  7. # Name of the subdirectory
  8. #clone_dir="stable-diffusion-webui"
  9. # Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS="--medvram --opt-split-attention"
  10. #export COMMANDLINE_ARGS=""
  11. # python3 executable
  12. #python_cmd="python3"
  13. # git executable
  14. #export GIT="git"
  15. # python3 venv without trailing slash (defaults to ${install_dir}/${clone_dir}/venv)
  16. #venv_dir="venv"
  17. # script to launch to start the app
  18. #export LAUNCH_SCRIPT="launch.py"
  19. # install command for torch
  20. #export TORCH_COMMAND="pip install torch==1.12.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113"
  21. # Requirements file to use for stable-diffusion-webui
  22. #export REQS_FILE="requirements_versions.txt"
  23. # Fixed git repos
  24. #export K_DIFFUSION_PACKAGE=""
  25. #export GFPGAN_PACKAGE=""
  26. # Fixed git commits
  27. #export STABLE_DIFFUSION_COMMIT_HASH=""
  28. #export CODEFORMER_COMMIT_HASH=""
  29. #export BLIP_COMMIT_HASH=""
  30. # Uncomment to enable accelerated launch
  31. #export ACCELERATE="True"
  32. # Uncomment to disable TCMalloc
  33. #export NO_TCMALLOC="True"
  34. ###########################################
  35. python_cmd="python3.11"
复制代码
至此总结一下在Ubuntu20.04上设置情况的精简步骤
  1. sudo add-apt-repository ppa:deadsnakes/ppa
  2. sudo apt update
  3. sudo apt install python3.11 python3.11-venv libgl1 libglib2.0-0
复制代码
  1. git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
复制代码
聊聊我踩的那些坑

前面形貌了怎样正确搭建情况,最后总结下来就寥寥几步,但是我却兜兜转转花了几个小时,下面聊聊我都踩了哪些坑,以及用到了哪些东西?
python3.11的安装

因为自己的私见,认为Python情况的混乱,所以在这里吃了亏,利用默认命令安装完发现是Python3.8版本,于是实行 sudo apt install python3.11 命令安装,但是因为没有导入情况变量 export python_cmd="python3.11",导致实行脚本时各种报 “No module named pip” 错误,我乃至想删掉自带的Python2.7版本和Python3.8版本,还好是Deepseek劝住了我,不然我就全给它卸载了,但是因为找不到pip,指定安装也不好使,我又搞起来骚操作,将 /usr/bin/ 目录下的 python 和 python3都指向了 Python3.11,勉强解决了这个问题,但却引入了更大的麻。
重启之后打不开终端了,一些软件更新和图形界面话的东西也不好使了,经过几个小时的摸索我想起了DeepSeek劝我的话,岂非是因为系统的GNOME用到了他们,我赶紧将python和python3的软连接还原了,重启之后发现果然正常了。
当我意识到这个问题后,从头重新安装Python,指定了情况变量 python_cmd, 就没遇到这个贫苦了。
这里在安装Python3.11前有一句 sudo add-apt-repository ppa:deadsnakes/ppa,是一条在 Ubuntu 系统中用于添加 PPA(Personal Package Archive,个人包存档)的命令,让你可以或许从该源中获取更新的软件包。deadsnakes 是一个非常流行的 PPA,提供了 Ubuntu 官方源中不包含的 Python 版本。例如,它提供了比默认 Ubuntu 存储库中更高版本的 Python(例如 Python 3.11、3.12)供用户安装。
这个项目利用 python3.11-venv 创建虚拟隔离情况,它是通过 文件系统隔离情况变量设置 的方式实现虚拟情况的隔离。具体来说,虚拟情况会创建一个包含独立 Python 解释器和依赖包的目录,如许每个项目可以有自己的依赖和库,不会影响系统的全局情况或其他虚拟情况。
实行sudo apt update报错

每次实行软件查抄更新时总是报错以下错误
  1. $ sudo apt update
  2. 命中:2 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal InRelease
  3. 命中:1 https://packages.microsoft.com/repos/code stable InRelease
  4. 获取:3 https://dl.google.com/linux/chrome/deb stable InRelease [1,825 B]
  5. 错误:3 https://dl.google.com/linux/chrome/deb stable InRelease
  6.   由于没有公钥,无法验证下列签名: NO_PUBKEY 32EE5355A6BC6E42
  7. 命中:4 http://security.ubuntu.com/ubuntu focal-security InRelease
  8. 命中:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal InRelease
复制代码
从错误信息来看,问题是由于缺少 Google Chrome 存储库的公钥(NO_PUBKEY 32EE5355A6BC6E42),导致无法验证软件包的签名。解决方法如下:
可以手动添加缺失的公钥 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 32EE5355A6BC6E42
假如 keyserver.ubuntu.com 无法连接,可以实验其他密钥服务器,例如 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 32EE5355A6BC6E42
显卡驱动

运行启动脚本后找不到GPU显卡,报错如下:
  1. ailsa@ailsa-Server:~$ ./webui.sh
  2. ################################################################
  3. Install script for stable-diffusion + Web UI
  4. Tested on Debian 11 (Bullseye), Fedora 34+ and openSUSE Leap 15.4 or newer.
  5. ################################################################
  6. ################################################################
  7. Running on ailsa user
  8. ################################################################
  9. ################################################################
  10. Create and activate python venv
  11. ################################################################
  12. ################################################################
  13. Launching launch.py...
  14. ################################################################
  15. glibc version is 2.31
  16. Cannot locate TCMalloc. Do you have tcmalloc or google-perftool installed on your system? (improves CPU memory usage)
  17. Python 3.8.10 (default, Jan 17 2025, 14:40:23)
  18. [GCC 9.4.0]
  19. Version: v1.10.1
  20. Commit hash: 82a973c04367123ae98bd9abdf80d9eda9b910e2
  21. Traceback (most recent call last):
  22.   File "launch.py", line 48, in <module>
  23.     main()
  24.   File "launch.py", line 39, in main
  25.     prepare_environment()
  26.   File "/home/ailsa/stable-diffusion-webui/modules/launch_utils.py", line 387, in prepare_environment
  27.     raise RuntimeError(
  28. RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check
复制代码
按照步伐人的直觉来看是驱动有问题,关于装驱动我照旧有点恐惧的,之前折腾各个Ubuntu系统版本的时候没少花费时间,我的程度也就保持在用驱动精灵给Windows安装驱动的阶段,说是给Ubuntu安装显卡驱动实属有点强人所难了,我不停以为Ubuntu不需要太强劲的显卡,好显卡都是给打游戏准备的,不外最近的AI兴起确实给了NVIDIA显卡更广阔的应用空间,然后我就搜索Ubuntu安装NVIDIA显卡驱动的教程,看了大片大片天花乱坠的众多命令之后我真的傻眼了,一个都不想敲。
厥后我发现了 ubuntu-drivers,它是 Ubuntu 系统中一个非常实用的命令行工具,紧张用于自动检测硬件设备,并保举、安装合适的驱动步伐,特别是针对显卡、无线网卡等设备的驱动。
安装方法如下:
  1. sudo apt update
  2. sudo apt install ubuntu-drivers-common
复制代码
利用方法也极其简朴,直接一条命令 sudo ubuntu-drivers autoinstall,会根据系统检测到的硬件情况,自动选择并安装最合适的驱动,无需手动指定。
安装完之后重启,显卡居然好了,丝滑到让人难以置信。
内存优化

显卡问题解决好后,启动时报出一条警告
   Cannot locate TCMalloc. Do you have tcmalloc or google-perftool installed on your system? (improves CPU memory usage)
  这个警告是提示你没有安装 TCMalloc(Thread-Caching Malloc),它是 Google 提供的一种内存分配器,可以或许提高步伐的内存利用服从,尤其在多线程情况下表现较好。虽然它不是必需的,但它可以资助改善步伐的内存利用服从,尤其是在利用 stable-diffusion 这类内存密集型应用时。
解决办法如下:
网络问题

解决完了内存又遭遇了网络问题,因为下载的库和资源多是 google.com 域名下的,为了更好的下载所以设置了代理访问,但是遭遇了以下错误
  1. ################################################################
  2. Launching launch.py...
  3. ################################################################
  4. Python 3.11.11 (main, Dec  4 2024, 08:55:08) [GCC 9.4.0]
  5. Version: v1.10.1
  6. Commit hash: 82a973c04367123ae98bd9abdf80d9eda9b910e2
  7. Launching Web UI with arguments:
  8. Traceback (most recent call last):
  9.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/launch.py", line 48, in <module>
  10.     main()
  11.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/launch.py", line 44, in main
  12.     start()
  13.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/modules/launch_utils.py", line 465, in start
  14.     import webui
  15.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/webui.py", line 13, in <module>
  16.     initialize.imports()
  17.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/modules/initialize.py", line 23, in imports
  18.     import gradio  # noqa: F401
  19.     ^^^^^^^^^^^^^
  20.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/venv/lib/python3.11/site-packages/gradio/__init__.py", line 3, in <module>
  21.     import gradio.components as components
  22.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/venv/lib/python3.11/site-packages/gradio/components/__init__.py", line 1, in <module>
  23.     from gradio.components.annotated_image import AnnotatedImage
  24.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/venv/lib/python3.11/site-packages/gradio/components/annotated_image.py", line 12, in <module>
  25.     from gradio import utils
  26.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/venv/lib/python3.11/site-packages/gradio/utils.py", line 353, in <module>
  27.     class AsyncRequest:
  28.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/venv/lib/python3.11/site-packages/gradio/utils.py", line 372, in AsyncRequest
  29.     client = httpx.AsyncClient()
  30.              ^^^^^^^^^^^^^^^^^^^
  31.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/venv/lib/python3.11/site-packages/httpx/_client.py", line 1395, in __init__
  32.     proxy_map = self._get_proxy_map(proxies, allow_env_proxies)
  33.                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  34.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/venv/lib/python3.11/site-packages/httpx/_client.py", line 216, in _get_proxy_map
  35.     return {
  36.            ^
  37.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/venv/lib/python3.11/site-packages/httpx/_client.py", line 217, in <dictcomp>
  38.     key: None if url is None else Proxy(url=url)
  39.                                   ^^^^^^^^^^^^^^
  40.   File "/home/ailsa/stable-diffusion-webui/workspace/stable-diffusion-webui/venv/lib/python3.11/site-packages/httpx/_config.py", line 336, in __init__
  41.     raise ValueError(f"Unknown scheme for proxy URL {url!r}")
  42. ValueError: Unknown scheme for proxy URL URL('socks://127.0.0.1:7891/')
复制代码
我安装了pip install httpx==0.22.0不好使,厥后在这个官方的issue里找到了答案 unset ALL_PROXY
无法打开系统设置和网络设置

因为安装项现在完备的更新了一遍系统,发现缺了一些东西,这里提到的便是其中两项,重新安装GNOME控制中心就好了
  1. sudo apt update
  2. sudo apt install --reinstall gnome-control-center
复制代码
查询GPU利用情况

系统自带的性能检察器中没有GPU信息,所以按照下面步骤,将系统信息表现到顶部的状态条上,先安装必要软件和扩展
  1. sudo apt update
  2. sudo apt install gnome-tweaks
  3. sudo apt install gnome-shell-extension-system-monitor
复制代码
接着按下 Alt + F2,输入 r,然后按回车,查抄扩展是否已启用,需重新打开 GNOME Tweaks,方法如下:
方法 1:通过应用菜单搜索, 按下 Super 键(Windows 键),在搜索栏中输入 Tweaks 或 优化,然后点击打开。
方法 2:通过终端启动 gnome-tweaks
总结



    ==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==   
   纪录自己做决定时的想法,哪些是经过了细致的谋划,哪些是因为运气降临,诚然,运气确实也是一种实力,但是不可依赖,只有那些经过谋划后的成功才经得起历史的推敲和将来的检验~

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4