Amazon Bedrock と AWS Step Functions を使用して画像の背景を変更するプロセスを自動化する |アマゾン ウェブ サービス

Amazon Bedrock と AWS Step Functions を使用して画像の背景を変更するプロセスを自動化する |アマゾン ウェブ サービス

クリエイティブな広告、メディアとエンターテイメント、e コマース、ファッションの業界を含む多くの顧客は、多くの画像の背景を変更する必要があることがよくあります。通常、これには写真ソフトウェアを使用して各画像を手動で編集する必要があります。これには、特に大量の画像のバッチの場合、多大な労力がかかる可能性があります。しかし、 アマゾンの岩盤 および AWSステップ関数 このプロセスを大規模に自動化することが簡単になります。

Amazon Bedrock は生成 AI 基盤モデルを提供します Amazon Titan イメージ ジェネレーター G1と呼ばれる技術を使用して画像の背景を自動的に変更できます。 塗りつぶし。 Step Functions を使用すると、Amazon Bedrock や他の AWS サービスとシームレスに接続する自動化されたワークフローを作成できます。 Amazon Bedrock と Step Functions を併用すると、複数の画像の背景を自動的に変更するプロセス全体が効率化されます。

この投稿では、複数の画像の背景を変更するプロセスを簡素化するソリューションを紹介します。の機能を活用することで、 generative AI このソリューションは、Amazon Bedrock と Titan Image Generator G1 モデルを Step Functions と組み合わせて、目的の背景を持つ画像を効率的に生成します。この投稿では、ソリューションの内部動作についての洞察を提供し、この独自のカスタム ソリューションを構築するために行われた設計上の選択を理解するのに役立ちます。

ジョブの設定方法については、 GitHubリポジトリ このソリューションを導入するための詳細な手順については、を参照してください。

ソリューションの概要

特定の要素と使用される AWS サービスについて詳しく説明する前に、ソリューションが高レベルでどのように機能するかを見てみましょう。次の図は、ソリューション アーキテクチャを簡略化して示し、主要な要素を強調しています。

ソリューションアーキテクチャ

ワークフローは次の手順で構成されます。

  1. ユーザーが複数の画像を Amazon シンプル ストレージ サービス Streamlit Web アプリケーション経由で (Amazon S3) バケットにアクセスします。
  2. Streamlit Web アプリケーションは アマゾンAPIゲートウェイ REST API エンドポイントと統合 Amazonの再認識 ラベル検出 API、各画像のラベルを検出します。
  3. 送信時に、Streamlit Web アプリケーションは Amazon DynamoDB 画像の詳細を示す表。
  4. DynamoDB の更新により、 AWSラムダ Step Functions ワークフローを開始する関数。
  5. Step Functions ワークフローは、画像ごとに次のステップを実行します。
    5.1 Amazon Bedrock のリクエスト ペイロードを構築する InvokeModel APIです。
    5.2 Amazon Bedrock を呼び出す InvokeModel APIアクション。
    5.3 応答から画像を解析し、S​​3 の場所に保存します。
    5.4 DynamoDB テーブル内のイメージのステータスを更新します。
  6. Step Functions ワークフローは、Lambda 関数を呼び出してステータス レポートを生成します。
  7. ワークフローは次を使用して電子メールを送信します Amazon シンプル通知サービス (AmazonSNS)。

次のスクリーンショットに示すように、Streamlit Web アプリケーションを使用すると、画像をアップロードし、テキスト プロンプトを入力して、希望の背景、ネガティブ プロンプト、画像生成のアウトペイント モードを指定できます。また、最終的に生成される画像に保持したくない、アップロードされた各画像に関連付けられた不要なラベルを表示して削除することもできます。

Streamlit Web アプリケーション

この例では、背景のプロンプトは「ロンドン都市の背景」です。自動化プロセスでは、アップロードされた元の画像に基づいて、ロンドンを背景にした新しい画像が生成されます。

生成された画像

Streamlit Web アプリケーションと画像のアップロード

Streamlit Web アプリケーションは、このソリューションのフロントエンドとして機能します。アプリケーションを不正アクセスから保護するために、アプリケーションは アマゾンコグニート ユーザープール。 APIゲートウェイは Amazon Cognito 承認者 リクエストを認証するため。 Web アプリケーションは次の手順を実行します。

  1. 選択した画像ごとに、API Gateway REST API エンドポイントを使用して Amazon Rekognition 経由でラベルを取得します。
  2. 送信時に、アプリケーションは画像を S3 バケットにアップロードします。
  3. アプリケーションは、別の API Gateway REST API エンドポイントを使用して、関連するパラメーター、イメージ名、各イメージの関連ラベルで DynamoDB テーブルを更新します。

画像処理ワークフロー

DynamoDB テーブルが更新されると、 DynamoDB ストリーム Lambda 関数をトリガーして、新しい Step Functions ワークフローを開始します。以下は、ワークフローのサンプル リクエストです。

{
  "Id": "621fa85a-38bb-4d98-a656-93bbbcf5477f",
  "S3Bucket": "<Image Bucket>",
  "InputS3Prefix": "image-files/<year>/<month>/<day>/<timestamp>",
  "OutputS3Prefix": "generated-image-files/<year>/<month>/<day>/<timestamp>",
  "StatusS3Prefix": "status-report-files/<year>/<month>/<day>/<timestamp>",
  "Prompt": "london city background",
  "NegativePrompt": "low quality, low resolution",
  "Mode": "PRECISE",
  "Images": [
    {
      "ImageName": "bus.png",
      "Labels": "Bus, Person"
    },
    {
      "ImageName": "cop.png",
      "Labels": "Person, Adult, Male, Man, Helmet, Jacket"
    },
    {
      "ImageName": "iguana-2.png",
      "Labels": "Lizard”
    },
    {
      "ImageName": "dog.png",
      "Labels": "Dog"
    }
  ]
}

その後、Step Functions ワークフローは次の 3 つのステップを実行します。

  1. すべての画像の背景を置き換えます。
  2. ステータスレポートを生成します。
  3. Amazon SNS 経由でメールを送信します。

次のスクリーンショットは、Step Functions のワークフローを示しています。

AWS Step Functions ワークフロー

各ステップを詳しく見てみましょう。

すべての画像の背景を置き換える

Step Functions は 分散マップ 各画像を並列子ワークフローで処理します。分散マップにより、高度な同時処理が可能になります。各子ワークフローには、親ワークフローとは別の独自の実行履歴があります。

Step Functions は Amazon Bedrock 向けに InvokeModel に最適化された API アクション。 API は、最大 25 MB のリクエストと応答を受け入れます。ただし、Step Functions には状態ペイロードの入出力に 256 KB の制限があります。より大きな画像をサポートするために、ソリューションでは S3 バケットを使用します。 InvokeModel API はデータを読み取り、結果を書き込みます。以下は、 InvokeModel Amazon Bedrock 統合用の API:

{
    "ModelId": "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-image-generator-v1",
    "ContentType": "application/json",
    "Input": {  
        "S3Uri": “s3://<Image Bucket>/image-files/<year>/<month>/<day>/<timestamp>/<Image name>.json",
    },  
    "Output": {  
        "S3Uri": “s3://<Image Bucket>/generated-image-files/<year>/<month>/<day>/<timestamp>/<Image name>.json”
    } 
}

  Input S3Uri パラメータは、入力データを取得するソースの場所を指定します。の Output S3Uri パラメータにはAPIレスポンスの書き込み先を指定します。

Lambda 関数は、リクエストのペイロードを指定された場所に JSON ファイルとして保存します。 Input S3Uri 位置。 NS InvokeModel API はこの入力ペイロードを使用して、指定された背景を持つ画像を生成します。

{
    "taskType": "OUTPAINTING",
    "outPaintingParams": {
        "text": "london city background",
        "negativeText": "low quality, low resolution",        
        "image": "<base64-encoded string>",                         
        "maskPrompt": "Bus",                      
        "maskImage": "base64-encoded string",                             
        "outPaintingMode": "DEFAULT | PRECISE"                 
    },                                                 
    "imageGenerationConfig": {
        "numberOfImages": 1,
        "quality": "premium",
        "height": 1024,
        "width": 1024,
        "cfgScale": 8.0
    }
}

Titan Image Generator G1 モデルは、イメージ生成用に次のパラメーターをサポートしています。

  • タスクタイプ – 画像の背景を置き換えるアウトペイント方法を指定します。
  • 클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다. – 背景を定義するためのテキスト プロンプト。
  • ネガティブテキスト – 画像に含めないものを定義するためのテキスト プロンプト。
  • マスクプロンプト – マスクを定義するテキスト プロンプト。これは、最終的に生成されるイメージに保持したいラベルに対応します。
  • マスク画像 – Base64 でエンコードされた JPEG または PNG 画像。
  • アウトペイントモード – マスク内のピクセルの変更を許可するかどうかを指定します。 DEFAULT では、再構築された背景との一貫性を保つために、マスク内の画像を変更できます。 PRECISE は、マスク内の画像の変更を防ぎます。
  • 画像の数 – 生成する画像の数。
  • 品質 – 生成された画像の品質: standard or premium.
  • cfgスケール – 生成されたイメージがプロンプトにどれだけ強く従うかを指定します。
  • 高さ – 画像の高さ (ピクセル単位)。
  • – 画像の幅 (ピクセル単位)。

アマゾンの岩盤 InvokeModel API は、エンコードされた画像を含む応答を生成します。 Output S3Uri 位置。別の Lambda 関数は、応答から画像を解析し、base64 からデコードして、画像ファイルを次の場所に保存します。 s3://<Image Bucket>/generated-image-file/<year>/<month>/<day>/<timestamp>/.

最後に、子ワークフローはイメージ生成ステータスで DynamoDB テーブルを更新し、次のいずれかにマークします。 成功した or Failed:、次のような詳細を含みます。 ImageName, Cause, Error, Status.

ステータスレポートを生成する

イメージ生成プロセスの後、Lambda 関数は DynamoDB からステータスの詳細を取得します。これらの詳細を動的にコンパイルして、JSON 形式の包括的なステータス レポートを作成します。次に、生成されたステータス レポートを JSON ファイルとして次の場所に保存します。 s3://<Image Bucket>/status-report-files/<year>/<month>/<day>/<timestamp>/。 ITOps チームは、このレポートを既存の通知システムと統合して、画像処理が正常に完了したかどうかを追跡できます。ビジネス ユーザーの場合は、これをさらに拡張して CSV 形式でレポートを生成できます。

Amazon SNS 経由でメールを送信する

Step Functions は、Amazon SNS API アクションを呼び出して E メールを送信します。このメールには、ステータス レポートや最終イメージ ファイルの S3 の場所などの詳細が含まれています。以下は通知メールのサンプルです。

通知メール

まとめ

この投稿では、Amazon Bedrock と Step Functions を使用して大規模に画像の背景を変更する自動化を実証するサンプル ソリューションの概要を説明しました。ソリューションの各要素についても詳しく説明しました。 Amazon Bedrock、Distributed Map、Titan Image Generator G1 モデルとの Step Functions の最適化された統合を使用することで、このソリューションは画像の背景を並行して効率的に置き換え、生産性とスケーラビリティを向上させます。

ソリューションを展開するには、次の手順を参照してください。 GitHubリポジトリ.

リソース

Amazon Bedrock の詳細については、次のリソースを参照してください。

Titan Image Generator G1 モデルの詳細については、次のリソースを参照してください。

Step Functions で Amazon Bedrock を使用する方法の詳細については、次のリソースを参照してください。


著者について

Amazon Bedrock と AWS Step Functions を使用して画像の背景を変更するプロセスを自動化する |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。チェタン・マクヴァナ アマゾン ウェブ サービスのシニア ソリューション アーキテクトです。彼は AWS パートナーや顧客と協力して、スケーラブルなアーキテクチャを構築し、AWS サービスの導入を促進する戦略を実装するためのアーキテクチャ ガイダンスを提供しています。彼はテクノロジ愛好家であり、生成 AI、サーバーレス、DevOps に主な関心分野を持つビルダーです。仕事以外では、番組鑑賞、旅行、音楽を楽しんでいます。 

タイムスタンプ:

より多くの AWS機械学習