0


在本地PC运行 Stable Diffusion 2.0

Stable Diffusion 2.0在前几天已经发布了,新版本在上一个版本的基础上进行了许多改进。OpenCLIP中新的深度检测和更好的文本到图像模型是主要的改进之一。

有很多的文章介绍了Stable Diffusion 2.0的改进,所以我们就不多介绍了,这里我们将介绍如何在本地PC上尝试新版本,因为只有我们实际运行成功了,我们才能够通过代码了解它是如何实现的。

本文主要介绍如何在本地运行,所以并不涉及代码方面的工作,但是也不代表本文就很简单。

系统需求

  • Windows 10/11操作系统
  • Nvidia GPU RTX,至少12GB的RAM
  • 本地磁盘空间至少25GB

注意“模型可以在8GB的VRAM上运行,但分辨率将只能到256x256。

软件需求:

  • Anaconda
  • git
  • Pytorch

首先,我们安装环境

 conda install pytorch==1.12.1 torchvision==0.13.1 -c pytorch
 pip install transformers==4.19.2 diffusers invisible-watermark
 pip install -e .

创建虚拟环境

将代码克隆到本地:

https://github.com/Stability-AI/stablediffusion

然后用Anaconda创建一个新的环境:

 conda create --name sd2 python=3.10

激活环境。然后安装相应的包:

 pip install -r requirements.txt

安装iWatermark模块,虽然是可选的,但是如果不装可能会有问题,所以我们还是装一下:

 pip install transformers==4.19.2 diffusers invisible-watermark

获取CUDA的最新版本。

 conda install -c nvidia/label/cuda-11.4.0 cuda-nvcc
 conda install -c conda-forge gcc
 conda install -c conda-forge gxx_linux-64=9.5.0

安装“xformer”这样可以提高效率和速度。

 git clone https://github.com/facebookresearch/xformers.git
 cd xformers
 git submodule update --init --recursive
 pip install -r requirements.txt
 pip install -e .
 cd ../stable-diffusion

编译可能需要一段时间(一般情况下 10-20分钟,根据电脑有所区别)。

如果安装顺利,代码将自动设置U-Net和自编码器中的自注意层和交叉注意层,这样可以尽可能少的内存。

有了这些设置,我们现在开始准备模型。

使用模型生成图像

Stable Diffusion 2.0为不同的要求发布了单独的模型。请根据需要单独下载它们。

  • 稳定扩散2.0基础模型768x768 => 768-v-ema.ckpt (5 gb)
  • 稳定扩散2.0基础模型512x512 => 512-v-ema.ckpt (5 gb)
  • 稳定扩散2.0深度模型=> 512-depth-ema.ckpt (5.7 GB)
  • 稳定扩散2.0 X4 Upscaler => X4 - Upscaler -ema.ckpt (3.5 GB)
  • 稳定扩散2.0 inpainting => 512-inpainting-ema.ckpt (5.2 GB)

下载地址在这里:https://huggingface.co/stabilityai

把上面的模型下载到model目录

然后可以测试一下是否能够生成图形

 python scripts/txt2img.py --prompt "a professional photograph of an astronaut
  riding a horse" --ckpt .\models\512-base-ema.ckpt 
 --config configs/stable-diffusion/v2-inference-v.yaml 
 --H 512 --W 512 --plms --n_samples 1

得到这条输出,说明图像已成功渲染。

注意:如果你使用类似NVidia RTX 3060 Ti,那么因为它只有8GB的RAM。所以不足以支持512x512的图像,只能生成很糟糕的256x256的图像,如下所示:

所以如果你有一个更强大的GPU,那么可以生成更好的图像。

作者:Jim Clyde Monge

“在本地PC运行 Stable Diffusion 2.0”的评论:

还没有评论