广告公司可以使用生成式 AI 和文字转图像根基模型,制作创新的广告素材和内容。在这篇文章中,我们将演示如何使用 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 从现有的基本图像生成新图像。
这是一项完全托管式服务,用于大规模构建、训练和部署[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)模型。采用此解决方案,企业无论规模如何,都可以比以往更快地制作新的广告素材,而且大幅降低成本。这样,您便能够以低成本和高速度,为企业制作新的定制广告素材内容。
### **解决方案概览**
想象这样一个场景:一家全球汽车公司需要为其即将发布的新车型制作新的营销材料,为此聘请了一家广告公司,该公司以向拥有强大品牌资产的客户提供广告解决方案而闻名。这家汽车制造商在寻找低成本的广告素材,以便在保持汽车制造商品牌形象的同时,使用不同的位置、颜色和视角来展示该车型。凭借先进技术的强大功能,广告公司可以在其安全的亚马逊云科技环境中,使用生成式 AI 模型为客户提供支持。
该解决方案是使用生成式 AI 以及 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 中的文字转图像模型开发的。SageMaker 是一项完全托管式[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)(ML)服务,可针对任何使用场景,使用完全托管的基础设施、工具和工作流,轻松地构建、训练和部署[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)模型。Stable Diffusion 是 Stability AI 推出的文本到图像根基模型,用于支持图像生成流程。Diffusers 是预先训练的模型,通过 Stable Diffusion 使用现有图像,根据提示生成新图像。将 Stable Diffusion 与 ControlNet 等 Diffusers 结合使用,可以利用现有的品牌特定内容开发出炫目的版本。在亚马逊云科技中使用 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 开发解决方案的主要好处是:
##### **私密性**
将数据存储在 [Amazon Simple Storage Service](https://aws.amazon.com/cn/s3/?trk=cndc-detail)([Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail))中并使用 SageMaker 托管模型,这样您就可以遵循亚马逊云科技账户中的安全最佳实践,同时不对外公开资产。
##### **可拓展性**
将 Stable Diffusion 模型部署作为 SageMaker 端点时,允许您配置实例大小和实例数量,从而实现可扩展性。SageMaker 端点还具备自动扩缩功能和高可用性。
##### **灵活性**
在创建和部署端点时,可以通过 SageMaker 灵活选择 GPU 实例类型。此外,在业务需求发生变化时,可以毫不费力地更改 SageMaker 端点后面的实例。亚马逊云科技还开发了硬件和芯片,为生成式 AI 使用 Amzon Inferentia2,以最低的成本实现高性能的推理。
##### **快速创新**
生成式 AI 是一个快速发展的领域,采用全新方法,而且还在不断开发和发布新模型。[Amazon SageMaker JumpStart](https://aws.amazon.com/cn/sagemaker/jumpstart/?trk=cndc-detail) 定期推出新模型和根基模型。
##### **端到端集成**
利用亚马逊云科技,您能够将创作流程与任何亚马逊云科技服务集成,并开发端到端的流程,通过 Amazon Identity and Access Management(IAM)进行精细的访问控制,通过 [Amazon Simple Notification Service](https://aws.amazon.com/cn/sns/?trk=cndc-detail)([Amazon SNS](https://aws.amazon.com/cn/sns/?trk=cndc-detail))发送通知,以及使用事件驱动型计算服务 Aamzon Lambda 进行后处理。
##### **分发**
生成新素材后,使用亚马逊云科技的 [Amazon CloudFront](https://aws.amazon.com/cn/cloudfront/?trk=cndc-detail),可以通过多个区域中的全球渠道分发内容。
本文我们使用以下 GitHub 示例(https\://github.com/aws-samples/ad-creatives-and-gen-ai-stable-diffusion?trk=cndc-detail) ,该示例使用 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Studio 和根基模型(Stable Diffusion)、提示、计算机视觉技术和 SageMaker 端点,从现有图像生成新图像。下图展示了该解决方案的架构。
![image.png](https://dev-media.amazoncloud.cn/df842abfe7794ea39dff8a6e32bdfcb7_image.png "image.png")
该工作流包含以下步骤:
1. 我们将现有内容(图片、品牌风格等)安全地存储在 S3 存储桶中。
2. 在 SageMaker Studio 笔记本中,使用计算机视觉技术,将原始图像数据转换为图像,这将保留产品(汽车模型)的形状,去除颜色和背景,并生成单色的中间图像。
3. 中间图像用作 Stable Diffusion 与 ControlNet 的控制图像。
4. 我们在基于 GPU 的适宜实例大小上,从 SageMaker Jumpstart 部署 SageMaker 端点和 Stable Diffusion 文本转图像根基模型,并部署 ControlNet。
5. 使用描述新背景和汽车颜色的提示以及单色中间图像来调用 SageMaker 端点,从而生成新图像。
6. 新图像在生成后存储在 S3 存储桶中。
### **在 SageMaker 端点上部署 ControlNet**
要将模型部署到 SageMaker 端点,我们必须为每个单独的技术模型构件创建一个压缩文件,并创建 Stable Diffusion 权重、推理脚本和 NVIDIA Triton 配置文件。
在以下代码中,我们以 tar.gz 文件格式,将不同 ControlNet 技术的模型权重和 Stable Diffusion 1.5 下载到本地目录:
```
if ids =="runwayml/stable-diffusion-v1-5":
snapshot_download(ids, local_dir=str(model_tar_dir), local_dir_use_symlinks=False,ignore_patterns=unwanted_files_sd)
elif ids =="lllyasviel/sd-controlnet-canny":
snapshot_download(ids, local_dir=str(model_tar_dir), local_dir_use_symlinks=False)
```
为了创建模型管道,我们定义一个 ***inference.py*** 脚本,SageMaker 实时端点将使用该脚本,来加载和托管 Stable Diffusion 与 ControlNet tar.gz 文件。以下是 ***inference.py*** 中的代码片段,其中显示了如何加载模型以及如何调用 Canny 技术:
```
controlnet = ControlNetModel.from_pretrained(
f"{model_dir}/{control_net}",
torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32)
pipe = StableDiffusionControlNetPipeline.from_pretrained(
f"{model_dir}/sd-v1-5",
controlnet=controlnet,
torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32)
# Define technique function for Canny
image = cv2.Canny(image, low_threshold, high_threshold)
```
我们从模型 URI,使用所需的实例大小(GPU 类型)部署 SageMaker 端点:
```
huggingface_model = HuggingFaceModel(
model_data=model_s3_uri, # path to your trained sagemaker mod role=role, # iam role with permissions to create an Endpoint
py_version="py39", # python version of the DLC
image_uri=image_uri,
)
# Deploy model as SageMaker Endpoint
predictor = huggingface_model.deploy(
initial_instance_count=1,
instance_type="ml.p3.2xlarge",
)
```
### **生成新图像**
现在,端点已部署在 SageMaker 端点上,我们可以传入提示和要用作基准的原始图像。
为了定义提示,我们创建了正向提示 ***p_p*** ,这是我们希望在新图像中出现的内容;还创建了负向提示 ***n_p*** ,这是希望在新图像中避免出现的内容:
```
p_p="metal orange colored car, complete car, colour photo, outdoors in a pleasant landscape, realistic, high quality"
n_p="cropped, out of frame, worst quality, low quality, jpeg artifacts, ugly, blurry, bad anatomy, bad proportions"
```
最后,我们使用提示和源图像调用端点,以此来生成新图像:
```
request={"prompt":p_p,
"negative_prompt":n_p,
"image_uri":'s3://<bucker>/sportscar.jpeg', #existing content
"scale": 0.5,
"steps":20,
"low_threshold":100,
"high_threshold":200,
"seed": 123,
"output":"output"}
response=predictor.predict(request)
```
### **不同的 ControlNet 技术**
在本节中,我们将比较不同的 ControlNet 技术及其在所生成图像上的效果。我们通过以下原始图像,使用 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 中的 Stable Diffusion 和 ControlNet 生成新内容。
![image.png](https://dev-media.amazoncloud.cn/8c3325f42c8143c789cedd75596fa0fc_image.png "image.png")
下表显示了技术输出如何描述在原始图像中需要强调的内容。
![image.png](https://dev-media.amazoncloud.cn/c6697e6cc9a54f48ad3a3579ef52af30_image.png "image.png")
### **清理**
使用生成式 AI 生成新的广告素材后,清理所有不再使用的资源。删除 [Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail) 中的数据并停止任何 SageMaker Studio 笔记本实例,以免继续产生任何费用。如果您使用 SageMaker JumpStart 将 Stable Diffusion 部署为 SageMaker 实时端点,请通过 SageMaker 控制台或 SageMaker Studio 删除该端点。
### **总结**
在这篇文章中,我们使用 SageMaker 上的根基模型,从存储在 [Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail) 中的现有图像创建新的内容图像。借助这些技术,营销、广告和其他创意机构都能够使用生成式 AI 工具,增强其广告创意流程。要更深入地了解本演示中展示的解决方案和代码,请查看 GitHub 存储库
(https\://github.com/aws-samples/ad-creatives-and-gen-ai-stable-diffusion?trk=cndc-detail) 。
另外,有关生成式 AI、根基模型和文本转图像模型的使用场景,请参阅 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail)。
(https\://aws.amazon.com/cn/bedrock/?trk=cndc-detail)
* Original URL:
https\://aws.amazon.com/blogs/machine-learning/unlocking-creativity-how-generative-ai-and-amazon-sagemaker-help-businesses-produce-ad-creatives-for-marketing-campaigns-with-aws/?trk=cndc-detail
![33.gif](https://dev-media.amazoncloud.cn/204a66eeb8d442e3bbafc61b06b985c0_33.gif "33.gif")