2024 年云原生运维实战文档 99 篇原创计划 第 017 篇 |玩转 AIGC「2024」系列 第 006 篇
你好,欢迎来到运维有术。
今天分享的内容是 玩转 AIGC「2024」 系列文档中的 Ubuntu 24.04 LTS 安装配置 Stable Diffusion WebUI。
本文将详细介绍如何在 Ubuntu 24.04 LTS 中安装 Stable Diffusion WebUI。
本文实验环境是虚拟化平台 Proxmox Virtual Environment 上一台的 Ubuntu 24.04 LTS 云主机。
我将两块 NVIDIA Tesla P100 16G 显卡通过 PCI 透传的方式挂载到 Ubuntu 24.04 LTS 中。
部署方式: Stable Diffusion web UI
部署用户: ubuntu,不能使用 root
部署根目录: /data/AI/stable-diffusion
webui 源码目录: /data/AI/stable-diffusion/stable-diffusion-webui
venv 环境目录: /data/AI/stable-diffusion/stable-diffusion-venv(运行环境和代码分离)
安装方式:自动安装脚本 webui.sh
,成功率受环境影响较大。
网络环境: 安装的成功率验证依赖 GitHub 等网站网络连通性,失败的时候可以反复尝试,或者想办法打通网络
sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0
stable-diffusion-webui 成功安装和运行需要 Python3.10,我采用 Miniconda 安装虚拟环境。你可以使用自己喜欢的 pyenv、源码编译安装等方式。
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_24.3.0-0-Linux-x86_64.sh
sudo sh Miniconda3-py310_24.3.0-0-Linux-x86_64.sh
注意:
安装路径默认在
/root/miniconda3
,建议更换,我选择了/data/miniconda3
eval "$(/data/miniconda3/bin/conda shell.bash hook)"
conda init
# 禁止自动激活
#conda config --set auto_activate_base false
cat > ~/.condarc <<EOF
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
EOF
sudo mkdir /data/conda-data
sudo chown ubuntu:ubuntu /data/conda-data
conda config --add envs_dirs /data/conda-data/envs
conda config --add pkgs_dirs /data/conda-data/pkgs
说明: 可选项操作,默认配置为 ~/.conda/ 下的 envs 和 pkgs 目录。
conda create python=3.10.14 -p /data/AI/stable-diffusion/stable-diffusion-venv
sudo mkdir -p /data/AI/stable-diffusion
sudo chown -R ubuntu:ubuntu /data/AI/stable-diffusion
cd /data/AI/stable-diffusion
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
正确执行后,输出结果如下 :
ubuntu@AI-LLM-Prod:/data/AI/stable-diffusion$ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
Cloning into 'stable-diffusion-webui'...
remote: Enumerating objects: 33228, done.
remote: Counting objects: 100% (100/100), done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 33228 (delta 52), reused 71 (delta 37), pack-reused 33128
Receiving objects: 100% (33228/33228), 34.62 MiB | 10.91 MiB/s, done.
Resolving deltas: 100% (23238/23238), done.
本节为可选项内容。当你符合下面的条件时,可以参考本节内容修改,否则无需配置。
编辑配置文件,vi /data/AI/stable-diffusion/stable-diffusion-webui/webui-user.sh
,修改下面的内容:
# Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS="--medvram --opt-split-attention"
#export COMMANDLINE_ARGS=""
export COMMANDLINE_ARGS="--listen --port 7860 --enable-insecure-extension-access"
# python3 executable
#python_cmd="python3"
python_cmd="/data/AI/stable-diffusion/stable-diffusion-venv/bin/python3.10"
# 本身就是 conda 的虚拟环境,不启用 venv
# python3 venv without trailing slash (defaults to ${install_dir}/${clone_dir}/venv)
#venv_dir="venv"
venv_dir="-"
# install command for torch
#export TORCH_COMMAND="pip install torch==1.12.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113"
export TORCH_COMMAND="pip install torch==1.12.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113 -i https://pypi.tuna.tsinghua.edu.cn/simple"
执行安装脚本。
cd /data/AI/stable-diffusion/stable-diffusion-webui
bash webui.sh
正确执行后,输出结果如下 :
ubuntu@AI-LLM-Prod:/data/AI/stable-diffusion/stable-diffusion-webui$ bash webui.sh
################################################################
Install script for stable-diffusion + Web UI
Tested on Debian 11 (Bullseye), Fedora 34+ and openSUSE Leap 15.4 or newer.
################################################################
################################################################
Running on ubuntu user
################################################################
################################################################
Repo already cloned, using it as install directory
################################################################
################################################################
Create and activate python venv
################################################################
################################################################
Launching launch.py...
################################################################
glibc version is 2.39
Check TCMalloc: libtcmalloc_minimal.so.4
libtcmalloc_minimal.so.4 is linked with libc.so,execute LD_PRELOAD=/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4
Python 3.10.14 (main, May 6 2024, 19:42:50) [GCC 11.2.0]
Version: v1.9.3
Commit hash: 1c0a0c4c26f78c32095ebc7f8af82f5c04fca8c0
Installing torch and torchvision
Looking in indexes: https://pypi.org/simple, https://download.pytorch.org/whl/cu121
Collecting torch==2.1.2
Downloading https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp310-cp310-linux_x86_64.whl (2200.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 GB 3.6 MB/s eta 0:00:00
Collecting torchvision==0.16.2
......(受限于篇幅,内容有删减)
Calculating sha256 for /data/AI/stable-diffusion/stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned-emaonly.safetensors: Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
Startup time: 657.8s (prepare environment: 1.8s, import torch: 3.3s, import gradio: 0.9s, setup paths: 0.9s, initialize shared: 0.3s, other imports: 0.8s, list SD models: 648.4s, load scripts: 0.6s, create ui: 0.6s, gradio launch: 0.1s).
6ce0161689b3853acaa03779ec93eafe75a02f4ced659bee03f50797806fa2fa
Loading weights [6ce0161689] from /data/AI/stable-diffusion/stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned-emaonly.safetensors
Creating model from config: /data/AI/stable-diffusion/stable-diffusion-webui/configs/v1-inference.yaml
/data/conda-data/envs/sd/lib/python3.10/site-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.
warnings.warn(
vocab.json: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 961k/961k [00:02<00:00, 363kB/s]
merges.txt: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 525k/525k [00:00<00:00, 806kB/s]
special_tokens_map.json: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 389/389 [00:00<00:00, 1.37MB/s]
tokenizer_config.json: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 905/905 [00:00<00:00, 4.95MB/s]
config.json: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4.52k/4.52k [00:00<00:00, 17.1MB/s]
Applying attention optimization: Doggettx... done.
Model loaded in 24.5s (calculate hash: 11.6s, create model: 11.1s, apply weights to model: 1.2s, load textual inversion embeddings: 0.3s, calculate empty prompt: 0.2s).
看到上面最后一句话说明 stable-diffusion-webui 已经启动,可以打开浏览器验证。
中文界面汉化属于可选项,不习惯使用英文,可以安装中文插件。中文插件有很多人分享,你可以体验几个选一个合适的。我选了下面的第一个。
https://github.com/VinsonLaro/stable-diffusion-webui-chinese
# https://github.com/dtlnor/stable-diffusion-webui-localization-zh_CN
「Extensions」->「install from URL」,输入汉化插件地址,点击「Install」,点击右下角的「Reload UI」,重启 WebUI。
「Settings」-> 「User interface」->「Localization」选择「chinese-all-0313」。
先点击「Apply settings」提交设置,然后点击「Reload UI」,重启界面即可完成汉化。
为了验证 stable-diffusion-webui 是否能正常工作,画了一张简单的图。
下面是原图和自己画的对比图,真是做到了,一看就会,一画就废。
以上,就是我今天分享的全部内容。下一期分享的内容还没想好,期待一下开盲盒。敬请持续关注!!!
免责声明:
Get 本文实战视频(请注意,文档视频异步发行,请先关注)
如果你喜欢本文,请分享、收藏、点赞、评论! 请持续关注 @ 运维有术,及时收看更多好文!
欢迎加入 「知识星球|运维有术」 ,获取更多的 KubeSphere、Kubernetes、云原生运维、自动化运维、AI 大模型等实战技能。未来运维生涯始终有我坐在你的副驾。
版权声明
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。