首页 > 编程语言 >在 GCP 中创建具有稳定扩散的您自己的 Midjourney 应用程序

在 GCP 中创建具有稳定扩散的您自己的 Midjourney 应用程序

时间:2022-09-05 08:46:00浏览次数:113  
标签:diffusion serving -- 应用程序 project GCP AI Midjourney id

在 GCP 中创建具有稳定扩散的您自己的 Midjourney 应用程序

到现在为止,您可能已经在互联网上看到了美丽而逼真的 AI 生成图像。任何人都可以使用提示生成这些图像,即对想要生成的图像的描述。由于运行大型模型的技术性质,大多数人使用像这样的应用程序生成这些图像 中途 或 OpenAI 的 给她 .但这一切都将改变。

感谢工作 稳定性.AI ,创建了一种新的创新生成模型,稳定扩散。它不仅可以根据提示生成非常高保真度的图像,而且还可以安装在具有 8GB 内存的 GPU 中。太棒了!最重要的是,它是开源的,任何人都可以免费使用它。

在这篇文章中,我将向您展示如何使用已加载的稳定扩散模型和前端 UI 部署后端服务,该前端 UI 可用于从 Web 浏览器输入提示并生成一些图像。让我们开始吧。

使用 Google Vertex AI 预测的后端

Vertex AI Prediction 提供针对机器学习工作负载优化的可扩展、完全托管的服务。我们将使用此服务将我们的稳定扩散模型部署为使用 Docker 和 GPU 的端点。

首先,克隆 repo https://github.com/entrpn/serving-diffusion , 并安装 Vertex AI SDK

 git 克隆[ https://github.com/entrpn/serving-diffusion](https://github.com/entrpn/serving-diffusion)  
 pip install google-cloud-aiplatform

现在我们要构建 Docker 映像。此图像包含在 txt2img 和 img2img 模式下运行稳定扩散所需的所有权重。我们将把这张图片上传到谷歌云存储库,Vertex AI 端点将能够获取它来创建我们的服务层。确保将 project_id 更改为您在 GCP 控制台中找到的项目 ID。

 码头工人建造。 -t gcr.io/{project_id}/stable-diffusion:latest  
 docker push gcr.io/{project_id}/stable-diffusion:latest

此时,如果您的本地环境有 GPU,您可以在本地进行测试。

 docker run -p 80:8080 --gpus all -e AIP_HEALTH_ROUTE=/health -e AIP_HTTP_PORT=8080 -e AIP_PREDICT_ROUTE=/predict push gcr.io/{project_id}/stable-diffusion:latest -d

request.json 看起来像。

 {“instances”:[{“prompt”:“一条穿裙子的狗”}],“参数”:{“scale”:7.5}}

还有 curl 命令。

 卷曲 -X POST -d[ @要求](https://twitter.com/request) .json -H "Content-Type: application/json; charset=utf-8" localhost/predict >> response.json

响应包含 base64 编码图像和模型元数据。

 {“预测”:  
 ["iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAEAAAElEQVR4nHz9a48kWZIsiImonmPmHpGPquqqfs3cnVncuw...",  
 "iVBORw0KGgoAAAANSUhEUgAAAGAAAAIACAIAAAB7GkOtAAEAAElEQVR4nHz9a48kWZIsiImonm..."],  
 "deployedModelId": "8397827920394977280",  
 “模型”:“项目/{project_id}/locations/us-central1/models/{model_id}”,  
 "modelDisplayName": "稳定扩散",  
 “模型版本 ID”:“1”  
 }

现在我们将图像部署到端点,我们的后端就准备好了。

 python gcp_deploy.py --project-id<your_project_id> --bucket gs://<your_bucket> /diffusion-model --image-uri gcr.io/<your_project_id> /稳定扩散:最新

此操作可能需要一些时间。另请注意,该服务使用的是 V100 GPU,每小时收费 2.8520 美元。您可以查看有关 Vertex AI 定价的更多信息 这里 .

部署模型后,您可以访问 Vertex AI Endpoints 控制台并进行尝试。

使用 Google Cloud Run 的前端

对于前端,我发现了一个很棒的开源项目, 稳定-扩散-webui , 用 建成 .我采取了一些零碎的工作并创建了回购 https://github.com/entrpn/serving-diffusion-ui

 git 克隆[ https://github.com/entrpn/serving-diffusion-ui](https://github.com/entrpn/serving-diffusion-ui)  
 pip install -r requirements.txt

访问应用程序需要身份验证。您可以删除它,或者在调用 demo.launch 的文件 webui_playground.py 中更改用户名和密码。

对于下一步,您将需要 gcloud CLI。如果你还没有,你可以从安装它 这里 .

接下来,我们将构建 Docker 映像并将其推送到 Google Cloud Repositories。不要忘记将 project_id 更改为您的。

 码头工人建造。 --build-arg port=80 --build-arg aip_endpoint_name=projects/{project_id}/locations/us-central1/endpoints/{endpoint_id} -t gcr.io/{project_id}/serving-diffusion-ui:latest  
 docker push gcr.io/{project_id}/serving-diffusion-ui:latest

最后,将应用程序部署到云端运行。

 gcloud run deploy --port 80 --region us-central1 serving-diffusion-ui --image gcr.io/{project_id}/serving-diffusion-ui:latest

完成此操作后,您将获得一个 URL,您可以从该 URL 访问该应用程序。由于 GCP 的安全策略(默认锁定所有内容),您还需要公开 URL。你可以按照这个 关联 关于如何去做。

就是这样!这种方法很简单,它提供了一个可扩展的应用程序。

最后,我确实想指出,稳定的扩散模型强化了文化偏见。尊重这个模型,不要用它来伤害他人。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/15370/27550508

标签:diffusion,serving,--,应用程序,project,GCP,AI,Midjourney,id
From: https://www.cnblogs.com/amboke/p/16656800.html

相关文章

  • 第三章-Blazor 应用程序的组件和结构
    什么是Blazor组件?简单来说,Blazor中的每个razor文件都是一个组件。就是这么简单!Blazor中的razor文件包含标记,并且在@code部分中有代码。我们在MyFirstBlazor......
  • 使用适用于初学者的 Microsoft 发布流程方法管理应用程序项目开发工作流程
    使用适用于初学者的Microsoft发布流程方法管理应用程序项目开发工作流程米开发应用程序不仅仅是编程或解决问题。作为一名优秀的开发人员,您必须考虑如何管理您的应用程......
  • ASP.NET Core 实战-2.你的第一个应用程序
    ASP.NETCore应用程序的简要概述假设您要创建一个Web应用程序来显示有关您公司的信息。您可以创建一个简单的ASP.NETCore应用程序来实现这一点;然后,稍后,您可以为您......
  • 如何在 Heroku React 应用程序中访问 API 密钥
    如何在HerokuReact应用程序中访问API密钥ImagebyMasterTux,PixaBay.com,licensedunderCC0所以你花了几个小时在你的新React应用程序上工作,你已经完成了He......
  • 如何防止 Mac 意外关闭应用程序?
    在Mac上使用键盘快捷键的用户可能不小心关闭了某个应用程序,与Command+Q键一起关闭大多数应用程序。在每个应用程序的基础上更改这些快捷方式,以免意外关闭它们。为了......
  • 使用 Python 进行 A/B 测试应用程序
    使用Python进行A/B测试应用程序https://www.reliablesoft.net/ab-testing-principles-optimize-your-marketing-and-skyrocket-conversions/什么是A/B测试?A/B......
  • Electron学习(四)之应用程序打包
    写在前面人真的是会变得越来越懒的,也正是人的惰性吧,真的是很讽刺。关于这个应用程序的开发,断更了很久,但是代码部分还算没落下吧,终于在周一、周二终把这个应用程序写完了......
  • 创建 Flask Web 应用程序简介
    创建FlaskWeb应用程序简介安装Flask和开发原型FlaskWeb应用程序的方法Photoby邮件黑猩猩on不飞溅Flask是一个PythonWeb框架。它是一个流行的轻量级......
  • 在 React 应用程序中使用 Moralis 的 Web3 身份验证
    在React应用程序中使用Moralis的Web3身份验证Web3身份验证在构建时非常重要去中心化应用(dApp)。因此,区块链开发人员必须知道如何构建Web3登录。我们将使用领先......
  • 桌面应用程序Exe 是带有WinForm界面的。
    作者:小辣椒高效Office链接:https://www.zhihu.com/question/547458931/answer/2617110629来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。......