Have you ever ever wished you would shortly 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? As we speak, we’re excited to introduce a brand new digital try-on functionality in Amazon Nova Canvas that makes this doable. As well as, we’re including eight new model choices for improved model consistency for text-to-image based mostly model prompting. These options broaden Nova Canvas AI-powered picture era capabilities making it simpler than ever to create reasonable product visualizations and stylized pictures that may improve the expertise of your clients.
Let’s take a fast have a look at how one can begin utilizing these as we speak.
Getting began
The very first thing is to just remember to have entry to the Nova Canvas mannequin via the same old means. Head to the Amazon Bedrock console, select Mannequin entry and allow Amazon Nova Canvas to your account ensuring that you choose the suitable areas to 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 mechanically accessible to you.
Digital try-on
The primary thrilling new characteristic is digital try-on. With this, you may add two footage and ask Amazon Nova Canvas to place them along with reasonable outcomes. These might be footage of attire, equipment, dwelling furnishings, and another merchandise together with clothes. For instance, you may 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 that out!
My start line is to pick two pictures. I picked one in all myself in a pose that I feel would work nicely for a garments swap and an image of an AWS-branded hoodie.
Word that Nova Canvas accepts pictures containing a most of 4.1M pixels – the equal of two,048 x 2,048 – so you’ll want to scale your pictures to suit these constraints if crucial. Additionally, if you happen to’d wish to run the Python code featured on this article, guarantee you might have Python 3.9 or later put in in addition to the Python packages boto3 and pillow.
To use the hoodie to my picture, I take advantage of the Amazon Bedrock Runtime invoke API. Yow will discover 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 take advantage of 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 a couple of required parameters. Word that each pictures have to be transformed to Base64 strings.
import base64
def load_image_as_base64(image_path):
"""Helper perform for making ready picture information."""
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 pictures. This is a method that enables AI picture era to give attention to particular areas or areas of a picture whereas preserving others, just like utilizing painter’s tape to guard areas you don’t wish to paint.
You should use three totally different masking modes, which you’ll 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 wish to be masked. I’m utilizing "UPPER_BODY"
, however you need to use others comparable to "LOWER_BODY"
, "FULL_BODY"
, or "FOOTWEAR"
if you wish to particularly goal the toes. Seek advice from 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="software/json",
contentType="software/json"
)
# Extract the photographs from the response.
response_body_json = json.masses(response.get("physique").learn())
pictures = response_body_json.get("pictures", [])
# Examine 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(pictures):
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 sort, you too can use the "PROMPT"
or "IMAGE"
masks. With "PROMPT"
, you additionally present the supply and reference pictures, nonetheless, you present a pure language immediate to specify which a part of the supply picture you’d like to get replaced. That is just like how the "INPAINTING"
and "OUTPAINTING"
duties work in Nova Canvas. If you wish to use your individual picture masks, then you definately select the "IMAGE"
masks sort and supply a black-and-white picture for use as masks, the place black signifies the pixels that you simply wish to get replaced on the supply picture, and white those you wish to protect.
This functionality is particularly helpful for retailers. They will use it to assist their clients make higher buying choices by seeing how merchandise look earlier than shopping for.
Utilizing model choices
I’ve all the time puzzled what I’d appear 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 you can apply to your pictures to get high-quality outcomes that observe the creative model 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 comfortable digital portray.
Making use of them is as simple as passing in an additional parameter to the Nova Canvas API. Let’s attempt an instance.
I wish to generate a picture of an AWS superhero utilizing the 3D animated household movie model. To do that, I specify a taskType
of "TEXT_IMAGE"
and a textToImageParams
object containing two parameters: textual content
and model
. The textual content
parameter accommodates the immediate describing the picture I wish to create which on this case is “a superhero in a yellow outfit with a giant AWS brand and a cape.” The model
parameter specifies one of many predefined model 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 a giant AWS brand and a cape.",
"model": "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? Effectively, I’ll allow you to choose 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 model 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 model attribute to generate a picture in a very totally different model. Let’s do that out. I set model
to PHOTOREALISM
.
inference_params = {
"taskType": "TEXT_IMAGE",
"textToImageParams": {
"textual content": "a superhero in a yellow outfit with a giant AWS brand and a cape.",
"model": "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 may go to nova.amazon.com the place you may add a picture of an individual and a garment to visualise totally different clothes mixtures.
In case you are able to get began, please try the Nova Canvas Person Information or go to the AWS Console.