0%

如何搭建StableDiffusion环境


在图像生成领域最牛的两个AI工具非Midjourney和StableDiffusion莫属了。Midjourney是收费的,主要以艺术、丰富的色彩见长;而StableDiffusion是开源的,它更擅长处理细节,生成的图像更逼真,尤其擅长生成人像、商品图像,能以假乱真。

这篇文章主要介绍一下如何在Windows/Linux环境下搭建StableDiffusion训练环境。

硬件要求

搭建StableDiffusion训练环境,首先你要有一张Nvidia显卡,最好内存超过16G,如果是自己搭建主机的的话,建议选择 RTX3090、RTX3090ti、RTX4080、RTX4090这类卡。

另外,硬盘最好选大此,建议最少 1T 空间,因为一般训练好的 StableDiffusion 模型都要4G左右,训练数据就更多了。

操作系统选择Windows、Linux都可以,如果是Linux建议使用Ubuntu22.04。

安装N卡驱动

当硬件准备好后,可以从这里下载N卡驱动,根据你的操作系统和N卡类型选择合适的驱动即可。如果你的N卡是我上面建议的几款,那你可以直接下载最新的驱动程序。

驱动的安装非常简单,按照提示一步步操作即可,这里就不详述了。

安装Miniconda

Miniconda是用于隔离不同的Python环境的。其实搭建StableDiffusion环境,并不需要安装Miniconda。但如果你安装了Miniconda,可以让你更方便的安装一些依赖包,同时也方便你切换不同的Python版本。

因此,我建议你在开始搭建StableDiffusion时将Miniconda安装上。Miniconda的下载地址和基本使用方法可以看这篇文章

搭建StableDiffusion

前面的环境准备好后,接下来我们就可以开始搭建StableDiffusion环境了。

首先你要知道在 github 上有好几个StableDiffusion项目:

  • AUTOMATIC1111/stable-diffusion-webui,该项目是StableDiffusion-2.1的UI版本,它依赖于下面的StableDiffusion-2.1
  • Stability-AI/stablediffusion,这个项目是 StableDiffusion-2.1
  • CompVis/stable-diffusion,该项目是StaleDiffusion-1

我们在部署时,最好选择 stable-diffusion-webui 这个项目,主要原因是这个项目有可视化的操作界面,使用起来比较方便。而我们下面讲的也都是关于 stable-diffusion-webui 的部署。

要部署 stable-diffusion-webui,第一步先使用 git 命令将它从 github 上下载下来:

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

之后,在Windows下运行:

1
webui-user.bat

而在Linux下,需要执行下面的命令:

1
./webui-user.sh

在执行webui-user脚本时,在国内一般都会出错。一方面是有一些依赖包在国内安装不上,另一方面是使用git下载代码时会出错,这些问题该如何解决呢?

对于前一种情况,建议挂上梯子下载。而后一种则需要修改 stable-diffusion-webui 中的launch.py 文件。具体的修改位置如下:

1
2
3
4
5
6
7
...
git_clone(stable_diffusion_repo, repo_dir('stable-diffusion-stability-ai'), "Stable Diffusion", stable_diffusion_commit_hash)
git_clone(taming_transformers_repo, repo_dir('taming-transformers'), "Taming Transformers", taming_transformers_commit_hash)
git_clone(k_diffusion_repo, repo_dir('k-diffusion'), "K-diffusion", k_diffusion_commit_hash)
git_clone(codeformer_repo, repo_dir('CodeFormer'), "CodeFormer", codeformer_commit_hash)
git_clone(blip_repo, repo_dir('BLIP'), "BLIP", blip_commit_hash)
...

将上面的代码修改为:

1
2
3
4
5
6
7
...
git_clone(stable_diffusion_repo, repo_dir('stable-diffusion-stability-ai'), "Stable Diffusion")
git_clone(taming_transformers_repo, repo_dir('taming-transformers'), "Taming Transformers")
git_clone(k_diffusion_repo, repo_dir('k-diffusion'), "K-diffusion")
git_clone(codeformer_repo, repo_dir('CodeFormer'), "CodeFormer")
git_clone(blip_repo, repo_dir('BLIP'), "BLIP")
...

上述修改的作用是不让git对下载的源码进行hash值比较,这块的代码逻辑应该是有些问题。

做了上述修改后,可能运行脚本时还会报错,此时我们可以手工下载对应的源码到指定目录下,如:

1
git clone https://github.com/Stability-AI/stablediffusion.git "stable-diffusion-webui/repository/stable-diffusion-stability-ai"

当手工将需要的所有依赖库源码安装好后,StableDiffusion就可以正常启动了。

StableDiffusion启动后,它的默认操作地址为: http://127.0.0.1:7860

至此,我们就将StableDiffusion环境搭建好了。

小结

总的来说,无论是搭建Stable Diffusion,还是搭建其它的AI工具环境,如Whisper、Segment-Anything都不会一凡风顺,或多或少的都会出现这种或那种环境问题。当遇到问题时,一定不要着急,慢慢来,因为这是我们学习AI的必经之路。

当你装过几个AI工具之后,就有了经验,而这些经验正是我们进一步学习AI的重要一环。

欢迎关注我的其它发布渠道