Stable Diffusion XL是StabilityAI最新的开源模型。是目前业界流行的免费开源图像生成大模型。2023年4月份StabilityAI就宣布了SD XL的存在并在2023年7月26日开源。SD XL相比较此前的模型速度更快、提示词更短、生成的图像更加真实。但是,大多数人可能并没有实际运行过,感受过这个模型的魅力。在这篇博客中,我们给大家展示如何利用Google Colab的免费GPU资源,部署一个SD XL模型,并通过prompt生成一些图片。
本文所有代码以及原始notebook都是公开共享的,大家可以去原文获取链接和代码:https://www.datalearner.com/blog/1051692274915130
下图就是一个例子~(Prompt: Astronaut on Mars During sunset, 4k)
Google Colab简介
用Google Colab部署Stable Diffusion XL做文本生成图片
1、新建Colab的notebook
2、创建GPU运行环境
3、StableDiffusion XL代码部署——安装依赖的库
4、StableDiffusion XL代码部署——从HuggingFace下载SD XL模型并加载到内存中
5、StableDiffusion XL代码部署——用SD XL来做文本生成图片的推理
用Google Colab部署Stable Diffusion XL做图片生成图片
加载stable-diffusion-xl-refiner-1.0模型
使用SD XL做Image-to-Image推理
总结
Google Colab简介
Google Colab是一个基于Jupyter notebook的免费云服务,提供GPU和TPU来加速机器学习任务。
每个免费用户都可以获得一个显存约15GB的GPU、内存为12GB左右的CPU和78G硬盘空间。并且可以与Google的云硬盘相连。因此,我们可以直接利用这个notebook运行那些显存要求不高的模型。
简单来说,这个平台最大的特点如下:
提供免费的GPU资源
只能通过Jupyter Notebook方式访问使用
可以通过云端的Jupyter Notebook连接本地硬件运行
网络速度非常快!按照第三方python库和加载HuggingFace的模型可以达到300MB/s!
从这些描述我们可以看到,这是一个值得新手练习和验证大模型使用的平台。
用Google Colab部署Stable Diffusion XL做文本生成图片
话不多说,我们直接开始按照如下步骤部署Stable Diffusion XL到Google Colab上,然后运行。
1、新建Colab的notebook
首先,我们新建一个notebook,如下图所示:
2、创建GPU运行环境
接下来,我们需要创建(连接)Google提供的GPU资源。点击上面界面右上角的Connect边上的小三角形,然后选择Change runtime type。
默认Google会让你连接CPU环境,这肯定不是我们需要的,所以点击Change runtime type之后会出现如下的资源选择,免费用户直接选择T4 GPU即可,这也是Google为大家提供的一个免费GPU资源了。
保存之后,再次点击右上角的Connect按钮就可以连接GPU资源了,当右上角变成如下图所示的样子,说明GPU资源环境已经连接。继续点击那个T4按钮之后就会出现下图所示的环境资源情况了:
可以看到,我们就有了12.7GB的内存,GPU没有显示(实际上是15GB,后面使用了GPU资源就会显示),硬盘资源78.2GB。
3、StableDiffusion XL代码部署——安装依赖的库
在实际运行代码之前需要先安装相关的库。这里我们用HuggingFace官方提供的diffusers库来运行SD XL。所以需要安装依赖的库代码如下:
1、!pip install transformers
2、!pip install accelerate
3、!pip install safetensors
4、!pip install diffusers
上述代码需要在notebook中运行,需要点击左上角的+ Code就能出现一个Cell,然后在Cell里面输入上述代码即可,输入完毕之后Cell左侧的那个播放按钮点击一下就开始安装了。
点击完播放按钮之后就看到下方快速刷新的安装日志了~
看到左上角的绿色的勾勾就说明运行很成功,上图里面的左侧就是了。可以看到下方的日志,安装速度很快,下载速度最快都到了84MB/S,比国内的网络好多了。
4、StableDiffusion XL代码部署——从HuggingFace下载SD XL模型并加载到内存中
接下来就是加载模型了,我们需要继续在notebook的左上方+ Code点击,新建一个代码块,然后输入如下代码:
上述代码输入完毕之后点击左侧的播放按钮,就会从官方的HuggingFace上下载Stable Diffusion XL Base 1.0这个模型了。
如上图所示,直接下载和加载模型仅需要1分钟左右就行了,这里可以看到模型大小5GB多,下载速度最高接近300MB/S,所以模型就算大,直接运行下载也很快,这里的一分钟包含了从HuggingFace下载模型以及加载的GPU显存里面的时间。同时,右侧的GPU显存也出现了7.7/15.0GB,说明给我们分配了15GB显存的GPU,加载SD XL模型用了7.7GB。
5、StableDiffusion XL代码部署——用SD XL来做文本生成图片的推理
经过上述步骤,我们的模型其实就已经完成了,接下来我们要做几个SD XL模型的推理应用。第一个测试的是文本生成图片。代码如下:
注意,这里的datetime部分主要是我用来计算我们推理的时间的,大家也可以删除。上述代码运行完毕之后得到如下结果:
可以看到,我们52秒运行完毕出了一张图,然后GPU的显存也从7.7GB涨到了13.9GB,刚刚好足够!如果想继续测试其它图片,直接更改上面的prompt内容就可以,前面的代码也不用再运行了。
用Google Colab部署Stable Diffusion XL做图片生成图片
Image to Image的应用与前面类似,其中1-3步骤不变,主要是加载的模型和使用的方法差别。代码如下:
加载stable-diffusion-xl-refiner-1.0模型
总结
这篇博客主要给大家介绍了如何使用Google Colab的免费GPU资源来搭建Stable Diffusion XL应用。其实,SD XL能做的事情很多,包括Inpainting、Refining the image output等。这里大家直接看原文档即可,我们也分享一下本文的两个例子,大家直接在自己的Google Colab打开即可运行。
StableDiffusion XL的文本生成图像部署实例和StableDiffsuion XL的图像生成图像部署实例的Colab代码链接见原文末尾:
https://www.datalearner.com/blog/1051692274915130
悟空CRM产品更多介绍:www.5kcrm.com