Throughout AWS re:Invent 2023, we introduced the preview of Amazon Titan Picture Generator, a generative synthetic intelligence (generative AI) basis mannequin (FM) that you need to use to rapidly create and refine sensible, studio-quality pictures utilizing English pure language prompts.
I’m glad to share that Amazon Titan Picture Generator is now typically out there in Amazon Bedrock, supplying you with a simple approach to construct and scale generative AI purposes with new picture era and picture modifying capabilities, together with immediate customization of pictures.
In my earlier publish, I additionally talked about that every one pictures generated by Titan Picture Generator comprise an invisible watermark, by default, which is designed to assist scale back the unfold of misinformation by offering a mechanism to establish AI-generated pictures.
I’m excited to announce that watermark detection for Titan Picture Generator is now typically out there within the Amazon Bedrock console. Right this moment, we’re additionally introducing a brand new DetectGeneratedContent
API (preview) in Amazon Bedrock that checks for the existence of this watermark and helps you verify whether or not a picture was generated by Titan Picture Generator.
Let me present you the best way to get began with these new capabilities.
Immediate picture customization utilizing Amazon Titan Picture Generator
Now you can generate new pictures of a topic by offering as much as 5 reference pictures. You’ll be able to create the topic in numerous scenes whereas preserving its key options, switch the fashion from the reference pictures to new pictures, or combine kinds from a number of reference pictures. All this may be carried out with out extra immediate engineering or fine-tuning of the mannequin.
For this demo, I immediate Titan Picture Generator to create a picture of a “parrot consuming a banana.” Within the first try, I take advantage of Titan Picture Generator to create this new picture with out offering a reference picture.
Be aware: Within the following code examples, I’ll use the AWS SDK for Python (Boto3) to work together with Amazon Bedrock. Yow will discover extra code examples for C#/.NET, Go, Java, and PHP within the Bedrock Person Information.
import boto3
import json
bedrock_runtime = boto3.consumer(service_name="bedrock-runtime")
physique = json.dumps(
{
"taskType": "TEXT_IMAGE",
"textToImageParams": {
"textual content": "parrot consuming a banana",
},
"imageGenerationConfig": {
"numberOfImages": 1,
"high quality": "premium",
"top": 768,
"width": 1280,
"cfgScale": 10,
"seed": 42
}
}
)
response = bedrock_runtime.invoke_model(
physique=physique,
modelId="amazon.titan-image-generator-v1",
settle for="utility/json",
contentType="utility/json"
)
You’ll be able to show the generated picture utilizing the next code.
import io
import base64
from PIL import Picture
response_body = json.hundreds(response.get("physique").learn())
pictures = [
Image.open(io.BytesIO(base64.b64decode(base64_image)))
for base64_image in response_body.get("images")
]
for img in pictures:
show(img)
Right here’s the generated picture:
Then, I take advantage of the brand new immediate picture customization functionality with the identical immediate, however now additionally offering the next two reference pictures. For simpler comparability, I’ve resized the photographs, added a caption, and plotted them facet by facet.
Right here’s the code. The brand new immediate customization is out there by way of the IMAGE_VARIATION
job:
# Import reference pictures
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.learn()).decode("utf8")
with open(image_path_2, "rb") as image_file:
input_image_2 = base64.b64encode(image_file.learn()).decode("utf8")
# ImageVariationParams choices:
# textual content: Immediate to information the mannequin on the best way to generate variations
# pictures: Base64 string illustration of a reference picture, as much as 5 pictures are supported
# similarityStrength: Parameter you may tune to regulate similarity with reference picture(s)
physique = json.dumps(
{
"taskType": "IMAGE_VARIATION",
"imageVariationParams": {
"textual content": "parrot consuming a banana", # Required
"pictures": [input_image_1, input_image_2], # Required 1 to five pictures
"similarityStrength": 0.7, # Vary: 0.2 to 1.0
},
"imageGenerationConfig": {
"numberOfImages": 1,
"high quality": "premium",
"top": 768,
"width": 1280,
"cfgScale": 10,
"seed": 42
}
}
)
response = bedrock_runtime.invoke_model(
physique=physique,
modelId="amazon.titan-image-generator-v1",
settle for="utility/json",
contentType="utility/json"
)
As soon as once more, I’ve resized the generated picture, added a caption, and plotted it facet by facet with the initially generated picture.
You’ll be able to see how the parrot within the second picture that has been generated utilizing the moment picture customization functionality resembles in fashion the mixture of the offered reference pictures.
Watermark detection for Amazon Titan Picture Generator
All Amazon Titan FMs are constructed with accountable AI in thoughts. They detect and take away dangerous content material from information, reject inappropriate consumer inputs, and filter mannequin outputs. As content material creators create realistic-looking pictures with AI, it’s necessary to advertise accountable growth of this expertise and scale back the unfold of misinformation. That’s why all pictures generated by Titan Picture Generator comprise an invisible watermark, by default. Watermark detection is an revolutionary expertise, and Amazon Internet Providers (AWS) is among the many first main cloud suppliers to extensively launch built-in watermarks for AI picture outputs.
Titan Picture Generator’s new watermark detection function is a mechanism that permits you to establish pictures generated by Amazon Titan. These watermarks are designed to be tamper-resistant, serving to enhance transparency round AI-generated content material as these capabilities proceed to advance.
Watermark detection utilizing the console
Watermark detection is usually out there within the Amazon Bedrock console. You’ll be able to add a picture to detect watermarks embedded in pictures created by Titan Picture Generator, together with these generated by the bottom mannequin and any custom-made variations. For those who add a picture that was not created by Titan Picture Generator, then the mannequin will point out {that a} watermark has not been detected.
The watermark detection function additionally comes with a confidence rating. The arrogance rating represents the boldness stage in watermark detection. In some circumstances, the detection confidence could also be low if the unique picture has been modified. This new functionality permits content material creators, information organizations, danger analysts, fraud detection groups, and others to higher establish and mitigate deceptive AI-generated content material, selling transparency and accountable AI deployment throughout organizations.
Watermark detection utilizing the API (preview)
Along with watermark detection utilizing the console, we’re introducing a brand new DetectGeneratedContent
API (preview) in Amazon Bedrock that checks for the existence of this watermark and helps you verify whether or not a picture was generated by Titan Picture Generator. Let’s see how this works.
For this demo, let’s verify if the picture of the inexperienced iguana I confirmed within the Titan Picture Generator preview publish was certainly generated by the mannequin.
I outline the imports, arrange the Amazon Bedrock boto3 runtime consumer, and base64-encode the picture. Then, I name the DetectGeneratedContent
API by specifying the inspiration mannequin and offering the encoded picture.
import boto3
import json
import base64
bedrock_runtime = boto3.consumer(service_name="bedrock-runtime")
image_path = "green-iguana.png"
with open(image_path, "rb") as image_file:
input_image_iguana = image_file.learn()
response = bedrock_runtime.detect_generated_content(
foundationModelId = "amazon.titan-image-generator-v1",
content material = {
"imageContent": { "bytes": input_image_iguana }
}
)
Let’s verify the response.
response.get("detectionResult")
'GENERATED'
response.get("confidenceLevel")
'HIGH'
The response GENERATED with the boldness stage HIGH confirms that Amazon Bedrock detected a watermark generated by Titan Picture Generator.
Now, let’s verify one other picture I generated utilizing Steady Diffusion XL 1.0 on Amazon Bedrock. On this case, a “meerkat going through the sundown.”
I name the API once more, this time with the picture of the meerkat.
image_path = "meerkat.png"
with open(image_path, "rb") as image_file:
input_image_meerkat = image_file.learn()
response = bedrock_runtime.detect_generated_content(
foundationModelId = "amazon.titan-image-generator-v1",
content material = {
"imageContent": { "bytes": input_image_meerkat }
}
)
response.get("detectionResult")
'NOT_GENERATED'
And certainly, the response NOT_GENERATED tells me that there was no watermark by Titan Picture Generator detected, and subsequently, the picture more than likely wasn’t generated by the mannequin.
Utilizing Amazon Titan Picture Generator and watermark detection within the console
Right here’s a brief demo of the best way to get began with Titan Picture Generator and the brand new watermark detection function within the Amazon Bedrock console, put collectively by my colleague Nirbhay Agarwal.
Availability
Amazon Titan Picture Generator, the brand new immediate customization capabilities, and watermark detection within the Amazon Bedrock console can be found immediately within the AWS Areas US East (N. Virginia) and US West (Oregon). Verify the full Area record for future updates. The brand new DetectGeneratedContent
API in Amazon Bedrock is out there immediately in public preview within the AWS Areas US East (N. Virginia) and US West (Oregon).
Amazon Titan Picture Generator, now additionally out there in PartyRock
Titan Picture Generator is now additionally out there in PartyRock, an Amazon Bedrock playground. PartyRock offers you a no-code, AI-powered app-building expertise that doesn’t require a bank card. You need to use PartyRock to create apps that generate pictures in seconds by choosing out of your alternative of picture era fashions from Stability AI and Amazon.
Extra sources
To be taught extra concerning the Amazon Titan household of fashions, go to the Amazon Titan product web page. For pricing particulars, verify Amazon Bedrock Pricing.
Give Amazon Titan Picture Generator a strive in PartyRock or discover the mannequin’s superior picture era and modifying capabilities within the Amazon Bedrock console. Ship suggestions to AWS re:Submit for Amazon Bedrock or by way of your traditional AWS contacts.
For extra deep-dive technical content material and to interact with the generative AI Builder group, go to our generative AI house at group.aws.
— Antje