Have you ever ever wished you could possibly rapidly visualize how a brand new outfit may look on you earlier than making a purchase order? Or how a bit of furnishings would look in your lounge? At the moment, we’re excited to introduce a brand new digital try-on functionality in Amazon Nova Canvas that makes this attainable. As well as, we’re including eight new type choices for improved type consistency for text-to-image primarily based type prompting. These options increase Nova Canvas AI-powered picture era capabilities making it simpler than ever to create practical product visualizations and stylized photographs that may improve the expertise of your prospects.
Let’s take a fast have a look at how one can begin utilizing these at present.
Getting began
The very first thing is to just remember to have entry to the Nova Canvas mannequin by means of the standard means. Head to the Amazon Bedrock console, select Mannequin entry and allow Amazon Nova Canvas in your account ensuring that you choose the suitable areas in your workloads. If you have already got entry and have been utilizing Nova Canvas, you can begin utilizing the brand new options instantly as they’re routinely accessible to you.
Digital try-on
The primary thrilling new characteristic is digital try-on. With this, you possibly can add two footage and ask Amazon Nova Canvas to place them along with practical outcomes. These might be footage of attire, equipment, dwelling furnishings, and some other merchandise together with clothes. For instance, you possibly can present the image of a human because the supply picture and the image of a garment because the reference picture, and Amazon Nova Canvas will create a brand new picture with that very same particular person sporting the garment. Let’s do this out!
My start line is to pick out two photographs. I picked one among myself in a pose that I feel would work effectively for a garments swap and an image of an AWS-branded hoodie.
Word that Nova Canvas accepts photographs containing a most of 4.1M pixels – the equal of two,048 x 2,048 – so make sure to scale your photographs to suit these constraints if essential. Additionally, in the event you’d prefer to run the Python code featured on this article, guarantee you could have Python 3.9 or later put in in addition to the Python packages boto3 and pillow.
To use the hoodie to my photograph, I exploit the Amazon Bedrock Runtime invoke API. You’ll find full particulars on the request and response constructions for this API within the Amazon Nova Person Information. The code is easy, requiring just a few inference parameters. I exploit the brand new taskType
of "VIRTUAL_TRY_ON"
. I then specify the specified settings, together with each the supply picture and reference picture, utilizing the virtualTryOnParams
object to set just a few required parameters. Word that each photographs should be transformed to Base64 strings.
import base64
def load_image_as_base64(image_path):
"""Helper operate for getting ready picture knowledge."""
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.learn()).decode("utf-8")
inference_params = {
"taskType": "VIRTUAL_TRY_ON",
"virtualTryOnParams": {
"sourceImage": load_image_as_base64("particular person.png"),
"referenceImage": load_image_as_base64("aws-hoodie.jpg"),
"maskType": "GARMENT",
"garmentBasedMask": {"garmentClass": "UPPER_BODY"}
}
}
Nova Canvas makes use of masking to control photographs. This is a method that enables AI picture era to concentrate on particular areas or areas of a picture whereas preserving others, much like utilizing painter’s tape to guard areas you don’t need to paint.
You should utilize three totally different masking modes, which you’ll be able to select by setting maskType
to the proper worth. On this case, I’m utilizing "GARMENT"
, which requires me to specify which a part of the physique I need to be masked. I’m utilizing "UPPER_BODY"
, however you should use others equivalent to "LOWER_BODY"
, "FULL_BODY"
, or "FOOTWEAR"
if you wish to particularly goal the toes. Confer with the documentation for a full listing of choices.
I then name the invoke API, passing in these inference arguments and saving the generated picture to disk.
# Word: The inference_params variable from above is referenced under.
import base64
import io
import json
import boto3
from PIL import Picture
# Create the Bedrock Runtime shopper.
bedrock = boto3.shopper(service_name="bedrock-runtime", region_name="us-east-1")
# Put together the invocation payload.
body_json = json.dumps(inference_params, indent=2)
# Invoke Nova Canvas.
response = bedrock.invoke_model(
physique=body_json,
modelId="amazon.nova-canvas-v1:0",
settle for="utility/json",
contentType="utility/json"
)
# Extract the photographs from the response.
response_body_json = json.masses(response.get("physique").learn())
photographs = response_body_json.get("photographs", [])
# Verify for errors.
if response_body_json.get("error"):
print(response_body_json.get("error"))
# Decode every picture from Base64 and save as a PNG file.
for index, image_base64 in enumerate(photographs):
image_bytes = base64.b64decode(image_base64)
image_buffer = io.BytesIO(image_bytes)
picture = Picture.open(image_buffer)
picture.save(f"image_{index}.png")
I get a really thrilling end result!
And similar to that, I’m the proud wearer of an AWS-branded hoodie!
Along with the "GARMENT"
masks kind, it’s also possible to use the "PROMPT"
or "IMAGE"
masks. With "PROMPT"
, you additionally present the supply and reference photographs, nevertheless, you present a pure language immediate to specify which a part of the supply picture you’d like to get replaced. That is much like how the "INPAINTING"
and "OUTPAINTING"
duties work in Nova Canvas. If you wish to use your personal picture masks, you then select the "IMAGE"
masks kind and supply a black-and-white picture for use as masks, the place black signifies the pixels that you just need to get replaced on the supply picture, and white those you need to protect.
This functionality is particularly helpful for retailers. They’ll use it to assist their prospects make higher buying choices by seeing how merchandise look earlier than shopping for.
Utilizing type choices
I’ve at all times questioned what I’d seem like as an anime superhero. Beforehand, I might use Nova Canvas to control a picture of myself, however I must depend on my good immediate engineering abilities to get it proper. Now, Nova Canvas comes with pre-trained types that you could apply to your photographs to get high-quality outcomes that observe the inventive type of your alternative. There are eight accessible types together with 3D animated household movie, design sketch, flat vector illustration, graphic novel, maximalism, midcentury retro, photorealism, and tender digital portray.
Making use of them is as simple as passing in an additional parameter to the Nova Canvas API. Let’s strive an instance.
I need to generate a picture of an AWS superhero utilizing the 3D animated household movie type. To do that, I specify a taskType
of "TEXT_IMAGE"
and a textToImageParams
object containing two parameters: textual content
and type
. The textual content
parameter incorporates the immediate describing the picture I need to create which on this case is “a superhero in a yellow outfit with an enormous AWS emblem and a cape.” The type
parameter specifies one of many predefined type values. I’m utilizing "3D_ANIMATED_FAMILY_FILM"
right here, however you could find the complete listing within the Nova Canvas Person Information.
inference_params = {
"taskType": "TEXT_IMAGE",
"textToImageParams": {
"textual content": "a superhero in a yellow outfit with an enormous AWS emblem and a cape.",
"type": "3D_ANIMATED_FAMILY_FILM",
},
"imageGenerationConfig": {
"width": 1280,
"top": 720,
"seed": 321
}
}
Then, I name the invoke API simply as I did within the earlier instance. (The code has been omitted right here for brevity.) And the end result? Nicely, I’ll allow you to decide for your self, however I’ve to say I’m fairly happy with the AWS superhero sporting my favourite colour following the 3D animated household movie type precisely as I envisioned.
What’s actually cool is that I can maintain my code and immediate precisely the identical and solely change the worth of the type attribute to generate a picture in a totally totally different type. Let’s do this out. I set type
to PHOTOREALISM
.
inference_params = {
"taskType": "TEXT_IMAGE",
"textToImageParams": {
"textual content": "a superhero in a yellow outfit with an enormous AWS emblem and a cape.",
"type": "PHOTOREALISM",
},
"imageGenerationConfig": {
"width": 1280,
"top": 720,
"seed": 7
}
}
And the result’s spectacular! A photorealistic superhero precisely as I described, which is a far departure from the earlier generated cartoon and all it took was altering one line of code.
Issues to know
Availability – Digital try-on and elegance choices can be found in Amazon Nova Canvas within the US East (N. Virginia), Asia Pacific (Tokyo), and Europe (Eire). Present customers of Amazon Nova Canvas can instantly use these capabilities with out migrating to a brand new mannequin.
Pricing – See the Amazon Bedrock pricing web page for particulars on prices.
For a preview of digital try-on of clothes, you possibly can go to nova.amazon.com the place you possibly can add a picture of an individual and a garment to visualise totally different clothes combos.
If you’re able to get began, please take a look at the Nova Canvas Person Information or go to the AWS Console.