Amazon Nova Canvas replace: Digital try-on and magnificence choices now accessible


Voiced by Polly

Have you ever ever wished you can shortly visualize how a brand new outfit may look on you earlier than making a purchase order? Or how a chunk of furnishings would look in your front room? Right now, 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 fashion choices for improved fashion consistency for text-to-image primarily based fashion prompting. These options develop Nova Canvas AI-powered picture technology capabilities making it simpler than ever to create real looking product visualizations and stylized photographs that may improve the expertise of your clients.

Let’s take a fast take 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 way of the same old 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 mechanically accessible to you.

Digital try-on
The primary thrilling new characteristic is digital try-on. With this, you’ll be able to add two photos and ask Amazon Nova Canvas to place them along with real looking outcomes. These might be photos of attire, equipment, house furnishings, and another merchandise together with clothes. For instance, you’ll be able to 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 individual carrying the garment. Let’s do this out!

My place to begin is to pick 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.

Matheus and 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 you’ll want to scale your photographs to suit these constraints if obligatory. Additionally, should 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 buildings for this API within the Amazon Nova Consumer 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 have to be transformed to Base64 strings.

import base64


def load_image_as_base64(image_path): 
   """Helper perform for making 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("individual.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 permits AI picture technology to deal with particular areas or areas of a picture whereas preserving others, much 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 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 wish to be masked. I’m utilizing "UPPER_BODY" , however you should use others comparable to "LOWER_BODY", "FULL_BODY", or "FOOTWEAR" if you wish to particularly goal the ft. Discuss 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 beneath.

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 pictures 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!

Matheus wearing AWS-branded hoodie

And similar to that, I’m the proud wearer of an AWS-branded hoodie!

Along with the "GARMENT" masks sort, you may also use the "PROMPT" or "IMAGE" masks. With "PROMPT", you additionally present the supply and reference photographs, nonetheless, 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, then you definitely 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 fashion 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 expertise to get it proper. Now, Nova Canvas comes with pre-trained types which you can apply to your photographs to get high-quality outcomes that observe the creative fashion 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 easy as passing in an additional parameter to the Nova Canvas API. Let’s strive an instance.

I wish to generate a picture of an AWS superhero utilizing the 3D animated household movie fashion. To do that, I specify a taskType of "TEXT_IMAGE" and a textToImageParams object containing two parameters: textual content and fashion. 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 fashion parameter specifies one of many predefined fashion values. I’m utilizing "3D_ANIMATED_FAMILY_FILM" right here, however you could find the complete listing within the Nova Canvas Consumer Information.

inference_params = {
   "taskType": "TEXT_IMAGE",
   "textToImageParams": {
      "textual content": "a superhero in a yellow outfit with a giant AWS brand and a cape.",
      "fashion": "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 choose for your self, however I’ve to say I’m fairly happy with the AWS superhero carrying my favourite coloration following the 3D animated household movie fashion 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 fashion attribute to generate a picture in a very totally different fashion. Let’s do this out. I set fashion to PHOTOREALISM.

inference_params = { 
   "taskType": "TEXT_IMAGE", 
   "textToImageParams": { 
      "textual content": "a superhero in a yellow outfit with a giant AWS brand and a cape.",
      "fashion": "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 magnificence 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’ll be able to go to nova.amazon.com the place you’ll be able to add a picture of an individual and a garment to visualise totally different clothes mixtures.

In case you are able to get began, please take a look at the Nova Canvas Consumer Information or go to the AWS Console.

Matheus Guimaraes | @codingmatheus