AI 日报

Stable Diffusion 教程:如何在 GCP VM 实例上创建稳定的扩散 API




Stable Diffusion 教程:如何在 GCP VM 实例上创建稳定的扩散 API

什么是稳定扩散?

Stable Diffusion 是一种深度学习、文本到图像模型,于 2022 年发布。它主要用于生成以文本描述为条件的详细图像,但它也可以应用于其他任务,例如修复、修复和生成图像到-由文本提示引导的图像翻译。

创建 GCP 帐户

如果您还没有一个 GCP 帐户 https://cloud.google.com/free 并设置一个计费帐户,您将必须创建一个 GCP 帐户,因为在免费套餐中您无法使用 GPU。设置带有警报的预算是个好主意,因为 GPU 使用非常昂贵。

请求GPU

您需要在项目中启用 Compute Engine API。您可以转到 API 和服务页面并搜索 Compute Engine API 来完成此操作。单击 API 并单击启用。启用后,您将需要请求使用 GPU 制作虚拟机的能力。您可以通过过滤 GPU(所有区域)并请求从 0 增加到 1 在配额中找到它。您需要输入原因,这样您就可以写出您正在使用需要 GPU 的 ML 模型。批准最多可能需要一两天,所以请耐心等待。https://cloud.google.com/compute/quotas

最后,创建一个项目。你可以随心所欲地称呼它。我称之为“稳定扩散项目”。

创建虚拟机实例

转到 https://console.cloud.google.com/compute/instances 并单击创建实例。让我们命名为 stable-diffusion-instance。选择您要使用的区域。请记住,并非每个地区和区域都支持 GPU,因此您可能需要更改几次。在机器配置中选择 GPU。这取决于您和您的预算。如果你选择A100你会得到最好的性能,但它也是最贵的。我选了T4,因为我觉得够用了,一直跑的话一个月300刀左右。机器类型我选了n1-standard-4,15GB或者内存。你可以选择任何你想要的,但我建议至少 15GB 的内存。你将不得不更改引导磁盘,所以单击更改并在操作系统中查找Deep Learning Linux版本Debian 10 based Deep Learning VM with M99(当你阅读它时,可能已经有更新的版本)。如果你也想玩其他型号,你也可以在这里更改引导磁盘大小,50GB 是不够的。从那里,在“防火墙”下检查Allow HTTP trafficAllow HTTPS traffic.在“高级选项”下,在“网络”中添加一个网络标签,例如。稍后stable-diffusion-tag我们将为任何带有此标签的东西创建一个网络规则,以将其暴露给外部互联网。在 GCP 实例中的好东西,如果它没有运行你不付钱。

创建防火墙规则

转到 https://console.cloud.google.com/networking/firewalls/list 并单击创建防火墙规则。为其命名stable-diffusion-rule并在目标部分中,选择Tags并添加您之前创建的标记stable-diffusion-tag。在源 IP 范围部分中,添加0.0.0.0/0在协议和端口部分,添加tcp:5000并单击创建。

访问计算实例

最简单的方法是从控制台通过 SSH 访问它。转到 https://console.cloud.google.com/compute/instances 并单击您创建的实例。

在实例上设置稳定扩散

当您第一次登录到您的实例时,系统会要求您安装 Nvidia 驱动程序,只需键入“Y”。请记住,当您停止并再次启动 VM 时,您将必须重新安装驱动程序!

sudo /opt/deeplearning/install-driver.sh

接下来,您需要克隆两个存储库。

git clone https://github.com/replicate/cog-stable-diffusion
git clone https://github.com/replicate/cog

然后安装 (Cog)[https://github.com/replicate/cog#install] Docker 已经安装在这个 VM 上所以你只需要运行

sudo rm $(which cog)sudo curl -o /usr/local/bin/cog -L https://github.com/replicate/cog/releases/latest/download/cog_`uname -s`_`uname -m`sudo chmod +x /usr/local/bin/cog

现在构建我们的 Docker 镜像

cd cog-stable-diffusioncog build

该模型需要称重才能工作,因此我们将从 Hugging face 下载它们。如果您还没有帐户,则需要在那里创建一个帐户。https://huggingface.co/ 创建和授权令牌 https://huggingface.co/settings/tokens。复制您的身份验证令牌并使用它通过此脚本下载重量。

cog run script/download-weights 

在这些安装之后,您已经可以测试模型是否正在运行

cog predict -i prompt="A cat sitting on a table"

运行后你应该有一个output-1.png. 您可以通过终端下载它。

在您的 cog-stable-diffusion 目录中键入pwd以获取您当前的工作目录。您应该得到类似的东西/home//cog-stable-diffusion。当我们启动稳定扩散泊坞窗图像时,您必须将其添加为一个体积,以便该图像可以访问拥抱面权重。那命令是:

docker run -p 5000:5000 -v /home//cog-stable-diffusion:/src --gpus=all cog-cog-stable-diffusion

运行后,您的服务应该可以在 Internet 上访问。在计算实例列表中找到您的计算实例的外部 IP。

如何测试API?

curl http://:5000/predictions -X POST -H "Content-Type: application/json" \-d '{"input": {  "prompt": "monkey scuba diving",}}'

不幸的是,响应负载是 base64 编码的,因此您必须对其进行解码。您可以在线进行 https://codebeautify.org/base64-to-image-converter

额外的 :)

Deforum 有一个非常好的模型来创建短视频 🙂 你可以在这里查看它 https://replicate.com/deforum/deforum_stable_diffusion 如果你想你可以用同样的方法尝试它,你只需要停止当前的容器。

docker run -d -p 5000:5000 --gpus=all r8.im/deforum/deforum_stable_diffusion@sha256:e22e77495f2fb83c34d5fae2ad8ab63c0a87b6b573b6208e1535b23b89ea66d6

测试

curl http://localhost:5000/predictions -X POST -H "Content-Type: application/json" \  -d '{"input": {    "max_frames": "...",    "animation_prompts": "...",    "angle": "...",    "zoom": "...",    "translation_x": "...",    "translation_y": "...",    "color_coherence": "...",    "sampler": "...",    "fps": "...",    "seed": "..."  }}'

响应也是 base64 编码的,因此您必须将其解码为 mp4。

感谢您的阅读!– AI未来百科 ; 探索AI的边界与未来! 懂您的AI未来站