Invocar um modelo baseado em imagem no SageMaker

Este tópico descreve como invocar um modelo baseado em imagem no AWS SageMaker usando um exemplo que faz o upscaling da imagem de entrada. O upscaling de imagens com aprendizado de máquina geralmente envolve o uso de modelos de aprendizagem profunda, como redes neurais convolucionais (CNNs), para aumentar a resolução ou a qualidade das imagens.

Nota:

A marca e o logotipo da AWS são marcas comerciais ou marcas registradas da Amazon.com, Inc. e são usados ​​apenas para fins de identificação.

Uma imagem de baixa resolução é transformada em uma imagem de alta resolução por meio do upscaling da imagem usando difusão estável no modelo JumpStart do Amazon AWS SageMaker. A imagem de baixa resolução é codificada em um formato Base64 e é entregue ao modelo para upscaling. A imagem abaixo mostra o fluxo que é seguido nesse processo de upscaling. Para mais informações sobre o modelo JumpStart do AWS SageMaker, consulte AWS SageMaker InvokeEndpoint JumpStart Upscale Images e AWS SageMaker InvokeEndpoint JumpStart Upscaling. Processo de conversão de imagens do AWS SageMaker

Procedimento

  1. Na Control Room, clique em Configurar usando descoberta de endpoints do SageMaker para obter a lista de endpoints. AWS invoca endpoint do SageMaker
    1. Insira as credenciais conforme descrito em AWS SageMaker: Ação de autenticação.
    2. Clique no menu suspenso Região para selecionar uma região da sua instância do AWS de onde você deseja obter os endpoints.
    3. Clique em Conectar.
      Ele se conecta ao SageMaker e lista o Endpoint disponível na região selecionada.
    4. Clique em um nome de Endpoint que corresponda ao modelo que você deseja usar e clique em Selecionar. Neste exemplo, é usado um modelo baseado em imagem. Um modelo pré-existente e pré-treinado é usado, e você pode visualizar os modelos já implantados navegando até Inferência > Endpoints. Se você quiser implantar um modelo de sua escolha, consulte AWS SageMaker Deploy models for inference. Para treinar os modelos implantados, consulte AWS SageMaker Build, Train, and Deploy models for inference. Para obter mais informações sobre os modelos, clique em um modelo.
    5. Clique em Selecionar.
      Ele preenche automaticamente o Nome do endpoint e a Região na tela principal.
  2. Clique no menu suspenso Tipo de conteúdo para selecionar o tipo de carga útil de conteúdo que você deseja inserir. Neste exemplo, selecione application/json;jpeg como o tipo de carga útil.
  3. Armazene a imagem de baixa resolução em uma pasta e use a ação Conversão Base64: Codificação Base64 para converter a imagem em um texto codificado em base64. Insira o texto codificado em base64 em um formato JSON, conforme mostrado no exemplo abaixo:
    {
       "prompt":"a cat",
       "image":encoded_image,
       "num_inference_steps":50,
       "guidance_scale":7.5
    }
    A saída da codificação base64 é usada em encoded_image.
  4. Insira Padrão como o nome da sessão ou armazene a sessão em uma Variável.
  5. O JSON de resposta é armazenado em uma variável str-ImageBasedModelResponse.
    O JSON de resposta contém duas partes:
    • Imagem gerada: O nó Imagem gerada contém o binário da imagem com upscale.
    • Prompt: O prompt de entrada. Neste exemplo, é a cat.
  6. Você pode usar um decodificador de base 64 para converter a saída em uma imagem. Nesse bot de exemplo, cada nó do JSON é lido e o valor do nó Imagem gerada: é passado para o decodificador para gerar a imagem com upscale.