基于 Amaozn SageMaker Notebook 快速搭建 Stable Diffusion–AI 作画可视化环境

机器学习
Amazon SageMaker
Amazon CloudFormation
0
0
本文主要介绍如何使用 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Notebook [机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)服务轻松托管 Stable Diffusion WebUI ,一键部署开箱即用的 AIGC 图片方向轻量级应用。通过 Amazon CloudFormation 基础设施即代码的服务,实现底层环境、AI 模型和前端 Stable Diffusion WebUI 的快速部署,帮助用户在 15\~20 分钟部署一套文生图、图生图的 AI 应用。此方案适合企业级客户对 AIGC 图片方向做前期调研和快速验证、小型团队快速搭建轻量级 AI 应用的业务场景。 **想要快速体验动手实验,可在文末扫描二维码,注册亚马逊云科技账号,免费领取 200 美元云上资源,畅快探索 AI 作画的无限魅力。** *[注]:此方案目前提供基于 Stable Diffusion 1.5 的图片生成,基于 DreamBooth 的图片训练和推理;暂不提供脚本( script )和插件( extension)的技术支持,读者可持续关注后续方案的功能迭代。* #### ***No.1*** 方案架构 ![1.png](https://dev-media.amazoncloud.cn/57589513af464d378d9db56082fcada4_1.png "1.png") #### ***No.2* 方案优势** ● 本方案使用 CloudFormation 一键部署,仅需点击几个步骤,即可快速在您的 Amazon 账户中成功部署一套 AIGC 图片方向的 web 应用环境,交互界面简洁友好,帮助用户快速体验文本生成图片、图片生成图片等 AI 服务。 ● 底层使用 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Notebook Instance 托管的 Jupyter 笔记本实例,您无需关心基础环境(如存储、网络等)的构建及底层基础设施运维。 ● 方案采用全托管的 Stable Diffusion AI 模型服务(1.5轻量版本,包含 Stable Diffusion WebUI 与 InvokeAI 两个界面),具备良好的开源项目使用体验,并支持根据您的需要安装插件以扩展使用场景(如 ControlNet )。 ● 用户可使用自带的图片数据微调模型,产出的模型可基于自动化流水线工具快速部署上线至推理节点,方便规模化的图片推理调用。 ● 本方案完全开源,用户可以在 SageMaker Notebook 中对模型和扩展(extension)定制开发,满足自身业务需求。 #### ***No.3* 方案组件** - ##### **3.1 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Notebook** [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 笔记本实例是运行 Jupyter Notebook 应用程序的[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)(ML)计算实例。SageMaker 管理实例和相关资源的创建。在您的笔记本实例中使用 Jupyter 笔记本来准备和处理数据、编写代码来训练模型、将模型部署到 SageMaker 托管,以及测试或验证您的模型。 - ##### **3.2 Stable Diffusion 模型** Stable Diffusion 是由 CompVis 、Stability AI 和 LAION 共同开发的一个文本转图像模型,它通过 LAION-5B 子集大量的 512×512 图文模型进行训练,用户只要简单的输入一段文本, Stable Diffusion 就可以迅速将其转换为图像。同样,用户也可以置入图片或视频,配合文本对其进行处理。 - ##### **3.3 用户交互界面** ###### **3.3.1 Stable Diffusion WebUI+使用示例****参****考** **Stable Diffusion WebUI** 是 Stable Diffusion 的一个浏览器交互界面,它提供了多种功能,如 txt2img、img2img 等,还包含了许多模型融合改进、图片质量修复等附加升级。通过调节不同参数可以生成不同效果,用户可以根据自己的需要和喜好进行创作。它不仅支持生成图片,使用各种各样的模型来达到你想要的效果,还能训练你自己的专属模型。 Stable Diffusion WebUI: https\://github.com/AUTOMATIC1111/stable-diffusion-webui?trk=cndc-detail 以文字生成图片为例,用户可在“txt2img”界面,使用提示词生成期望图片,步骤如下: ● 点击 “txt2img” 进入文生图界面 ● 在提示词输入框内输入提示词 ● 点击 “Generate” 按钮即可生成图片 ![2.png](https://dev-media.amazoncloud.cn/ce5d1ee479b94375951c6496de1ae119_2.png "2.png") 1、生成一对 90 年代中国情侣,尺寸 512×512 ,一次生成 4 张图: 提示词(Prompt):A pair of young Chinese lovers, wearing jackets and jeans, sitting on the roof, the background is Beijing in the 1990s, and the opposite building can be seen ![3.png](https://dev-media.amazoncloud.cn/8b040f04d6b54e05b10157fea08bad4e_3.png "3.png") 2、生成背景为雏菊的罗马士兵半身像,尺寸 512×512 ,一次生成 4 张图: 提示词(Prompt):A roman soldier with daisies in the background, bust figure ![4.png](https://dev-media.amazoncloud.cn/032dc6c7dab4458fb8f27beeb8377720_4.png "4.png") ###### **3.3.2 InvokeAI+使用示例参考** **InvokeAI** 是 Stable Diffusion 的一个实现,它从开源文本到图像以及从图像到图像生成器。它提供了一个具有各种新功能和选项的简化流程,以帮助图像生成过程。 InvokeAI: https\://github.com/invoke-ai/InvokeAI?trk=cndc-detail 提示词(Prompt):temple in ruines, forest, stairs, columns ![5.png](https://dev-media.amazoncloud.cn/2b2d81cb9c594969a59a0fe1975d00e5_5.png "5.png") 提示词(Prompt):A pair of young Chinese lovers, wearing jackets and jeans, sitting on the roof, the background is Beijing in the 1990s, and the opposite building can be seen ![6.png](https://dev-media.amazoncloud.cn/4a932c42fa82412c903ab3bf7a840455_6.png "6.png") <!--StartFragment--> ##### **3.4 方案部署** ###### **3.4.1 方案部署操作步骤** 1、登录控制台,在控制台页面右上角切换区域至 us-east-1。 ![7.png](https://dev-media.amazoncloud.cn/94840aa1d10d4476b05c756902921e0a_7.png "7.png") 2、在 Service 搜索框中输入 Cloudformation ,点击进入。 ![8.png](https://dev-media.amazoncloud.cn/3d3a76b54df0422f84732f953fb4b90c_8.png "8.png") 3、创建堆栈 -使用新资源(标准)- 上传模板文件,模板在以下链接下载: https\://xiekl.s3.cn-northwest-1.amazonaws.com.cn/sd-webui.yml?trk=cndc-detail ![640.jpg](https://dev-media.amazoncloud.cn/4a6dfff6f3ae4c5da76e1217d0477275_640.jpg "640.jpg") 4、填入堆栈名称,Instance Type 建议选择 g5.2xlarge ,磁盘 Volume 大小默认为 100G ,选择 WebUI Type ,默认是 auto 代表 Stable Diffusion WebUI,WebUI Version 选择 0316 ,点击“下一步” 。 ![10.png](https://dev-media.amazoncloud.cn/6143204f271545698b90c1c56037dd0a_10.png "10.png") 5、设置保持默认,点击“下一步”。 ![11.png](https://dev-media.amazoncloud.cn/5b9b848fef7641c2964a988c0df30e6a_11.png "11.png") 6、确认配置(维持默认即可),勾选“我确认…”,点击“提交” ,等待 15-20 分钟部署完成。 ![12.jpg](https://dev-media.amazoncloud.cn/2006551338f6468ca72d89355356f1cd_12.jpg "12.jpg") ###### **3.4.2 使用 Stable Diffusion WebUI 进行文生图** 1、创建堆栈后等待资源陆续启动(约20分钟),待堆栈状态显示为 “CREATE_COMPLETE” 后,点击“输出”。点击“键”为 “WebUI URL” 相应的“值”位置的 URL 。 ![13.jpg](https://dev-media.amazoncloud.cn/f46fe4d0bd604e1cac09d9a837d17c83_13.jpg "13.jpg") 2、进入 WebUI 界面,输入 Prompt,点击 generate 即可生成图片。 ![14.png](https://dev-media.amazoncloud.cn/7ba44b3e62dc41a48a7b8b6558e7fd4f_14.png "14.png") ###### **3.4.3 使用 Stable Diffusion WebUI 进行训练 (微调)** 下面介绍如何使用 Stable Diffusion WebUI 训练您自己的图片。 1、首先要创建一个模型,导航到 DreamBooth ⻚面。 ![15.png](https://dev-media.amazoncloud.cn/ad377c68fec845ed877d5782c5277832_15.png "15.png") 2、创建成功后,如下图所示。 ![16.png](https://dev-media.amazoncloud.cn/602f2803dc8f462abd7723da98435c6a_16.png "16.png") 3、设置训练参数,导航到 Select ⻚面,如图所示。 ![17.png](https://dev-media.amazoncloud.cn/8826e9f16731485ab09172786a408c38_17.png "17.png") 4、在 input ⻚面,设置 Setting,Basic 的参数保持默认即可,点击右侧箭。 ![18.png](https://dev-media.amazoncloud.cn/2cae339f96774306bfb3e5e702c9af2e_18.png "18.png") 5、点击 Advance 右侧箭头,展开选项卡。在 Mixed Precision 选择 fp16,Memory Attention 选择 xformers,其他选项保持默认即可,如下图所示。 ![19.png](https://dev-media.amazoncloud.cn/7cf5f495151b4223a479d964fc90eeff_19.png "19.png") 6、点击 Concepts 选项卡,在 Dataset Directory 输入实例图片所在的目录。我们事先准备了示例图片在 /data/images 中,读者也可以把自己的图像文件放在该目录中。 ![20.png](https://dev-media.amazoncloud.cn/a042621d331b40258816eca65efe5a32_20.png "20.png") 7、向下拉动滚动条,在 Instance Prompt 中输入”a photo of a zxw dog”,在 Class Prompt 中输入”a photo of dog”,其他保持默认。 ![21.png](https://dev-media.amazoncloud.cn/3a51c01c489a4fae97e6928ca69ef69f_21.png "21.png") 8、点击⻚面上方的 “Train” 按钮。 ![22.png](https://dev-media.amazoncloud.cn/51493cd0962d4cdc850858ff726eec7a_22.png "22.png") 9、观察右侧 Output 选项卡的训练进度,等待训练完成。 ![23.png](https://dev-media.amazoncloud.cn/9dbaa1c68fc64d02afc989baf0a89450_23.png "23.png") 10、训练完成后,点击刷新按钮,模型列表中将出现刚训练好的模型,选择新训练的模型。 ![24.png](https://dev-media.amazoncloud.cn/f45317b7443c479990ec61a4a853bbf1_24.png "24.png") 11、点击 txt2img ,跳转到文生图⻚面。输入 Prompt ,注意要带上 zwx 前缀,查看结果。 ![25.png](https://dev-media.amazoncloud.cn/b88320f3f1694ba8851ba9577938407c_25.png "25.png") 12、下面介绍如何用自己的图片进行训练。在 Cloudfomation 的输出中,点击 NotebookURL 链接。 ![26.jpg](https://dev-media.amazoncloud.cn/7066c0208267465a915c5745adfdd84b_26.jpg "26.jpg") 13、如下图所示,点击 sd-webui 进入到 data/images/ 文件夹。在文件上依次点击右键,删除文件。 ![27.png](https://dev-media.amazoncloud.cn/74ca2df70ef74b30aadfbb72c95d228a_27.png "27.png") 14、点击 Upload files 按钮,上传您自己的图片作为训练集。上传完成后,重复上述步骤完成训练过程。 ![28.png](https://dev-media.amazoncloud.cn/4b584cfdd2974bf2b8d0526065acf0fe_28.png "28.png") #### ***No.4* 总结** 本文简单介绍了如何使用托管的笔记本服务 SageMaker Notebook 来一键部署 Stable Diffusion WebUI ,轻松构建 AI 生成图片的界面化、快速验证环境。方案只需点击几次即可实现自动化部署,基于托管服务的特性让您无需忧心底层基础设施的搭建与运维,同时拥有良好的开源项目体验。您还可以使用自己的图片对模型进行微调,为定制特色的 AIGC 应用做好准备。 #### ***No.5* 参考资料** ● https\://docs.aws.amazon.com/sagemaker/latest/dg/nbi.html?trk=cndc-detail ● https\://jupyter-contrib-nbextensions.readthedocs.io/en/latest/?trk=cndc-detail ● https\://github.com/AbdBarho/stable-diffusion-webui-docker?trk=cndc-detail ● https\://github.com/AUTOMATIC1111/stable-diffusion-webui?trk=cndc-detail ● https\://github.com/invoke-ai/InvokeAI?trk=cndc-detail **想要快速体验动手实验,即刻扫描下方二维码,注册亚马逊云科技账号,免费领取 200 美元云上资源,畅快探索 AI 作画的无限魅力:** ![屏幕截图 2023-04-20 125611.png](https://dev-media.amazoncloud.cn/e55cc6f1586346acbb17742f809229aa_%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-04-20%20125611.png "屏幕截图 2023-04-20 125611.png") ##### **本篇作者** ![30.jpg](https://dev-media.amazoncloud.cn/aede2d4638194e62abc5b14930d3ec0b_30.jpg "30.jpg") **张铮** *亚马逊云科技[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)产品技术专家,负责基于亚马逊云科技加速计算和 GPU 实例的咨询和设计工作。专注于[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)大规模模型训练和推理加速等领域,参与实施了国内多个[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)项目的咨询与设计工作。* ![31.jpg](https://dev-media.amazoncloud.cn/cb78d7039d294d6194a154cec49f3215_31.jpg "31.jpg") **杨佳欢** *亚马逊云科技 AI/ML 产品经理。专注于云计算、人工智能技术领域。* ![32.jpg](https://dev-media.amazoncloud.cn/05c13e3caf4646d88cdb987db436b318_32.jpg "32.jpg") **赫祎诺** *亚马逊云科技 AI/ML 产品经理,致力于帮助客户加速云上[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)创新之旅。* ![33.jpg](https://dev-media.amazoncloud.cn/9bcfa1cf7f7f45f5bc068380c2ac47c4_33.jpg "33.jpg") **戴怡青** *亚马逊云科技解决方案顾问,曼彻斯特大学数据科学硕士,负责挖掘市场需求与热点,专注于数据科学领域,赋能和支持客户上云加速业务发展和创新。* ![34.jpg](https://dev-media.amazoncloud.cn/91af1d2f393a4c79838317742c399795_34.jpg "34.jpg") **刘楚楚** *亚马逊云科技解决方案顾问,昆士兰大学 IT 硕士,负责云计算市场探索与挖掘,为客户提供数字化转型咨询,帮助加速业务发展和创新。*
0
目录
关闭