版本20230118 Powered By Annix
本文档是我上一篇文档的更新(https://www.bilibili.com/read/cv20466834)。
由于作者水平有限,文档中难免有些问题。如果你发现了问题或者有更好的建议,非常感谢你向我提出!
本文档为滚动更新,更新日志我会放在前言章节下的目录板块中。我会不定期更新此文档,更新频率取决于我的个人时间安排。
文档制作不易,如果你觉得这篇文档对你有帮助,希望大家三连支持一下,非常感谢!
Stable Diffusion是一款功能异常强大的AI图片生成器。它不仅支持生成图片,使用各种各样的模型来达到你想要的效果,还能训练你自己的专属模型。
WebUI使得Stable Diffusion有了一个更直观的用户界面,更适合新手用户。
但是,国内复杂的网络环境使得Stable Diffusion的安装变得比较麻烦,下载模型与调试问题也会比较费事。网上的信息也比较零散,在此做一个统一的整理。
人话君:不会还有人在用大佬整合包吧(笑
备注:后续若还有未解决的问题,我会列在此处。
Stable Diffusion2.0(或2.1)由于是刚发布的版本,其专属模型在国内还没有快速下载地址,但可以通过下载加速器(如迅雷、Aria2Ng等)获得较快的下载速度。如果有网友放出了国内的镜像地址,我会尽快放出。
目前的简体中文补丁尚不完善,仍然有些地方(特别是扩展的翻译)不是简体中文。如果有新的语言补丁放出,我会尽快更新。
部分模型或扩展功能安装后可能会因为出错而无法使用。
运行Stable Diffusion需要消耗较大的资源,对显卡的要求尤其高(至少4GB的VRAM)。所以,如果你没有较好的硬件资源,你可能需要在百度飞桨(https://aistudio.baidu.com/)或Kaggle(https://www.kaggle.com/)这些网站上搭建服务器以获得免费的硬件资源。
误区:很多网上的资料里的安装方法里都写了需要安装Anconda等其它程序,其实并不需要,不要把其它版本的Stable Diffusion和AUTOMATIC1111的Fork混为一谈,安装这些不必要的程序。这将节省不少步骤。
对于显存较小的显卡,安装之后可能需要优化以获得更佳的性能。有关详细信息以及具体安装方法,我会附在文中。
在以下步骤中,我使用Windows环境(Powershell)来做说明,Linux命令与Powershell命令大致相仿(Linux命令中使用的斜杠是正斜杠,而Powershell正好相反。所以在Linux下执行命令时,请把反斜杠换成正斜杠),如果有特殊的地方,我会单独作说明。
版本20221213:初版,同时也是放在Bilibili(https://www.bilibili.com/read/cv20466834)上的第一个版本。
版本20221218:新增“更新日志”、“学习网址推荐”以及“模型简介”板块并完善内容。修正了部分语法错误以及不准确的地方,修补了不完整的内容。
版本20221219:进一步完善内容,并增加Nvidia GeForce GTX 16系列显卡问题的解决方案以及“模型简介”板块。
版本20221226:修复有关于Torch的致命问题,添加“Torch”板块。
版本20230118:优化了一下语言(人话多了点,写文档没必要那么死板)。
(人话君:6)
版本20230217:前几天,我又仔细研究了一下Stable Diffusion,发现了先前版本的文档存在很多因我理解不够透彻而导致的漏洞,并在这个版本中修复了。同时,我会将这篇文档重新发布到Bilibili上。
首先,我们需要安装Git。对于我们下一步的克隆来说,这是一个必不可少的工具。Windows的安装程序在https://registry.npmmirror.com/-/binary/git-for-windows/v2.38.1.windows.1/Git-2.38.1-64-bit.exe下载(实际Git版本并不影响使用,这里使用的是Git 2.38)下载之后安装。Linux则需要用到软件包管理工具(因发行版而异)。我拿Ubuntu举例:
# apt install git
然后,我们需要安装Python 3.10。这是官方文档上指定的版本,Windows的安装程序在https://mirrors.huaweicloud.com/python/3.10.9/python-3.10.9-amd64.exe下载(Python 3.10.9)。如果你使用的是Linux,则可以使用包管理工具安装,并升级到最新版PIP:
# apt install python3 python3-pip python3-venv
# python -m pip install --upgrade pip
注意:
Windows下安装Python时,请务必勾选“Add Python to PATH”,以后我们调度Python时会方便很多。
如果你选择的是自定义安装,请务必在安装组件选择中勾选PIP(Python的包管理工具,无论是在接下来的安装中还是后续的使用中,我们都需要用到它)。
由于Linux不同的发行版默认软件包版本不同,不保证一定是3.10,故如果通过软件包管理器安装的Python版本不符,需要自行下载编译。
注意:
CUDA需要搭配Nvidia显卡驱动进行安装和使用。如果你使用的是AMD显卡,则需要使用Ort。详细安装及搭建方法请自行搜索。
在安装CUDA之前,请确保你已安装Nvidia显卡驱动。不同的驱动版本固定搭配不同的CUDA版本(下面的步骤我使用的是Nvidia Driver 516.94+CUDA 11.7.1)。当然,如果你想使用更新的驱动,你也可以自行搜索其搭配的CUDA版本。
如果你使用的是Nvidia显卡,则需安装CUDA。这是几乎所有的AI在Nvidia显卡上都需要的东西。Windows下,在这里下载安装:https://developer.download.nvidia.cn/compute/cuda/11.7.1/local_installers/cuda_11.7.1_516.94_windows.exe(版本11.7.1,搭配Nvidia驱动516.94)进行下载安装,Linux可以在https://developer.nvidia.com/cuda-11-7-1-download-archive?target_os=Linux选择适合你的发行版的版本安装。
在Windows下,安装CUDA一般只用根据安装程序的提示就可以安装了。如果你不想安装太多冗余的东西,则可以只在安装选项中勾选Runtime和Development(如果你不知道如何操作,可以在安装完成后再在系统设置中卸载)。
PyTorch也是Stable Diffusion不可缺少的依赖包,它主要用于拓展CUDA的功能。
注:PyTorch原本是可以在后面统一安装的,但它拥有特殊的版本依赖关系,所以我单独列出一个板块来介绍其安装方法。
就像不同的Nvidia驱动版本固定搭配不同的CUDA版本一样,不同的Torch版本也固定搭配不同的CUDA版本使用(下面的步骤中我使用PyTorch-1.13.1+CUDA11.7)。
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
如果你使用的是不同版本的CUDA,你可能需要去https://pytorch.org/get-started/locally/查看你对应的Torch安装版本及安装命令(如下图)。
Dev-Sidecar(可选,建议)
虽然我们使用了Ghproxy进行了Git加速,但还是可能由于网络原因导致克隆速度变慢。但是安装了Dev-Sidecar之后,就基本不会再出现这个问题了。
注:这个程序是可选的,如果你觉得不需要安装,可以直接跳到Step2。
Windows环境下可在https://ghproxy.com/https://github.com/docmirror/dev-sidecar/releases/download/v1.7.3/DevSidecar-1.7.3.exe下载,Linux环境下可以在https://ghproxy.com/https://github.com/docmirror/dev-sidecar/archive/refs/tags/v1.7.3.zip下载源代码进行编译(版本1.7.3)。
注:顺带说一下,这个项目在国内现已被Gitee封杀,在国内不通过特殊手段是无法下载的。开发者很不容易,希望各位也能支持一下开发者。
如果以上程序都已安装完毕,就可以进入下一步了。
打开Windows终端(Powershell,不是CMD)。首先,检查磁盘的剩余空间(一个完整的Stable Diffusion大概需要占用30~40GB的剩余空间),然后进到你选好的磁盘或目录下(我选用的是Windows下的D盘,你也可以按需进入你想克隆的位置进行克隆):
cd D: # 此处亦可输入你想要克隆的地址
注意:由于在Linux下不能使用Root用户来运行Stable Diffusion,故需切换到普通用户来进行克隆。
然后使用Git克隆AUTOMATIC1111的stable-diffusion-webui(这里我是用了Ghproxy在国内进行加速):
git clone https://ghproxy.com/https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
克隆完成后,进入到克隆好的目录。
cd .\stable-diffusion-webui
在国外,安装Stable Diffusion比较简单,但是由于国内的网络环境,安装过程中可能会遇上不少麻烦。
编辑“launch.py”(此处我是用的是Visual Studio Code。如果你需要,可以点击这里进行下载,Linux则需要用到你安装好的文本编辑器,例如Vim)。
code .\launch.py
替换所有的https://github.com
为https://ghproxy.com/https://github.com
。这里也是利用Ghproxy进行代理,加速国内Git。
注意:不要使用“全部替换”!当Code把所有的https://github.com
替换过一遍后,就不必把https://ghproxy.com
后面的https://github.com
再替换一遍。
人话君:在菜单中依次选择编辑
->替换
,在弹出的小窗里的”查找”框里填上https://github.com
,“替换”框里填上https://ghproxy.com/https://github.com
,再按10下回车键即可(
替换完成后注意保存。
编辑完之后,我们需要进入Stable Diffusion自带的Venv虚拟Python环境以进行配置和安装依赖。由于刚克隆下来的Stabe Diffusion没有附带Venv,所以我们得先执行一遍如下命令,以创建一个Venv环境。
python -m venv .\venv
创建完成以后,我们进入到venv目录中的Scripts文件夹(Linux下是venv目录中的bin目录):
cd .\venv\Scripts
执行其中的“activate.bat”。
.\activate.bat
如果你使用的是Linux,则需要执行这个命令。
$ source activate
执行完成后,Windows命令行会自动清屏(之前执行的所有命令及输出结果清空),Linux的句首会出现“(venv)”的字样。此时,我们就成功进入到Venv环境中了。
Venv可以视作一个简化版的“虚拟Python”。新生成的Venv相当于删去了预置PIP包的Python,基本原理和完整Python无二异。所以,进入Venv后我们第一步要做的就是更换PIP源,以方便之后的PIP包的安装。这里我选择的是阿里的PIP源,在全国范围内都较快。
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ # 这里你也可以选择其它的PIP源进行更换
接着,我们需要安装Stable Diffusion和WebUI所需的PIP包。执行下列命令后耐心等待安装完成。
cd ../..
pip install -r requirements_versions.txt # 执行此条命令前,请检查你的剩余磁盘空间
然后我们执行“webui-user.bat”(Linux下是webui.bat)。
.\webui-user.bat
直至目前,Stable Diffusion的基本框架已经被我们安装好了。但是根据我们配置的不同,还需要做一些简单的设置。
在Windows下,打开webui-user.bat(Linux下是webui.sh):
cd .. code .\webui-user.bat
将全部内容替换为:
@echo off
set PYTHON=C:\python\python.exe
set GIT=set VENV_DIR=venv
set COMMANDLINE_ARGS=--medvram --autolaunch --deepdanbooru --xformers
call webui.bat
Linux下,找到#export COMMANDLINE_ARGS=""
这一行,去掉行首的“#”,并在两个双引号之间添加--medvram --autolaunch --xformers
。
注:此处的“--medvram”是针对6GB及以上显存的显卡优化的,根据显卡配置的不同,你还可以更改为“--lowvram”(4GB以上)、“--lowram”(16GB以上)或者删除此项(无优化)。此外,此处的“--xformers”选项可以开启Xformers。加上此选项后,显卡的VRAM占用率就会相较原来减少一半,能大幅提升图片生成效率。
其实,除了在此列出的选项外,还有很多其它的选项来实现其它的一些功能。如果你感兴趣,可以查看官方文档或者自行在网上搜索。
(人话君:作者太懒了)
模型相当于Stable Diffusion的核心。在没有模型的情况下,Stable Diffusion是无法启动的。所以,我们需先下载模型。Hugging Face(https://huggingface.co)是学习使用Stable Diffusion的不可或缺的平台。你可以从此网站的Model版块中搜索你需要的模型名称来下载模型(由于Hugging Face的服务器在境外,下载模型可能需要用到加速器)。不同的模型有自己的美术风格。如momoko(具体模型介绍在模型简介板块),这个模型专门用来生成二次元图片。
Stable Diffusion的模型后缀名一般为ckpt。偶尔,模型也会附带VAE(.vae.pt)或配置文件(.yaml)。我们需要把ckpt模型、VAE以及配置文件放在models目录下的Stable-diffusion目录中。
注意:如果一个模型附带配置文件或者VAE,你则需要先把它们的文件名改为相同的文件名,然后再放入目录中,否则这个模型的配置可能无法正确读取,影响图片生成效果。
人话君注:就把下载页面中的所有文件连同模型一股脑丢进Stable-diffusion目录里,反正也不会出大问题(不是
模型配置完成后,重新回到克隆目录中。
cd D:\stable-diffusion-webui
运行webui-user.bat(Linux下是webui-user.sh)。
.\webui-user.bat
如果你的终端显示的内容与下图相符,那么恭喜你,Stable Diffusion WebUI的基本框架安装成功了!
注:在此,虽然我们在前面已安装过Stable Diffusion以及WebUI所需的PIP包,但PIP可能还会安装一些其它需要用到的包,静等其安装完成即可。由于我们在之前的步骤中已经修改过launch.py中的下载源,下载应该不会很慢。
接着,我们会发现WebUI显示的并不是中文。此时,我们需要将其调整为简体中文。这里,我用百度网盘分享了一些语言的补丁。
链接:https://pan.baidu.com/s/1X7R4nQfAxHKdoXRWyknSxg
提取码:annx
下载我分享的“localizations.zip”并解压到克隆文件夹的“localizations”目录中。之后在Settings -> User interface -> Localization (requires restart)设置语言(在下拉菜单中选择zh_CN)。然后重新启动WebUI之后,你就会发现语言变成了简体中文。
备注:目前的语言补丁还没有完全翻译。任然有些地方(特别是扩展)没有完全翻译。如果有新的语言补丁放出,我会尽快更新。
如果你愿意,还可以安装一些扩展来实现其它功能(如创建美术风格)。转到Extensions
选项卡以安装扩展。
Stable Diffusion2.0和2.1是两个刚刚发布的新版本。它们都有自己的专属模型。下面是它们的下载地址与介绍。
Stable Diffusion 2.0:
768-v-ema.ckpt与768-v-ema.yaml(需要改名):这是Stable Diffusion2.0的官方模型,相同的环境下,生成768x768分辨率的图片的速度几乎和1.5版生成512x512图片的速度相同,质量更好。
注:Stable Diffusion2.0还有更多模型,可以自行在Hugging Face上搜索。它们使用同一配置文件,模型放到目录后,只用复制一份配置文件,更改文件名即可。不用重复下载(因为这些模型一般都是根据Stable Diffusion1.5来训练的,使用同一个VAE)。
Stable Diffusion 2.1
v2-1_512-ema-pruned.ckpt:这是Stable Diffusion2.1的官方模型(专门生成512x512图像的版本),可以看作是Stable Diffuison2.0模型的升级版本。它和Stable Diffusion2.0的模型使用同一配置文件。
使用这些模型的方法和我前面介绍的方法一样,但镜像源不在国内,故需要用加速器下载。这一点我在前面有提到。只是我在读取Stable Diffusion2.0模型时,WebUI下载了一个3GB多的文件,也不知道是干什么用的。
人话君:作者太懒了,这一部分神马都没动
Bilibili上的元素法典(https://www.bilibili.com/read/cv19505389) 是学习Diffusion的一个不错的平台。在这个平台上,你将会学会Stable Diffusion的各种知识(例如描述词和反描述词)。要生成好的图片,除了要有好的模型,还要掌握一些技巧和知识。
作为一位Stable Diffusion学习者,首选的信息获取网站应该是danbooru.donmai.us。绝大多数描述词的出处都在此(这一点元素法典制作组在元素同典:确实不完全科学的魔导书(https://www.bilibili.com/read/cv19505389)中有提到)但是我并不推荐这个网站,因为这个网站似乎不适用于中国国内网络环境。
如果你也喜欢二次元,Black Lily(http://heizicao.gitee.io/novelai/#/book)可能很适合你。它是一个不错的二次元描述词获取源,提供的信息较多。
此外,元素法典制作组也开放了一个NAI信息并联计划(https://kdocs.cn/l/cre0TwbMkdx3),这个上面有不少很好的可以获取的资源。
在我们学习Stable Diffusion时,可以试着用不同的模型来尝试不同的美术风格(如古典风格、二次元风格、中国风、写实风等)。下面是我整理的一些不同模型的风格,可以作为参考。
写实与绘画——Stable Diffusion官方模型(2.0或2.1)
Stable Diffusion的官方模型是混合模型,偏重于写实与绘画,风景和人物都可以生成出较好的效果。
二次元风格——Momoko:
这个模型主要用于生成二次元风格(如动漫,CG),相较于其它二次元模型,改善了手部的生成效果,感觉还不错。
百宝箱——Anything:
我觉得这个模型很了不起。据说这个模型是国人自己训练的,而且名副其实,它能以很好的效果生成很多东西——从二次元到油画风。
专门生成女性——F222:
这个模型专门用于生成女性(我感觉有点偏向于CG风)。