乐趣区

关于stable-diffusion:一份保姆级的Stable-Diffusion部署教程开启你的炼丹之路-京东云技术团队

市面上有很多能够被用于 AI 绘画的利用,例如 DALL-E、Midjourney、NovelAI 等,他们的大部分都依靠云端服务器运行,一部分还须要领取会员费用来购买更多出图的额度。在 2022 年 8 月,一款叫做 Stable Diffusion 的利用,通过算法迭代将 AI 绘画的精密度提上了一个新的台阶,并能在以秒计数的工夫内实现产出,还能够在一台有“民用级”显卡的电脑上运行。

通过 Stable Diffusion,能够绘制出各种格调的作品,比方动漫风、插画立绘、国风水墨、3D 建模,甚至是照片级的拟真图像,而借助诸如 LoRa、ControlNet 等衍生性能,还能够做到精准管制美术格调、角色细节、姿态、动作、构图等。更更重要的是,他是全面开源的,这意味着你能够在本人的电脑上部署整个程序,应用它出图、作画是完全免费而且不限量的!市面上大多数商业级的 AI 绘画利用,都是基于 SD 去开发的。

只管 Stable Diffusion 十分亲民,但他还是有肯定的配置要求的,它须要一张性能足够弱小的独立显卡提供算力进行绘制。实际上,“跑得动”和“玩得爽”是两种不同的体验,算力上的差别会极大的影响 AI 绘画时的出图效率,也正是因为此,有很多同学因为个人电脑捉急的配置而错失了深刻体验 Stable Diffusion 的机会。等一下,你晓得京东云吗?京东云 GPU 云主机是提供 GPU 算力的弹性计算服务,具备超强的并行计算能力,正在深度学习、科学计算、图形图像解决、视频编解码等场景宽泛应用,为您提供触手可得的算力,无效缓解计算压力,晋升您的业务效率,并可弹性扩大,助您疾速构建异构的计算利用。

在经验了一系列的摸索后,我为你总结出了一套零根底的、十分好上手的借助京东云 GPU 云主机部署装置 Stable Diffusion WebUI 以及相干工具和插件的保姆集教程,请查收。

一、创立 GPU 主机实例

1.1 创立 GPU 云主机

京东云 GPU 云主机的标准型的配置蕴含 Tesla P40 24G 显卡、12 核 48G,跑 Stable Diffusion 体验十分好,配置举荐如下:

配置 举荐 阐明
零碎 Ubuntu 20.04 64 位
规格 GPU 标准型 p.n – p.n1p40.3xlarge 12 核 48G Nvidia Tesla P40 24G 显存
系统盘 100G 系统盘倡议 100G
带宽 5M 倡议 5M

1.2 创立平安组并绑定

首先在左侧菜单【平安组】创立一个平安组,在【入站规定】和【出站规定】中别离增加并凋谢 7860、7861、8080、8888 端口。其中

而后在实例详情中,点击【平安组】-【绑定平安组】绑定刚刚创立的平安组。

二、环境装置

2.1 装置 GPU 驱动

在英伟达官网依据显卡型号、操作系统、CUDA 等查问驱动版本。官网查问链接 https://www.nvidia.com/Download/index.aspx?lang=en-us
留神这里的 CUDA 版本,如未装置 CUDA 能够先抉择一个版本,稍后再装置 CUDA.

点击 Search

如上图,查问到适合的版本为 510. 而后能够应用 apt 装置对应驱动版本,应用 apt 装置更不便一些。

# 装置 510 版本驱动
apt install nvidia-driver-510
# 查看驱动信息
nvidia-smi

如装置胜利,则能够展现如下提示信息。

2.2 装置 CUDA

拜访英伟达开发者网站先抉择 CUDA 版本(版本要对应 2.1 中 GPU 驱动反对的 CUDA 版本),再依据操作系统抉择对应 CUDA 装置命令,拜访链接 https://developer.nvidia.com/cuda-toolkit-archive

如下面装置确定所抉择驱动对应的 CUDA 版本为 11.6,依据装置命令装置, 以下命令实用 Ubuntu 20.04 x86_64, GPU 驱动 510 版本

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda-repo-ubuntu2004-11-6-local_11.6.2-510.47.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-6-local_11.6.2-510.47.03-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-6-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

2.3 装置 Python 3.10

Stable Diffusion WebUI 目前最低反对 Python 3.10,所以间接装置 3.10 版本,装置命令:

    apt install software-properties-common
    add-apt-repository ppa:deadsnakes/ppa
    apt update
    apt install python3.10
    python3.10 --verison

PIP 设置国内源,因为默认源在国外,所以装置可能常常会呈现 timeout 等问题,应用国内源能够很大水平防止下载包 timeout 的状况。将如下内容复制到文件 ~/.pip/pip.conf 当中,如没有该文件,先创立touch ~/.pip/pip.conf

    [global] 
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple
    [install]
    trusted-host = https://pypi.tuna.tsinghua.edu.cn  

2.4 装置 Anaconda

十分举荐应用 Anaconda。Anaconda 能够便捷获取包且对包可能进行治理,同时对 Python 环境能够对立治理的发行版本。装置命令也很简略:

    wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
    bash ./Anaconda3-2023.03-1-Linux-x86_64.sh

创立 Python3.10.9 环境,并应用该环境

    conda create -n python3.10.9 python==3.10.9
    conda activate python3.10.9

2.5 装置 PyTorch

首先在 PyTorch 官网查问对应 CUDA 版本的 Torch,如上述章节 2.2 中 CUDA 11.6 须要装置 pytorch1.13.1

# 应用 conda 装置,两种装置形式二选一
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia

# 应用 pip 装置,两种装置形式二选一
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116

三、部署 Stable Diffusion WebUI

3.1 下载 stable-diffusion-webui

留神首先激活 Python3.10 环境:

conda activate python3.10.9

而后下载 stable-diffusion-webui

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

3.2 装置依赖

cd 到 stable-diffusion-webui 目录装置相应的依赖,如有拜访网络超时、失败等,留神依照章节 2.3 中设置国内源,如果再次失败,重试几次个别都可实现装置。

cd stable-diffusion-webui
pip install -r requirements_versions.txt
pip install -r requirements.txt

3.3 启动 stable-diffusion-webui

装置实现后,执行如下启动命令:

python launch.py --listen --enable-insecure-extension-access

这一步骤会下载一些罕用模型,如果遇到下载失败,依据报错提醒在 huggingface.co 下载模型放到对应目录,如下载 stable-diffusion-v1- 5 模型,搜寻找到 https://huggingface.co/runwayml/stable-diffusion-v1-5/tree/main

点击图中下载按钮,下载 v1-5-pruned-emaonly.safetensors 到 stable-diffusion-webui/models/Stable-diffusion 目录,其余模型同理。

模型下载实现,再次执行启动命令,提醒已启动到 7860 端口,则能够通过 IP+7860 端口拜访:

公网倡议设置拜访明码,留神替换上面命令当中的 username:password 为用户名、明码。

python launch.py --listen --enable-insecure-extension-access --gradio-auth username:password

上述命令非后盾运行,如需后盾运行能够应用 nohup、tmux 等办法实现。

3.4 应用 stable-diffusions 生成图片

下载一个模型到 /stable-diffusion-webui/models/Stable-diffusion 目录,模型能够在 https://civitai.com/ 查找,如下图所用 majicMIX realistic 模型。下载实现后点击左上角刷新按钮,而后抉择刚下载的模型,输出 Promot 和参数即可生成图片。

附上图所用 Promot 和参数

Prompt

1 girl a 24 y o woman, blonde, dark theme, soothing tones, muted colors, high contrast, look at at viewer, contrasty , vibrant , intense, stunning, captured in the late afternoon sunlight, using a Canon EOS R6 and a 16-35mm to capture every detail and angle, with emphasis on the lighting and shadows, late afternoon sunlight, 8K

Negative prompt

(deformed, distorted, disfigured, doll:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, (mutated hands and fingers:1.4), disconnected limbs, mutation, mutated, ugly, disgusting, blurry, amputation, 3d, illustration, cartoon, flat , dull , soft, (deformed, distorted, disfigured:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs,

其余参数

四、罕用相干工具与插件

4.1 装置 LoRa 插件 Additional Networks

应用 Lora 必不可少的插件,Additional Networks 能够用来管制 checkpoint+LoRa 或者多个 LoRa 模型生成混合格调的图像,并且能够设置 Lora 模型的 Weight。装置形式如下:

关上 stable-diffusion-webui,点击【Extensions】-【Install from URL】输出 https://ghproxy.com/https://github.com/kohya-ss/sd-webui-addi…

而后点击【Install】期待装置,直到在【Installed】中显示,而后间接用命令重启 stable-diffusion-webui(不是 reload webui),强烈推荐所有插件装置实现都命令重启 stable-diffusion-webui,能够免去很多麻烦。

最初点击【Setting】-【Additional Networks】输出 LoRa 文件夹的绝对路径,如 /root/stable-diffusion-webui/models/Lora(示例,请填写你的零碎门路),而后【Reload UI】期待重启实现。

而后能够在【txt2img】或【img2img】中抉择 Lora 模型并设置权重应用。

4.2 装置 ControlNet

作为 Stable Diffusion 必装插件,ControlNet 容许用户对生成的图像进行精密的管制,以取得更好的视觉效果,ControlNet 让 AI 绘画的可控性有了质的渐变,让 AGIC 真正的能够投入生产应用。

关上 stable-diffusion-webui,点击【Extensions】-【Install from URL】输出 https://ghproxy.com/https://github.com/Mikubill/sd-webui-cont…
而后点击【Install】期待装置,直到在【Installed】中显示,而后间接用命令重启 stable-diffusion-webui(不是 reload webui)。

因为 controlNet 会应用很多模型,所以在重启的时候会默认下载,如果下载失败或超时,须要手动下载到 controlnet 目录。

拜访 huggingface.co 找到 controlnet 的地址:https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main

手动下载下面模型文件到 stable-diffusion-webui/extensions/sd-webui-controlnet/models 目录,查看已下载 controlnet 模型:

下载实现,重启 stable-diffusion-webui 即可在【txt2img】或【img2img】应用。

4.3 Jupyter Notebook

Jupyter Notebook 是一个基于网页的交互环境,能够用来编辑、运行 Python 代码,可视化看到运行后果。同时提供了根底的文件树操作性能等。

如已在章节 2.4 中装置了 Anaconda,间接应用以下命令运行 notebook

jupyter notebook --allow-root --NotebookApp.token='设置你的 token'

拜访 IP+8888 端口,能够开始应用 notebook

4.4 模型训练工具 Kohya_ss

Kohya_ss 是公认举荐训练 Stable Diffusion 模型的可视化工具,尤其在 windows 平台反对比拟好,通过尝试在 linux 间接应用会遇到各种环境起因的问题,为了防止这些问题,非常举荐应用 docker 装置。

先依照 docker 官网文档装置好 docker,Ubuntu 装置 docker 文档:https://docs.docker.com/engine/install/ubuntu/
因为在 docker 容器中须要应用 GPU 资源,所以还须要先装置NVIDIA Container Toolkit

sudo apt-get update \
    && sudo apt-get install -y nvidia-container-toolkit-base

# 查看是否装置胜利
nvidia-ctk --version

而后下载 kohya_ss:

git clone https://github.com/bmaltais/kohya_ss.git

如下图,批改 kohya_ss/docker-compose.yaml 文件端口为0.0.0.0:7861:7860(将 kohya_ss 的 7860 端口映射到宿主机的 7861 端口,因为 7860 会被 Stable Diffusion WebUI 占用),

启动参数设置为"--username xxxx --password xxxx --headless", 留神替换 xxxx 为须要设置的账号密码

而后执行

docker compose build # 首次执行须要 build

docker compose run --service-ports kohya-ss-gui

过程中会从 huggingface.co 下载模型文件,如果下载失败,能够尝试手动下载到目录 kohya_ss/.cache/user/huggingface/hub/models–openai–clip-vit-large-patch14/snapshots/8d052a0f05efbaefbc9e8786ba291cfdf93e5bff, 最初的 hash 值留神改成对应的版本。

下载地址 https://huggingface.co/openai/clip-vit-large-patch14/tree/main,留神下载全副文件

下载实现,而后拜访端口 +7861 端口,能够开始应用 Kohya_ss 训练模型了。

五、总结

装置完 Stable Diffusion 及下面的举荐插件,你的 Stable Diffuion 曾经具备弱小的生产力。后续我会持续同大家一起摸索和分享更多的应用教训,敬请期待系列文章下一集。
当初购买京东云 GPU 云主机新人即享 99 元 7 天的一折体验价(合 0.59 元 / 小时),即刻开启炼丹之旅。

作者:京东科技 王雷

起源:京东云开发者社区

退出移动版