前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩转 AIGC:Ubuntu 24.04 LTS 安装配置 Stable Diffusion WebUI

玩转 AIGC:Ubuntu 24.04 LTS 安装配置 Stable Diffusion WebUI

原创
作者头像
运维有术
发布2024-05-11 08:31:37
9330
发布2024-05-11 08:31:37
举报
文章被收录于专栏:运维有术

玩转 AIGC:Ubuntu 24.04 LTS 安装配置 Stable Diffusion WebUI

2024 年云原生运维实战文档 99 篇原创计划 第 017 篇 |玩转 AIGC「2024」系列 第 006 篇

你好,欢迎来到运维有术

今天分享的内容是 玩转 AIGC「2024」 系列文档中的 Ubuntu 24.04 LTS 安装配置 Stable Diffusion WebUI

本文将详细介绍如何在 Ubuntu 24.04 LTS 中安装 Stable Diffusion WebUI

1. 实验环境信息

本文实验环境是虚拟化平台 Proxmox Virtual Environment 上一台的 Ubuntu 24.04 LTS 云主机。

我将两块 NVIDIA Tesla P100 16G 显卡通过 PCI 透传的方式挂载到 Ubuntu 24.04 LTS 中。

1.1 硬件环境

  • 服务器: 科脑 X99-D3、128G DDR3 内存(4 * 32G)、Intel E5-2698Bv3 CPU
  • 显卡:NVIDIA Tesla P100 16G 2 块
  • AI 云主机:8C、32G、40G 系统盘、500G 数据盘(精简模式)

1.2 软件环境

  • 虚拟化平台:Proxmox Virtual Environment 8.0.4
  • AI 云主机系统: Ubuntu 24.04 LTS
  • Docker:26.1.1
  • Stable Diffusion:1.9.3

2. 安装 Stable Diffusion 前置依赖

2.1 前置条件说明

部署方式: 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 等网站网络连通性,失败的时候可以反复尝试,或者想办法打通网络

2.2 安装系统依赖

代码语言:bash
复制
sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0

2.3 安装 Miniconda3

stable-diffusion-webui 成功安装和运行需要 Python3.10,我采用 Miniconda 安装虚拟环境。你可以使用自己喜欢的 pyenv、源码编译安装等方式。

  • 下载 Miniconda3
代码语言:bash
复制
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_24.3.0-0-Linux-x86_64.sh
  • 执行安装脚本(一路回车)
代码语言:bash
复制
sudo sh Miniconda3-py310_24.3.0-0-Linux-x86_64.sh

注意:

安装路径默认在 /root/miniconda3,建议更换,我选择了 /data/miniconda3

  • 激活 conda's base environment
代码语言:bash
复制
eval "$(/data/miniconda3/bin/conda shell.bash hook)"
conda init
# 禁止自动激活
#conda config --set auto_activate_base false
  • 配置 Miniconda 使用清华源软件仓库
代码语言:bash
复制
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
  • 配置创建虚拟环境的默认目录(可选)
代码语言:bash
复制
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 目录。

  • 创建 Python 3.10.14 虚拟环境
代码语言:bash
复制
conda create python=3.10.14 -p /data/AI/stable-diffusion/stable-diffusion-venv

3. 安装 Stable Diffusion

3.1 下载源代码

  • 创建数据根目录并设置权限
代码语言:bash
复制
sudo mkdir -p /data/AI/stable-diffusion
sudo chown -R ubuntu:ubuntu /data/AI/stable-diffusion
  • 下载 stable-diffusion-webui 代码
代码语言:bash
复制
cd /data/AI/stable-diffusion
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

正确执行后,输出结果如下 :

代码语言:bash
复制
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.

3.2 编辑配置文件

本节为可选项内容。当你符合下面的条件时,可以参考本节内容修改,否则无需配置。

  • stable-diffusion-webui 在云主机上部署,需要配置外部访问
  • 系统默认的 Python 不是 3.10 版,采用 conda 或是 pyenv 安装了 Python 3.10
  • 强迫症,喜欢保持源代码的干净,将 stable-diffusion-webui 运行的 venv 目录跟代码分离
  • 使用 pypi.tuna.tsinghua.edu.cn 的 pypi 库

编辑配置文件,vi /data/AI/stable-diffusion/stable-diffusion-webui/webui-user.sh,修改下面的内容:

代码语言:bash
复制
# 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"

3.3 安装 stable-diffusion-webui

执行安装脚本。

代码语言:bash
复制
cd /data/AI/stable-diffusion/stable-diffusion-webui
bash webui.sh

正确执行后,输出结果如下 :

代码语言:bash
复制
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).

3.4 浏览器验证

看到上面最后一句话说明 stable-diffusion-webui 已经启动,可以打开浏览器验证。

Stable-Diffusion-Dashboard
Stable-Diffusion-Dashboard

4. Stable Diffusion 基本配置

4.1 界面汉化

中文界面汉化属于可选项,不习惯使用英文,可以安装中文插件。中文插件有很多人分享,你可以体验几个选一个合适的。我选了下面的第一个。

代码语言:bash
复制
https://github.com/VinsonLaro/stable-diffusion-webui-chinese
# https://github.com/dtlnor/stable-diffusion-webui-localization-zh_CN
  1. 通过 WebUI 安装插件

「Extensions」->「install from URL」,输入汉化插件地址,点击「Install」,点击右下角的「Reload UI」,重启 WebUI。

Stable-Diffusion-Install
Stable-Diffusion-Install
  1. 选择中文语言包

「Settings」-> 「User interface」->「Localization」选择「chinese-all-0313」。

Stable-Diffusion-CN-Reload
Stable-Diffusion-CN-Reload
  1. 提交设置

先点击「Apply settings」提交设置,然后点击「Reload UI」,重启界面即可完成汉化。

Stable-Diffusion-CN-Sucess
Stable-Diffusion-CN-Sucess

5. 绘图体验

为了验证 stable-diffusion-webui 是否能正常工作,画了一张简单的图。

下面是原图和自己画的对比图,真是做到了,一看就会,一画就废

  • 原图
Stable-Diffusion-Ori
Stable-Diffusion-Ori
  • 自己画图(耗时 2 分钟)
Stable-Diffusion-Example
Stable-Diffusion-Example

以上,就是我今天分享的全部内容。下一期分享的内容还没想好,期待一下开盲盒。敬请持续关注!!!

免责声明:

  • 笔者水平有限,尽管经过多次验证和检查,尽力确保内容的准确性,但仍可能存在疏漏之处。敬请业界专家大佬不吝指教。
  • 本文所述内容仅通过实战环境验证测试,读者可学习、借鉴,但严禁直接用于生产环境由此引发的任何问题,作者概不负责

Get 本文实战视频(请注意,文档视频异步发行,请先关注)

如果你喜欢本文,请分享、收藏、点赞、评论! 请持续关注 @ 运维有术,及时收看更多好文!

欢迎加入 「知识星球|运维有术」 ,获取更多的 KubeSphere、Kubernetes、云原生运维、自动化运维、AI 大模型等实战技能。未来运维生涯始终有我坐在你的副驾

版权声明

  • 所有内容均属于原创,感谢阅读、收藏,转载请联系授权,未经授权不得转载

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 玩转 AIGC:Ubuntu 24.04 LTS 安装配置 Stable Diffusion WebUI
    • 1. 实验环境信息
      • 1.1 硬件环境
      • 1.2 软件环境
    • 2. 安装 Stable Diffusion 前置依赖
      • 2.1 前置条件说明
      • 2.2 安装系统依赖
      • 2.3 安装 Miniconda3
    • 3. 安装 Stable Diffusion
      • 3.1 下载源代码
      • 3.2 编辑配置文件
      • 3.3 安装 stable-diffusion-webui
      • 3.4 浏览器验证
    • 4. Stable Diffusion 基本配置
      • 4.1 界面汉化
    • 5. 绘图体验
    相关产品与服务
    云服务器
    云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档