生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第1张图片

感谢各位读者对《生花妙笔信手来》系列的关注与喜爱,我们在本系列第一篇博客中介绍了如何基于 SageMaker Notebook 快速搭建托管的 AI 作画可视化环境,并收到一些积极反馈和建议,正在不断迭代当前的方案。在本文中, 我们将为大家介绍:

● 方案新增功能:ControlNet 与 Image browser 插件支持;

● 在电商/广告行业内,基于本方案新版本搭载最新视觉工具 Grounded-SAM,进行可控文图生成,加速营销素材产出;

● 本方案的常见问题与解答。

注:请参考上一篇文章基于Amaozn SageMaker Notebook快速搭建Stable Diffusion–AI作画可视化环境并部署最新版本的方案,以下内容都将在最新方案上进行介绍。我们仍然推荐您将方案部署在美东 us-east-1 区域,并根据您的需求选择 ml.g4 或 ml.g5 系列实例类型。

01

方案新增功能

1、扩展与插件

▌ 1.1 ControlNet

ControlNet 是基于 Stable Diffusion WebUI 推出的一款插件,它为文生图功能引入了新的控制方式,可以额外控制人物的姿势、景深、线稿上色等等,可以更稳定地控制输出画面。ControlNet 把每一种不同类别的输入分别训练了模型,目前公开的有下面8个。分别是:canny、depth、hed、mlsd、normal、openpose、scribble、segmentation,模型描述见下表。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第2张图片

本方案最近版本的 WebUIVersion – 0405 版本默认支持 ControlNet 插件(见本文第三部分常见问题 1),只需按照以下步骤进行模型的下载,即可即刻开始使用 ControlNet 插件。

● 在 CloudFormation-堆栈-输出中(参考上篇文章:基于Amaozn SageMaker Notebook快速搭建Stable Diffusion–AI作画可视化环境 4.3 第 12 步),找到 NotebookURL 链接,并打开 SageMaker Notebook Instance。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第3张图片

● 打开一个终端,依次点击 File->New->Terminal。

● 输入以下命令,开始下载,下载需要时间根据服务器的网络状况评估。

cd SageMaker/sd-webui
./download-controlnet-models.sh

● 等待下载完成,回到 Stable Diffusion Web UI 界面,在 ControlNet 中点击“刷新”按钮,即完成了模型下载与安装。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第4张图片

▌ 1.2 Image Browser

新增支持 Image Browser 插件,您可以方便地查看生成的历史图片,如下图位置。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第5张图片

2、区域支持

新增美西2 US West(Oregon)区域。

02

电商广告素材生成

1、背景介绍

在电商图像素材生成中,一个很常见的任务就是针对图像的某一部分进行定向修改。以往更多是需要设计师,使用专业图像编辑软件经过长时间作业才能实现。然而,根据现在的 AI 能力,我们可以更加简便地、高效地完成该任务。

在本文中,我们将为大家展示如何在生花妙笔的新版方案上使用 Stable Diffusion WebUI 和 Grounded-SAM 实现下图所示的端到端的图像编辑效果,包括:

● 无代码实现图像编辑 (手动蒙版),适合不熟悉代码开发的设计、创作人员;

● 利用代码自动实现图像编辑  (自动蒙版),适合开发人员、对 AIGC 感兴趣的爱好者。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第6张图片

2、方案模型使用

在本文中,我们会使用到下列几个模型。

▌2.1 Realistic Vision

Realistic Vision 是指生成逼真图像的模型。可以创建高度逼真不同年龄、种族、服装风格的人像,看起来就像照片一样。

Realistic Vision:

https://huggingface.co/SG161222/Realistic_Vision_V1.3/tree/main

▌2.2 ControlNet

ControlNet 是一个基于 Stable Diffusion 1.5 的预训练模型,在作者 Lvmin Zhang 的论文中,解释说 ControlNet 是通过输入条件来控制预先训练的大型扩散模型,能利用输入图片里的边缘特征、深度特征或人体姿势的骨架特征,配合文字  prompt,精确引导图像在 SD 1.5 里的生成结果。ControlNet 一共有8个模型,本文使用 Control_canny 模型。

ControlNet:

https://github.com/lllyasviel/ControlNet

▌2.3 Grounded-SAM

Grounded-Segment-Anything (Grounded-SAM) 是基于 Grounding DINO (检测器) 和 Segment Anything Model (分割器) 构建的多模态图片生成工作流,是一个热门的开源项目。Grounded-SAM 可直接搭配 Stable Diffusion 进行可控文图生成。

Grounded-Segment-Anything:

https://github.com/IDEA-Research/Grounded-Segment-Anything/tree/humanFace

Grounding DINO:

https://github.com/IDEA-Research/GroundingDINO

Segment Anything :

https://github.com/facebookresearch/segment-anything

• 2.3.1 Grounding DINO

Grounding DINO:零样本的图像检测模型,能够通过文本描述检测图中物体,生成矩形框。

Grounding DINO:

https://github.com/IDEA-Research/GroundingDINO

• 2.3.2 Segment Anything Model(SAM)

Segment Anything Model (SAM):高质量的图像分割模型,可通过辅助点和辅助框作为提示,进行图像分割。其训练集包括超过10亿张蒙版,1100万张图片,是迄今为止最大的用于图像分割的开源数据集。官方宣称, SAM 已经学会了“物体是什么”的一般性概念,因此可无需额外训练进行图片分割。

Segment Anything:

https://github.com/facebookresearch/segment-anything

3、无代码实现图像编辑(手动蒙版)

实验步骤如下:

▌3.1

读者可以点击链接下载本实验所用图片:

https://github.com/DearAmber/miaobishenghua2/blob/main/test.jpg

▌3.2

在 CloudFormation-堆栈-输出中,找到 NotebookURL 链接,并打开 SageMaker Notebook Instance。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第7张图片

▌3.3

点击 Terminal,并依次输入下面的命令,下载 Realistic Vision V1.3 模型。

cd SageMaker/
wget https://huggingface.co/SG161222/Realistic_Vision_V1.3/resolve/main/Realistic_Vision_V1.3-inpainting.ckpt
sudo mv Realistic_Vision_V1.3-inpainting.ckpt ./sd-webui/data/StableDiffusion/

左滑查看更多

上面脚本中我们使用了 HuggingFace 上的 Realistic Vision V1.3 模型。您也可以从 CIVITAI 官网上直接下载 Realistic Vision V2.0,两者的最终效果十分接近。

Realistic Vision V1.3:

https://huggingface.co/SG161222/Realistic_Vision_V1.3

Realistic Vision V2.0:

https://civitai.com/models/4201/realistic-vision-v20

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第8张图片

▌3.4

在 WebUI 中选择我们刚下载的预训练模型 Realistic Vision V1.3 作为基础模型,并选择 img2img 中的 Inpaint 功能作为我们的任务类型。所谓 Inpaint,其实是图生图任务的一个子分类,也就是通过蒙版(Mask)进行图像补全,或者是局部图像生成。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第9张图片

▌3.5

上传原图并用画笔手动画出想要编辑区域的蒙版。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第10张图片

▌3.6

按照下图配置 Inpaint 相关参数。这边我们选择只对蒙版部分进行补全生成。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第11张图片

▌3.7

上传原始图片到 ControlNet 并按照下图配置相关的参数。ControlNet 功能可以帮助加强对最终图像生成的控制力。此处我们选择 Canny 预处理器(Preprocessor),并选择对应 Canny 模型(Model)用以生成描边图,降低“Canny lower threshold”可以帮助我们保留更多原图中边缘的细节,如图所示。ControlNet 模型的安装请参考 FAQ,Canny 等模型解释请参考 ControlNet 部分中的模型释义表。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第12张图片

▌3.8

参考以下模版输入提示词,并点击生成。

Prompt = an extremely beautiful dreamy white lace cotton dress with delicate see-through sleeves, extra detailes, (high detailed skin:1.2), 8k uhd, dslr, soft lighting, high quality, film grain, Fujifilm XT3, photorealistic

Negative Prompt = (deformed iris, deformed pupils, semi-realistic, cgi, 3d, render, sketch, cartoon, drawing, anime:1.4), text, close up, cropped, out of frame, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck

19d5406c042bdde77bdb22df2abf00fc.png

▌3.9

等待生成之后我们可获得如下结果。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第13张图片

小结:上述流程虽然简单易操作,但是如果每次生成蒙版都需要手动生成会非常费时。下面我们将介绍通过代码方式进行图片编辑。

4、代码化全自动实现图像编辑(自动蒙版)

将 Grounding DINO (检测器) 和 Segment Anything Model (分割器) 这两个关键组件结合后,Grounded-SAM 即成为异常强大的视觉应用组合,可通过文本提示词 (Text Prompt) 完成 CV 语义分割。再搭配 Stable Diffusion,无疑为多模态工程化图片生成提供了更多可能性。实验步骤如下:

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第14张图片

图片来自:

https://github.com/IDEA-Research/Grounded-Segment-Anything

▌4.1

在 CloudFormation-堆栈-输出中,找到 NotebookURL 链接,并打开 SageMaker Notebook Instance。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第15张图片

▌4.2

点击 Terminal,并依次输入下面的两行命令,将代码 Clone 到本地。

cd SageMaker/
git clone https://github.com/DearAmber/miaobishenghua2.git

左滑查看更多

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第16张图片

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第17张图片

▌4.3

在左侧路径选择进入“miaobishenghua2”,并双击“g-seg-local.ipynb”文件。同时选择“conda_pytorch_p39”作为我们的环境。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第18张图片

▌4.4

顺序运行所有的代码片段。整个流程包括三个主要部分。

• 4.4.1

将展示如何使用 Grounding DINO,通过文本描述生成预测矩形框。例如这里,我们想要选择的是绿色的连衣裙,即可输入“green dress”作为提示词并得到下图。我们还可以通过调整“box_threshold”来控制识别的置信度,调整“text_threshold”来控制提示词相关性,以此对最终结果进行筛选(详见代码)。矩形框结果将作为下面分割任务的辅助提示(Prompt)。

Grounding DINO:

https://github.com/IDEA-Research/GroundingDINO

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第19张图片

我们也可以试试将提示词换成“white dress with blue patterns”,则会得到下面的矩形框。而图中最左边的裙子虽然也是白色,但是因为没有蓝色的图案因此并没有被选中。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第20张图片

• 4.4.2

将展示如何使用 Segment Anything 根据上一步的预测矩形框,生成分割蒙版。这里我们将预测框作为辅助提示输入,并通过“multimask_output=False”限定只输出一个分割蒙版(详见代码),最终将得到下图的结果。Segment Anything 本身还支持单点和多点作为辅助提示,这样我们可以在只有原图的情况下,也能快速自动化地批量生成蒙版。

Segment Anything:

https://github.com/facebookresearch/segment-anything

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第21张图片

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第22张图片

• 4.4.3

我们将展示如何使用 Stable Diffusion 的 Inpainting 模型来替换上面蒙版中的内容。我们在实验时使用了 ml.g5. 2xlarge 的实例,请根据您的实例类型来调整 os.environ["CUDA_VISIBLE_DEVICES"] = "0"。这里,我们换用 stable-diffusion-2-inpainting 模型生成了下图(详见代码)。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第23张图片

小结:基于以上方式,我们可以更轻松、更高效地实现全自动图像编辑和素材生成。在实际的生产环境中,我们往往需要更复杂的工程架构来进一步优化整个工作流。需要注意的是,此部分代码中使用的 Stable Diffusion 来自于 HuggingFace diffusers,而考虑到一般企业内部中,团队协作更紧密(设计师与技术开发),建议使用 Stable Diffusion WebUI API 来实现代码化图片生成和产出的工作流,以保证参数等信息的统一性。此方案示例可作为全自动工作流的快速验证参考。

HuggingFace diffusers:

https://github.com/huggingface/diffusers

03

常见问题

1、如何更新到方案最新版本(0405)?

安装方法请参考基于Amaozn SageMaker Notebook快速搭建Stable Diffusion–AI作画可视化环境的安装过程。WebUIVersion 默认使用 0405 版本。目前还不支持在已有环境更新,需要重新安装。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第24张图片

2、方案部署时,遇到服务限额问题如何处理?

部署本方案之前,请先在相应区域的 Service Quota 中确认 SageMaker Notebook 相应的资源额度(例如 ml.g4dn.2xlarge for notebook instance usage)已经获得提升,具体步骤参考链接:

https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html

3、如何使用从互联网下载的模型?

● 在 Cloud formation 的 Outputs 页面,打开 NotebookURL 对应的链接

● 在左侧导航栏,定位到 sd-webui/data 目录,如下图所示

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第25张图片

● 对于 Stable Diffusion 的基础模型,放在 StableDiffusion 目录

● 对于 Lora 模型,放在 Lora 目录

● 对于 ControlNet 模型,放在 ContrloNet 目录

● 用户微调(finetune)的模型,默认也放在 StableDiffusion 目录

4、如何在 Automatic 和 InvokeAI 之间

进行切换?

● 在 Cloud formation 的 Outputs 页面,打开 NotebookURL 对应的链接

● 打开一个终端,依次点击 File->New->Terminal

● 进入到如下目录

cd SageMaker/sd-webui

● 启动 Automatic WebUI

./startAuto.sh

● 启动 Invoke WebUI

./startInvoke.sh

5、关于版本管理

我们会保留最新的两个方案版本: 04050316

04

总结

本文介绍了针对上一篇系列博客方案的新增功能,如:新增支持 ControlNet 与 Image Browser 插件,新增支持美西2 US West (Oregon) 区域。并详细介绍了基于本方案及相关 SageMaker 服务,在电商广告行业下,使用 Grounded-SAM 进行营销素材生成的方法与步骤,包括:

● 通过 ControlNet 中的 Canny 模型配合 Inpaint 功能进行无代码图像编辑。

● 通过 Grounded-SAM (Grounding DINO 和 Segment Anything) 利用代码进行图像编辑。

此外,我们将会持续在“生花妙笔信手来”系列中,添加更多贴近客户场景的方案。如果您有任何相关的问题或需求,欢迎随时联系我们进一步交流。

本篇作者

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第26张图片

李雪晴

GCR AI/ML 解决方案架构师。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第27张图片

张铮

亚马逊云科技机器学习产品技术专家,负责基于亚马逊云科技加速计算和  GPU 实例的咨询和设计工作。专注于机器学习大规模模型训练和推理加速等领域,参与实施了国内多个机器学习项目的咨询与设计工作。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第28张图片

杨佳欢

亚马逊云科技 AI/ML 产品经理。专注于云计算、人工智能技术领域。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第29张图片

赫祎诺

亚马逊云科技 AI/ML 产品经理,致力于帮助客户加速云上机器学习创新之旅。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第30张图片

刘楚楚

亚马逊云科技解决方案顾问,昆士兰大学 IT 硕士,负责云计算市场探索与挖掘,为客户提供数字化转型咨询,帮助加速业务发展和创新。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第31张图片

戴怡青

亚马逊云科技解决方案顾问,曼彻斯特大学数据科学硕士,负责挖掘市场需求与热点,专注于数据科学领域,赋能和支持客户上云加速业务发展和创新。

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第32张图片

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第33张图片

听说,点完下面4个按钮

就不会碰到bug了!

生花妙笔信手来 | 基于 Amazon SageMaker 实现 AI 模特换衣_第34张图片

你可能感兴趣的:(人工智能)