基于Serverless进行AIGC绘图创作

创建应用

  1. 前往函数计算控制台
  2. 在左侧导航栏中,单击应用

image-20240612141008853

注意:如果您之前使用过应用中心,在单击应用之后出现类似于下面的页面,此时您可以单击创建应用继续流程。

img

  1. 在单击应用/创建应用之后,您可以看到应用列表。

img

  1. 应用页面,搜索并选择AI数字绘画stable-diffusion,单击立即创建

img

  1. 创建应用页面,选择直接部署。

img

  1. 此时还需要关注页面上角色名称部分,例如:

img

此时需要单击前往授权进行授权,授权完成可能会提示:

img 说明:如果您的角色名称已有相关权限,可忽略此步骤。

  1. 选择地域,应用可支持部署地域为北京、杭州、上海、深圳,请选择任意一地域。

说明:如遇部署异常,特别是AIGC公共镜像拉取耗时长/失败问题,请切换其他地域重试。

img

  1. 选择绘图类型,内置了 Stable Diffusion 1.5, 动漫风格,真人风格 类型,您可以根据需要进行选择

img

本应用模版使用Stable Diffusion 的docker镜像部署,为方便您的体验,本实验提供基于社区开源项目构建的镜像。

说明:本次实验提供的镜像是由Serverless Devs开源项目贡献者贡献的基于stable-diffusion-webui构建,仅供您体验使用。您也可以使用自己的Stable Diffusion镜像,构建方法详情请参见如何构建并使用stable-diffusion-webui-镜像

  1. 如无特殊需求,以下设置保持不变
  • 启用 WebUI 模式
  • WebUI 鉴权
  • 启用 API 模式
  • API 鉴权
  • Stable Diffusion 参数

img

  1. 完成之后,单击页面最下面的创建并部署默认环境

注意:部署应用之后会产生函数计算资源使用费用,计费情况详情请参考计费概述

img

  1. 活动应用创建提醒,阅读后,勾选“已知当前收费项”,继续部署

img

  1. 在基本信息页面,单击部署版本

说明:大约需要等待1~2分钟。

img

  1. 部署版本页面,请您耐心等待部署状态变为部署成功,在部署时您也可以查看日志观察应用部署情况。

img

  1. 检查GPU函数(sd-server)的镜像加速准备状态,函数计算提供的镜像加速能力专门为AI/GPU大镜像进行启动优化,请当镜像加速准备状态处于可用后,再开始进行函数调用。
  • 14.1 在基本信息页面,单击环境名称

img

  • 14.2 在环境详情页面的资源信息区域中,单击函数名(具体函数名根据您在创建时填写的参数生成)

img

  • 14.3 在函数sd-server详情页面的环境信息区域,检查镜像加速准备状态,请您耐心等待镜像加速准备状态变为可用

img

  1. 镜像加速准备状态变为可用后,返回到应用的基本信息页面。在基本信息页面,单击访问域名中的第一个域名,进入程序加载页面。请您稍等片刻,等待程序加载完成。

img

  1. 加载完成之后,返回如下页面,表示您已成功进入Stable Diffusion WebUI的操作界面。我们已为您预置了默认的提示词,协助你快速生成第一张图片

img

使用文字生成图片

生成图片的操作方式非常简单,只需要在左侧的Prompt输入框中填入提示词,之后单击右侧的Generate按钮即可。

提示词就是生成图片的依据,既可以是描述需要生成内容的词,如:girl, sunset, forest 等;也可以是用于是描述图像属性的词,如:best quality, beautiful, masterpiece 等。我们甚至可以通过提示词选择图片生成的视角、光线、画风;人物的姿势、着装、表情;背景的内容等。

我们建议您加上画风描述词,让您的图片更加美观,如:Cyberpunk(赛博朋克),shinkai makoto(新海诚),Ghibli Studio(吉卜力),Paul Gauguin(梵高)等等

img

在图片生成的过程中,我们可以在页面上看到生成过程的中间图片逐渐变得清晰。同时,也可以通过进度条直观的了解图片生成的进度和预估剩余时间。

img

示例:

文生图输入框中,填入中文/英文提示词,然后单击 生成

image-20240612143219254

您也可以选择已经配置好的提示词,生成更符合要求的图片img

生成新图

image-20240612142055707

计费参考

小明使用函数计算部署了 Stable Diffusion 大约要消耗多少函数计算资源呢?

函数计算配置:GPU 16 GB、vCPU 8 核、内存 32 GB

一、首次生成一张图所耗费的资源(冷启动):

GPU费用 >>> 16*(60+5) = 1040 GB-S

CPU费用 >>> 8*(60+5) = 520

内存费用>>> 32*(60+5) = 2080 GB-S

其中:60秒冷启动,5秒生成一张图。

二、后续生成一张图所耗费的资源(热启动):

GPU费用 >>> 16*(5) = 80 GB-S

CPU费用 >>> 8*5 = 40

内存费用 >>> 32*5 = 160 GB-S

其中:5s秒生成一张图。

三、假如小明0元购买了免费试用包,或老客专享资源包

资源包额度为:

vCPU试用额度:前50万vCPU*秒vCPU资源使用免费。

内存试用额度:前100万GB*秒内存资源使用免费。

函数调用试用额度:前400万次函数调用免费。

GPU试用额度:前10万GB*秒GPU资源使用免费。

那么小明可以生成的图片数量估计为:

GPU试用额度可生成图片数量:>>> 100000/80 = 1250张

CPU试用额度可生成图片数量:>>> 500000/40 = 12500张

内存试用额度可生成图片数量:>>> 1000000/160 = 6250张

最终小明在免费使用额度,可以免费生成1250张图。

  • 注意1:当小明领取了新人函数计算资源包后,可以免费使用104分钟sd-webui,超出104分钟后将开始付费
  • 注意2:当小明无须SD-WEBUI生成图片时,请及时关闭SD-WEBUI使用界面!!!进入SD-WEBUI使用界面就会产生计费,无论是否生成图片。

释放函数资源

  1. 应用页面,找到您部署的应用,单击右侧操作列下的删除

img

  1. 删除应用对话框中,选择我一确定资源删除的风险,依旧要删除上面已选择的资源,然后单击删除应用及所选资源

img

容器服务Serverless版ASK快速入门:在线魔方应用部署和监控

部署并公开应用

本步骤指导您如何在ASK集群中快速部署一个无状态应用(Deployment),即魔方游戏,并将该应用向公网公开。关于创建Deployment的详细参数描述,请参见创建无状态工作负载Deployment

  1. 双击打开虚拟桌面的Chromium网页浏览器,在RAM用户登录框中单击下一步,复制云产品资源列表中子用户密码,粘按CTRL+V把密码粘贴到密码输区,登陆子账户(后续在远程桌面里的粘贴操作均使用CTRL + V快捷键)。
  2. 进入容器服务控制台,复制容器服务管理控制台地址,在浏览器打开新页签,粘贴并访问容器服务管理控制台。
1
https://cs.console.aliyun.com/
  1. 集群列表页面中,根据云产品资源列表中Kubernetes容器服务集群的地域和K8s集群ID信息。
img
  1. 复制集群ID信息,进入容器服务控制台,选择 ID 并粘贴复制集群ID内容,进行搜索即可找到对应的Kubernetes容器服务集群资源,单击目标集群名称

说明:您可在云产品资源列表中查看到云起实验室分配的Kubernetes容器服务集群资源。

img

  1. 在集群管理页左侧导航栏中,选择工作负载>无状态

img

  1. 无状态页面中,单击使用镜像创建

img

  1. 应用基本信息页签,设置应用名称,例如cube,单击下一步

img

  1. 容器配置页签,依次设置镜像名称镜像Tag资源限制所需资源端口,单击下一步

参数说明:

  • 镜像名称:输入下方内容。
1
registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube
  • 镜像Tag:单击选择镜像Tag选择镜像的版本。若不指定,默认为最新版。示例:1.0。
  • 所需资源:选择 CPU为1Core,内存为2GB。
  • 端口:新增一个端口,然后设置容器的端口,输入名称cube,容器端口80,协议TCP。

img

  1. 高级配置页签,单击服务(Service)右侧的创建

img

  1. 创建服务对话框中,设置服务的相关参数,单击创建,以通过该服务公开应用。

参数说明:

  • 名称:输入服务的名称。示例:cube-svc。
  • 类型:选择负载均衡>公网访问>新建SLB
  • 服务端口:设置服务端口为80。
  • 容器端口:设置服务端口为80。

img

创建完Service服务后,点击下方 创建 按钮。

img

返回如下页面,表示应用创建成功,单击查看应用详情

img

  1. 在应用详情页面,您可以查看应用的容器组、访问方式、事件、容器伸缩、历史版本、日志和触发器等信息。

img

测试应用

完成以上操作后,您已经成功搭建了在线魔方游戏。本步骤指导您如何通过服务(Service)来访问新部署的容器化应用。

  1. 切换回容器服务管理控制台页签。在左侧导航栏中,选择网络>服务,在服务列表页面,找到新创建的服务(即cube-svc),记录外部端点列的IP地址。

img

  1. 打开您本机的浏览器,在地址栏中输入并访问外部端点列的IP地址,您即可体验魔方游戏。

说明:需要在本地浏览器访问查看哦。

img

监控运用

本步骤指导您如何监控应用的运行状况,如CPU利用率、内存利用率、网络I/O压力等指标。

  1. 切换回容器服务管理控制台页签。在左侧导航栏中,选择运维管理>Prometheus监控
  2. Prometheus监控页面,单击应用监控>无状态应用监控

img

  1. 无状态应用监控页签,选择namespacedefault,选择deployment为cube

您可以查看应用的资源使用情况,包括创建应用时所设置的资源阈值,所需资源(对应图中request)。

img

  1. 无状态应用监控页签,单击集群Pod监控

img

  1. 集群Pod监控页签,选择namespace为default,选择Pod为您需要监控的Pod。

您可以查看单个Pod的资源使用情况。

img