AIGC (Artificial Intelligence-Generated Content) 指通过 Al 模型帮助我们生成文本、图片、视频音乐。 Stability Al 发布了 Stable Diffusion 开源预训练模型可以通过文本生成图片。本教程您将通过使用 Amazon Sagemaker 部署 Stable Diffusion 模型,并使用云中开发环境 Cloud 9 来编写、调试、部署 Web 应用代码。您可以跟随我们的操作手册,端到端地体验 AIGC。
在本手册中您将基于 Amazon SageMaker 和 Cloud 9 了解到:
使用 Amazon SageMaker Notebook 实例测试、验证 AIGC 模型
部署 AIGC 模型至 Amazon SageMaker Inference Endpoint
使用 Cloud 9 调试 Web 应用并调用 SageMaker Inference Endpoint
本手册的操作流程如下:
1. 检查 Amazon SageMaker Notebook 限额
请点击
链接
。在搜索框中输入 ml.g4dn.xlarge for notebook instance usage
若您的限额如图所示,在 ml.g4dn.xlarge for notebook instance usage 行,第二列已应用的配额值为 0,请继续以下步骤
第二步:创建 Amazon Sagemaker Notebook 实例
Amazon SageMaker Notebook 实例是运行 Jupyter Notebook 应用程序的 ML(机器学习)计算实例。SageMaker 管理实例和相关资源的创建。 您可以在您的 Notetbook 实例中使用 Jupyter Notebook 来准备和处理数据、编写代码来训练模型、或将模型部署到 SageMaker I中,以及测试或验证您的模型。
在本节中,您将开启一个 Amazon SageMaker Notebook 实例,导入用于运行本次动手训练营中的 Jupyter Notebook 代码。
1. 进入 SageMaker 服务
在控制面板查找服务处搜索 SageMaker,并点击。
Stable Diffusion 模型生成图片的过程
在 Sagemaker Notebook Instance 中运行该模型
使用 Sagemaker Notebook Instance 部署模型并进行推理
本节您将运行所有代码,代码执行过程中会依次完成 Stable Diffusion 模型相关类和函数的代码定义、推理测试,并打包代码和模型,然后部署模型至 Sagemaker 推理终端节点,全部流程预计将花费 10-15 分钟。
请点击 Cell 菜单中的“Run All”选项。
在 Notebook 代码第三节中,模型将会部署到 Amazon Sagemaker Inference Endpoint(推理终端节点),推理终端节点可以帮助您满足机器学习推理需求,并可以扩展模型部署,降低推理成本,在生产中更有效地管理模型,并减少运用负担。
您可以在代码中查看输出的终端节点名称,以及终端节点图片运行结果。
第四步:使用 Cloud9 创建前后端 AIGC Web 应用
AWS Cloud9 是一种基于云的集成开发环境 (IDE),您只需要一个浏览器,即可编写、运行和调试代码。它包括一个代码编辑器、调试程序和终端,并且预封装了适用于 JavaScript、Python、PHP 等常见编程语言的基本工具,您无需安装文件或配置开发计算机,即可开始新的项目。
在本节中,您将创建一个 Cloud9 环境并导入用于本次动手训练营的 web 应用代码。
1. 进入 Cloud9 服务
在查找服务处搜索 Cloud9,并点击进入服务面板。
cd ~/environment
wget https://seo.s3.cn-north-1.amazonaws.com.cn/aws-aigc/SampleWebApp.zip
unzip SampleWebApp.zip
Code snippet copied
解压后您将得到
SampleWebApp
文件夹。该文件夹包含以下内容:
后端代码 app.py:接收前端请求并调用 SageMaker Endpoint 将文字生成图片。
两个前端 html 文件 image.html 和 index.html。
5. 在 AWS Cloud9 上安装 Flask 和 boto3
在 Cloud9 下方的控制台中输入指令安装 Flask。
pip3 install Flask
Code snippet copied
输入指令安装 boto3。
pip3 install boto3
Code snippet copied
在左侧项目文件夹中打开 app.py。
如果您在 Notebook 部署 endpoint 的环节修改过 endpoint 名称,请在 app.py
endpoint_name = "stable-diffusion-v1-5-endpoint
" 处将名称修改为您所定义的名称,并将修改内容进行保存。如果未做任何修改,可保持默认内容不变。
点击 AWS Cloud9 上方的 Run 按钮运行代码。
为方便大家体验,本实验使用了 8080 端口,通过使用 AWS Cloud9 的 preview 功能预览网页进行体验。关于 AWS Cloud9 预览应用程序功能的详细介绍可以参考:
预览正在 AWS Cloud9 集成开发环境 (IDE) 中运行的应用程序
。
在 Web 页面可以通过自定义图片长度和宽度,以及在 Prompt 输入框处输入语句或描绘性词汇生成图片。 不同图片的语句请用分号";"间隔。
在输入语句时,您可以尽可能的完善您的语句,以便AI绘制出的图片更贴合您的预期。 比如,通过描述性词语,如 cartoon style、van gogh style、realistic 表明图片的整体风格。
如,可将长度和宽度都设置成 512,输入以下描绘性语句生成一张卡通风格的宇航员猴子图片,以及一张超级英雄的图片。
a cartoon style cute monkey wearing a space suit, star background; clear portrait of a superhero concept between spiderman and batman, cottagecore
Code snippet copied
总结与资源清理
在前面的内容中,您通过开启一个 Amazon SageMaker Notebook,导入 Jupyter Notebook 代码运行并测试了AIGC 模型。 随后将模型部署至 Amazon SageMaker Inference Endpoint,并通过在 Coud9 创建 Web 应用调用Amazon SageMaker Inference Endpoint。后续您可以进一步调优模型并进行测试,包括添加对中文语言对支持。
有关 SageMaker 的产品介绍以及有关文档可参考:
您可以通过以下信息查看更多关于 Stable Diffusion 的内容:
Stable Diffusion 最新版本
更多关于Stable Diffusion的内容请参考官方文档,如有与本文档不一致,请以官方文档内容为准。
官方文档1
官方文档2
您已经完成本教程的所有指导步骤,在这一步骤中,您将清除本教程创建的所有资源,以保证不会再产生任何费用。
如需清除本次实验开启的资源,请在控制台逐一删除 Cloud9 环境、S3 存储桶,以及 SageMaker 里创建的 Notebook,Endpoint 以及 Model 等资源,删除步骤请参考以下链接:
删除 Cloud9
删除 SageMaker 有关资源
清空 S3 桶中的模型文件
删除 S3 桶
AWS 对 Internet Explorer 的支持将于 07/31/2022 结束。受支持的浏览器包括 Chrome、Firefox、Edge 和 Safari。
了解详情 »