Invocar un modelo basado en imágenes en SageMaker

En este tema, se describe cómo invocar un modelo basado en imágenes en AWS SageMaker mediante un ejemplo que mejora la calidad de la imagen de entrada. La mejora de la calidad de imagen con aprendizaje automático suele implicar el uso de modelos de aprendizaje profundo, como las redes neuronales convolucionales (CNN), para aumentar la resolución o la calidad de las imágenes.

Nota:

La marca y el logotipo de AWS son marcas comerciales o registradas de Amazon.com, Inc. y se utilizan únicamente con fines de identificación.

Para mejorar la calidad de imagen y transformar una imagen de baja resolución en una imagen de alta resolución se usa Stable Diffusion en el modelo JumpStart de Amazon AWS SageMaker. La imagen de baja resolución se codifica en un formato Base64 y se entrega al modelo para la mejora de calidad. En la siguiente imagen, se proporciona el flujo que se sigue en este proceso de mejora de calidad. Para obtener más información sobre el modelo JumpStart de AWS SageMaker, consulte AWS SageMaker InvokeEndpoint JumpStart Upscale Images y AWS SageMaker InvokeEndpoint JumpStart Upscaling. Proceso de conversión de imágenes de AWS SageMaker

Procedimiento

  1. En Control Room, haga clic en Configurar mediante la detección de puntos finales de SageMaker para obtener la lista de puntos finales. Invocar punto final de AWS SageMaker
    1. Introduzca las credenciales como se describe en AWS SageMaker: Acción de autenticación.
    2. Haga clic en la lista desplegable Región para seleccionar una región de la instancia de AWS desde la que desea obtener los puntos finales.
    3. Haga clic en Conectar.
      Se conecta a SageMaker y muestra el punto final disponible en la región seleccionada.
    4. Haga clic en un nombre de punto final que corresponda al modelo que desea utilizar y haga clic en Seleccionar. En este ejemplo, se utiliza un modelo basado en imágenes. Se utiliza un modelo preexistente y previamente entrenado, y puede ver los modelos ya desplegados navegando a Inferencia > Puntos finales. Si desea implementar un modelo de su elección, consulte AWS SageMaker Deploy models for inference y para entrenar los modelos implementados, consulte AWS SageMaker Build, Train, and Deploy models for inference. Para obtener más información sobre los modelos, haga clic en un modelo.
    5. Haga clic en Seleccionar.
      Se completa automáticamente el Nombre de punto final y la Región en la pantalla principal.
  2. Haga clic en la lista desplegable Tipo de contenido para seleccionar el tipo de carga útil de contenido que desea introducir. En este ejemplo, seleccione application/json;jpeg como tipo de carga útil.
  3. Guarde la imagen de baja resolución en una carpeta y utilice la opción Conversión Base64: Acción de codificación Base64 para convertir la imagen en un texto codificado en base64. Introduzca el texto con codificación Base64 en formato JSON como se muestra en el siguiente ejemplo:
    {
       "prompt":"a cat",
       "image":encoded_image,
       "num_inference_steps":50,
       "guidance_scale":7.5
    }
    La salida de la codificación Base64 se utiliza en la encoded_image.
  4. Introduzca Predeterminado como nombre de sesión o almacene la sesión en una variable.
  5. La respuesta JSON se guarda en una variable str-ImageBasedModelResponse.
    La respuesta JSON contiene 2 partes:
    • Imagen generada: El nodo Imagen generada contiene el binario de la imagen con calidad mejorada.
    • Indicador: El indicador de entrada. En este ejemplo, se trata de a cat.
  6. Puede utilizar un decodificador de Base64 para convertir la salida en una imagen. En este bot de ejemplo, se lee cada nodo de JSON y el valor del nodo Imagen generada: pasa al decodificador para generar la imagen mejorada.