刘佳闻的头像

在Windows中安装StableDiffusion v2.1

单集封面

在Windows中安装StableDiffusion v2.1

2024-03-14
574 次观看
38 讨论
刘佳闻的头像
刘佳闻
粉丝:52
主题:8
描述:5
例子:13
其他:7
字数:4260

在Windows中安装StableDiffusion v2.1

2024-03-14
574 次观看
38 讨论
刘佳闻的头像
刘佳闻
粉丝:52
刘佳闻的头像
刘佳闻
粉丝:52
主题:8
描述:5
例子:13
其他:7
字数:4260

1 前言

引入 安装概述

由于stable-diffusion官方的安装方式需要专业性比较强,而且安装过程复杂,所以我们基于官方的安装方式做好了Docker镜像,如果您对Docker非常熟悉,请略过Docker的安装步骤,跳转至镜像使用步骤。

生成最低需要4G的显存。(需要特殊配置)

推荐6G显存

最低需要12G空闲内存

推荐空闲16G内存

由于安装stable-diffusion本就需要一些开发者的知识,我们能降低的门槛也有限。

目录 安装流程
  1. 安装WLS2

  2. 安装Docker

  3. 安装stable-diffusion

2 安装步骤

2.1 安装WSL2

引用 官方教程地址

Microsoft官方教程地址

2.1.1 系统环境及版本

系统环境

成功安装需要Windows10及以上的系统,这里对于非开发人员稍微困难一些。

请注意不要使用优化工具“优化”过的系统,一些所需系统文件可能会被移除导致后续安装失败

对于Win10:

  • 对于 x64 系统:版本 1903 或更高版本,内部版本为 18362 或更高版本。

  • 对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。

如何查看系统版本 系统环境

请进行如下操作查看系统版本:

  1. 徽标键(win键) + r,打开“运行”

  2. 输入winver后确定打开"关于Windows"

  3. 找到OS内部版本字样后面跟的数字

正确版本号 如何查看系统版本

例如:18362.1049,18362是主要版本号,1049是次要版本号,如果您的系统刚好是Win10的18362版本,那么次要版本号不能低于1049

2.1.2 命令行安装

打开管理员命令行
  1. 徽标键(win键) + r,打开“运行”

  2. 输入PowerShell 后确定打开“PowerShell命令行”

  3. 在命令行里输入并回车

start-process PowerShell -verb runas

此时即可打开管理员身份的“PowerShell”

启用WSL

在命令行输入并回车

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
启用虚拟机平台

在命令行输入并回车

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

如果是 Windows 10(1903,1909)请输入

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
更新WSL内核

重新启动系统后在命令行输入并回车

systeminfo

找到"System Type"或者"系统类型" 如果结果包含x64字样,则下载
x64最新版内核
如果包含ARM字样,则下载
ARM最新版内核

下载后双击安装程序

设置WSL版本

重复管理员身份打开命令行

在命令行输入并回车

wsl --set-default-version 2
安装Linux发行版

有了 WSL 和必要的虚拟化技术,接下来您要做的就是从 Microsoft Store 中选择并安装 Linux 发行版。

Ubuntu 安装Linux发行版

这里我选择的是Ubuntu20.04 LTS
大家也可以选择其他的,在 Microsoft Store中搜索Linux即可

安装完后需要打开安装后的 Linux 设置密码

2.2 安装Docker

下载并安装
2023-03-30
---------------------
已知Docker Desktop 4.17.1
有无法使用 GPU 的 bug,不要下载这个版本。

到 Docker 官网下载特定版本

https://docs.docker.com/desktop/release-notes/

直接使用安装引导程序进行安装,这里就不再详细说明。

2.3 安装stable-diffusion

下载所需文件

模型文件以及所需要的基础文件,这里我上传到了百度网盘。
百度网盘链接

下载之后自行找个文件夹解压

更新显卡驱动

确保显卡驱动已经升级为最新版本

设置启动参数

8G 显存以上的可以忽略此步骤

  1. 需要修改百度网盘下载的 docker-compose.yml 底部,找到
    CLI_ARGS=--allow-code --xformers,在之后添加。

  2. 按照常用启动参数设置好

常用启动参数 设置启动参数

注意参数之间要有空格

  • 4G 显存推荐参数--precision full --no-half --lowvram --always-batch-cond-uncond

  • 5G 显存推荐参数--medvram

  • 6G 显存推荐参数--precision full --no-half --medvram

其他自定义启动参数请查看官方启动参数文档

启动SD

在解压后的文件夹空白处按住shift同时点击鼠标右键,在出现的菜单中选择在此处打开linux shell 之后输入即可打开stable-diffusion

docker-compose up -d

首次输入这个命令需要等待较长时间,需要下载大概20G的镜像文件,请耐心等待。

最终在Docker界面中的可以看到Containers选项卡中,可以看到一个叫sd-auto-ui的程序,点击后可以看到程序打出的日志,当日志中出现如下字样时

Running on local URL:  http://0.0.0.0:7860

在浏览器中地址栏中输入 <http://localhost:7860> 即可打开stable-diffusion程序。

更新SD

2023年4月10日开始试运行版本管理
在这之前安装的用户需要删除镜像,从下载所需文件 开始重新安装
之后可以随着我们的频率进行版本更新
这里查看已发布的版本

在解压后的文件夹空白处按住shift同时点击鼠标右键,在出现的菜单中选择在此处打开linux shell,然后输入

docker-compose pull

等待新的镜像执行完毕后重新执行启动stable-diffusion

解答 常见问题

一、 一般在Loading weigets后显示killed程序自动退出。

  1. 需要在C:\Users\你的用户名\下新建一个名为 .wslconfig的文件,在里面输入:

    [wsl2]
    memory=12GB
  2. 重启操作系统3. 然后重新启动stable-diffusion

二、 如出现以下字样后报错退出

when localhost is not accessible a shareable link must be created. please set share=true
  1. 需要修改百度网盘下载的 docker-compose.yml 底部,将
    CLI_ARGS=--allow-code --xformers这里
    添加--share参数

  2. 然后重新启动stable-diffusion

3 其他说明

插件 已集成插件

默认不允许自己安装插件,但有高级使用方法可以允许你自己安装
不过如果自己折腾的话,有没有问题就无法保证了

Stable-Diffusion-Webui-Civitai-Helper
https://github.com/butaixianran/Stable-Diffusion-Webui-Civitai-Helper.git
(需要翻墙才能使用,关注后续高级使用方法教程)

StylePile
https://github.com/some9000/StylePile

aesthetic-gradients
https://github.com/AUTOMATIC1111/stable-diffusion-webui-aesthetic-gradients

images-browser
https://github.com/yfszzx/stable-diffusion-webui-images-browser

posex
https://github.com/hnmr293/posex

sd-webui-controlnet
https://github.com/Mikubill/sd-webui-controlnet

sd-webui-depth-lib
https://github.com/jexom/sd-webui-depth-lib.git

stable-diffusion-webui-two-shot
https://github.com/ashen-sensored/stable-diffusion-webui-two-shot

tag-autocomplete
https://github.com/DominikDoom/a1111-sd-webui-tagcomplete

目录结构

目录结构如下

├───controlnet_models(controlnet 模型目录)
├───embeddings
├───sd-webui-depth-lib
│   ├───maps (depth-lib插件的目录)
├───models(主要模型目录)
│   ├───deepbooru
│   ├───Stable-diffusion
│   ├───VAE
│   └───VAE-approx
└───outputs(输出目录)
    ├───extras-images
    ├───img2img-grids
    ├───img2img-images
    ├───txt2img-grids
    └───txt2img-images(图片输出在这里)
模型 附带模型

自带的模型是v2-1_768-ema-pruned.ckpt

这个模型很奇怪,非常不好用,建议找其他模型。

如果有需要请到Huggingface官网下载其他模型

代理 使用代理

目录下有一个 docker-compose.yml 文件,用文本编辑器打开后可以看到用#注释掉的环境变量(environment),其他的不变,将端口号改成本地代理的端口号,如果不知道填什么,请不要修改,关注后续视频使用教程。

讨论
随记