SageMaker での画像ベース モデルの呼び出し

このトピックでは、入力画像をアップスケールする例を用いて、AWS SageMaker 上で画像ベースのモデルを呼び出す方法について説明します。機械学習による画像のアップスケールでは、通常、畳み込みニューラル ネットワーク (CNN) などの深層学習モデルを使用して、画像の解像度や品質を向上させます。

注:

AWS のマークとロゴは、Amazon.com, Inc. の商標または登録商標であり、識別のみを目的として使用されています。

低解像度の画像は、Amazon AWS SageMaker JumpStart モデルで Stable Diffusion を使用して画像をアップスケールすることにより、高解像度の画像に変換されます。低解像度の画像は Base64 形式にエンコードされ、アップスケールのためにモデルに渡されます。次の画像は、このアップスケール プロセスのフローを示しています。AWS SageMaker JumpStart モデルの詳細については、「AWS SageMaker InvokeEndpoint JumpStart Upscale Images」と「AWS SageMaker InvokeEndpoint JumpStart Upscaling」を参照してください。AWS SageMaker の画像変換プロセス

手順

  1. Control Room で、[SageMaker のエンドポイント検出を使用して構成する] をクリックして、エンドポイントのリストを取得します。AWS の SageMaker エンドポイントの呼び出し
    1. AWS SageMaker: 認証アクション の説明に従って資格情報を入力します。
    2. [領域] ドロップダウンをクリックして、エンドポイントの取得元となる AWS インスタンスのリージョンを選択します。
    3. [接続] をクリックします。
      SageMaker に接続し、選択したリージョンで利用可能なエンドポイントが一覧表示されます。
    4. 使用するモデルに対応するエンドポイント名をクリックし、[選択] をクリックします。この例では、画像ベースのモデルを使用します。既存のモデルやトレーニング済みのモデルを使用し、[推論] > [エンドポイント] に移動することで、すでにデプロイされたモデルを表示できます。お好みのモデルをデプロイする場合は AWS SageMaker Deploy models for inference を、デプロイされたモデルをトレーニングする場合は AWS SageMaker Build, Train, and Deploy models for inference を参照してください。モデルの詳細について調べるには、モデルをクリックします。
    5. [選択] をクリックします。
      親画面の [エンドポイント名] と [領域] は自動入力されます。
  2. [コンテンツタイプ] ドロップダウンをクリックして、入力するコンテンツ ペイロード タイプを選択します。この例では、[application/json;jpeg] をペイロード タイプとして選択します。
  3. 低解像度の画像をフォルダーに保存し、Base64 変換を使用します。[Base64 エンコード] アクションでは、画像を Base64 エンコードされたテキストに変換します。次の例のように、Base64 エンコードされたテキストを JSON 形式で入力します。
    {
       "prompt":"a cat",
       "image":encoded_image,
       "num_inference_steps":50,
       "guidance_scale":7.5
    }
    Base64 エンコードの出力は encoded_image で使用されます。
  4. セッション名として「Default」を入力するか、セッションを変数に保存します。
  5. 応答 JSON は、変数 str-ImageBasedModelResponse に保存されます。
    応答 JSON には次の 2 つの部分があります。
    • 生成された画像: [生成された画像] ノードには、アップスケールされた画像のバイナリが含まれています。
    • プロンプト: 入力プロンプト。この例では「a cat」です。
  6. Base64 デコーダーを使用して、出力を画像に変換できます。この例の Bot では、JSON の各ノードが読み取られ、[生成された画像:] ノードの値がデコーダーに渡され、アップスケールされた画像が生成されます。