什么是稳定扩散?
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 traffic
和Allow 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 <your-hugging-face-auth-token>
在这些安装之后,您已经可以测试模型是否正在运行
cog predict -i prompt="A cat sitting on a table"
运行后你应该有一个output-1.png
. 您可以通过终端下载它。
在您的 cog-stable-diffusion 目录中键入pwd
以获取您当前的工作目录。您应该得到类似的东西/home/<your username>/cog-stable-diffusion
。当我们启动稳定扩散泊坞窗图像时,您必须将其添加为一个体积,以便该图像可以访问拥抱面权重。那命令是:
docker run -p 5000:5000 -v /home/<username>/cog-stable-diffusion:/src --gpus=all cog-cog-stable-diffusion
运行后,您的服务应该可以在 Internet 上访问。在计算实例列表中找到您的计算实例的外部 IP。
如何测试API?
curl http://<external ip>: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未来站