打开网易新闻 查看精彩图片

在Amazon Web Services re:Invent 2023期间,我们宣布预览Amazon Titan图像生成器,一个生成式人工智能(生成式AI)基础模型(FM),您可以使用它通过英语自然语言提示来快速创建和优化逼真的工作室质量图像。

我很高兴分享Amazon Titan图像生成器现已在Amazon Bedrock普遍可用,为您提供了一种简单的方式来构建和扩展生成式AI应用程序,具有新的图像生成和图像编辑功能,包括即时图像自定义。

在我之前的文章中,我还提到,默认情况下,Titan图像生成器生成的所有图像都包含一个不可见水印,旨在通过提供识别AI生成图像的机制来帮助减少虚假信息的传播。

我很高兴宣布Titan图像生成器的水印检测功能现已在Amazon Bedrock控制台普遍可用。今天,我们还在Amazon Bedrock中推出了一个新的DetectGeneratedContent API(预览版),该API可检查是否存在此水印,并帮助您确认图像是否由Titan图像生成器生成。

让我向您展示如何开始使用这些新功能。

[使用Amazon Titan图像生成器进行即时图像自定义]

您现在可以通过提供最多五个参考图像来生成主题的新图像。您可以在保留其关键特征的同时,在不同场景中创建该主题,将参考图像的风格转移到新图像,或混合多个参考图像的风格。所有这一切都可以在不进行额外的提示工程或模型微调的情况下完成。

在这个演示中,我提示Titan图像生成器创建一个”鹦鹉正在吃香蕉”的图像。在第一次尝试时,我使用Titan图像生成器创建这个新图像,而没有提供参考图像。

注意: 在以下代码示例中,我将使用Amazon Web Services SDK for Python (Boto3)来与Amazon Bedrock进行交互。您可以在Bedrock用户指南中找到用于C#/.NET、Go、Java和PHP的其他代码示例。

import boto3

import json

bedrock_runtime = boto3.client(service_name="bedrock-runtime")

body = json.dumps(

"taskType": "TEXT_IMAGE",

"textToImageParams": {

"text": "parrot eating a banana",

},

"imageGenerationConfig": {

"numberOfImages": 1,

"quality": "premium",

"height": 768,

"width": 1280,

"cfgScale": 10,

"seed": 42

response = bedrock_runtime.invoke_model(

body=body,

modelId="amazon.titan-image-generator-v1",

accept="application/json",

contentType="application/json"

Python

您可以使用以下代码显示生成的图像。

import io

import base64

from PIL import Image

response_body = json.loads(response.get("body").read())

images = [

Image.open(io.BytesIO(base64.b64decode(base64_image)))

for base64_image in response_body.get("images")

for img in images:

display(img)

Python

这是生成的图像:

打开网易新闻 查看精彩图片

然后,我使用新的即时图像自定义功能,使用相同的提示,但现在也提供以下两个参考图像。为了更容易进行比较,我已经调整了图像的大小、添加了标题并并排绘制了它们。

打开网易新闻 查看精彩图片

这是代码。新的即时自定义可通过IMAGE_VARIATION任务获得:

导入参考图像

导入参考图像

# Import reference images

image_path_1 = "parrot-cartoon.png"

image_path_2 = "bird-sketch.png"

with open(image_path_1, "rb") as image_file:

input_image_1 = base64.b64encode(image_file.read()).decode("utf8")

with open(image_path_2, "rb") as image_file:

input_image_2 = base64.b64encode(image_file.read()).decode("utf8")

# ImageVariationParams options:

# text: Prompt to guide the model on how to generate variations

# images: Base64 string representation of a reference image, up to 5 images are supported

# similarityStrength: Parameter you can tune to control similarity with reference image(s)

body = json.dumps(

"taskType": "IMAGE_VARIATION",

"imageVariationParams": {

"text": "parrot eating a banana", # Required

"images": [input_image_1, input_image_2], # Required 1 to 5 images

"similarityStrength": 0.7, # Range: 0.2 to 1.0

},

"imageGenerationConfig": {

"numberOfImages": 1,

"quality": "premium",

"height": 768,

"width": 1280,

"cfgScale": 10,

"seed": 42

response = bedrock_runtime.invoke_model(

body=body,

modelId="amazon.titan-image-generator-v1",

accept="application/json",

contentType="application/json"

Python

再次,我已经调整了生成图像的大小,添加了标题,并将其与最初生成的图像并排绘制。

打开网易新闻 查看精彩图片

您可以看到,通过使用即时图像自定义功能生成的第二张图像中的鹦鹉的风格类似于所提供的参考图像的组合。

[Amazon Titan图像生成器的水印检测]

所有Amazon TitanFM都是以负责任的AI为原则构建的。它们会从数据中检测和删除有害内容、拒绝不当的用户输入并过滤模型输出。随着内容创作者开始使用AI创建逼真的图像,促进该技术的负责任开发并减少虚假信息的传播变得非常重要。这就是为什么Titan图像生成器生成的所有图像默认都包含一个不可见水印。水印检测是一项创新技术,亚马逊网络服务(亚马逊云科技)是首批在AI图像输出中广泛发布内置水印的主要云提供商之一。

Titan图像生成器的新水印检测功能是一种机制,允许您识别由Amazon Titan生成的图像。这些水印旨在防止篡改,有助于随着这些功能不断发展,提高AI生成内容的透明度。

使用控制台进行水印检测

水印检测现已在Amazon Bedrock控制台普遍可用。您可以上传图像来检测由Titan图像生成器创建的图像(包括由基础模型和任何自定义版本生成的图像)中嵌入的水印。如果您上传的图像不是由Titan图像生成器创建的,则模型将指示未检测到水印。

水印检测功能还提供了一个置信度分数。置信度分数代表检测水印的置信度水平。在某些情况下,如果原始图像已被修改,检测置信度可能会降低。这个新功能使内容创作者、新闻机构、风险分析师、欺诈检测团队和其他人能够更好地识别和缓解误导性的AI生成内容,从而促进整个组织的透明度和负责任的AI部署。

使用API进行水印检测(预览版)

除了使用控制台进行水印检测外,我们还在Amazon Bedrock中引入了一个新的DetectGeneratedContent API(预览版),该API可检查是否存在此水印,并帮助您确认图像是否由Titan图像生成器生成。让我们看看它是如何工作的。

对于此演示,让我们检查我在Titan图像生成器预览帖子中展示的绿鬣蜥图像是否确实由该模型生成。

打开网易新闻 查看精彩图片

我定义导入、设置Amazon Bedrock boto3运行时客户端,并对图像进行base64编码。然后,我通过指定基础模型和提供编码后的图像来调用DetectGeneratedContent API。

import boto3

import json

import base64

bedrock_runtime = boto3.client(service_name="bedrock-runtime")

image_path = "green-iguana.png"

with open(image_path, "rb") as image_file:

input_image_iguana = image_file.read()

response = bedrock_runtime.detect_generated_content(

foundationModelId = "amazon.titan-image-generator-v1",

content = {

"imageContent": { "bytes": input_image_iguana }

Python

让我们检查响应。

response.get("detectionResult")

'GENERATED'

response.get("confidenceLevel")

'HIGH'

Python

响应GENERATED和置信度HIGH确认Amazon Bedrock检测到了由Titan图像生成器生成的水印。

现在,让我们检查另一张我在Amazon Bedrock上使用Stable Diffusion XL 1.0生成的图像,这是一只”面朝夕阳的狐獴”。

打开网易新闻 查看精彩图片

我再次调用API,这次使用狐獴的图像。

image_path = "meerkat.png"

with open(image_path, "rb") as image_file:

input_image_meerkat = image_file.read()

response = bedrock_runtime.detect_generated_content(

foundationModelId = "amazon.titan-image-generator-v1",

content = {

"imageContent": { "bytes": input_image_meerkat }

response.get("detectionResult")

'NOT_GENERATED'

Python

确实,响应NOT_GENERATED告诉我未检测到Titan图像生成器的水印,因此图像很可能不是由该模型生成的。

[在控制台中使用Amazon Titan图像生成器和水印检测]

这是我的同事Nirbhay Agarwal撰写的关于如何在Amazon Bedrock控制台中开始使用Titan图像生成器和新的水印检测功能的短视频演示。

[可用性]

Amazon Titan图像生成器、新的即时自定义功能以及Amazon Bedrock控制台中的水印检测现已在美国东部(弗吉尼亚北部)和美国西部(俄勒冈)亚马逊云科技区域推出。请查看完整区域列表以获取未来更新。Amazon Bedrock中的新DetectGeneratedContent API现已在美国东部(弗吉尼亚北部)和美国西部(俄勒冈)亚马逊云科技区域推出公开预览版。

Amazon Titan图像生成器现在也可在PartyRock上使用

Titan图像生成器现在也可在PartyRock上使用,这是一个Amazon Bedrock游乐场。PartyRock为您提供了一种无需编码、AI驱动的应用程序构建体验,不需要信用卡。您可以使用PartyRock创建应用程序,通过选择来自Stability AI和Amazon的各种图像生成模型,在几秒钟内生成图像。

[更多资源]

要了解有关Amazon Titan模型系列的更多信息,请访问Amazon Titan产品页面。有关定价详情,请查看Amazon Bedrock定价。

在PartyRock中试用Amazon Titan图像生成器,或在Amazon Bedrock控制台中探索其高级图像生成和编辑功能。通过Amazon Web Services re:Post for Amazon Bedrock或通过您的常用亚马逊云科技联系人发送反馈。

如需更深入的技术内容以及与生成式AI构建者社区互动,请访问我们在community.aws上的生成式AI空间。

— Antje

打开网易新闻 查看精彩图片

Antje Barth

Antje Barth

Antje Barth是亚马逊云科技的首席开发人员倡导者,专注于生成式AI。她是《O’Reilly图书》《Generative AI on 亚马逊云科技》和《Data Science on 亚马逊云科技》的合著者。Antje经常在世界各地的AI/ML会议、活动和聚会上发表演讲。她还是大数据女性(Women in Big Data)杜塞尔多夫分会的联合创始人。