View a markdown version of this page

Stability AI Image Services - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Stability AI Image Services

Amazon Bedrock で Stability AI Image Services を使用すると、専門的なクリエイティブワークフローを加速するために設計された 13 の特殊な画像編集ツールにアクセスできます。Stability AI Image Services を使用すると、スケッチから画像を生成したり、既存の画像を再構築してスタイルを変更したり、画像内のオブジェクトを削除して置き換えたりできます。

このセクションでは、InvokeModel を使用して Stability AI Image Services に対する推論呼び出しを行う方法について説明します。このセクションでは、Python のコード例と Stability AI Image Services を使用する前と後の画像の例についても説明します。

Stability AI Image Services は、次のカテゴリで利用できます。

  • 編集 - マスクを使用したインペインティング (生成塗りつぶし) や単語を使用したインペインティングなど、AI ベースの画像編集サービス。製品配置および広告ツールと、背景の削除などの基本的なツールが含まれます。

  • コントロール - プロンプト、マップ、その他のガイドを取得することができます。これらのサービスは、ControlNets および Stable Diffusion モデル上に構築された同様のテクノロジーを使用します。

注記

Stability AI Image Service の編集または制御をサブスクライブすると、利用可能な 13 個の Stability AI Image Services すべてに自動的に登録されます。

リクエストとレスポンス

リクエスト本文は、InvokeModel へのリクエストの body フィールドに入れて渡されます。

モデル呼び出しリクエストの body フィールド

Stability AI Image Services を使用して InvokeModel 呼び出しを行うときは、本文フィールドに次のような JSON オブジェクトを入力します。

{ 'prompt': 'Create an image of a panda' }

モデル呼び出しレスポンスの body フィールド

Stability AI Image Services を使用して InvokeModel 呼び出しを行うと、レスポンスは次のようになります。

{ 'seeds': [2130420379], 'finish_reasons': [null], 'images': ['...'] }
  • seeds – (文字列) モデルの画像生成に使用されるシードのリストです。

  • finish_reasons – リクエストがフィルタリングされたかどうかを示す列挙型です。null はリクエストが成功したことを示します。現在の可能な値: "Filter reason: prompt", "Filter reason: output image", "Filter reason: input image", "Inference error", null

  • images – base64 文字列形式で生成された画像のリストです。

詳細については、https://platform.us.stability.ai/docs/api-reference#tag/v1generation を参照してください。

アップスケール

次のセクションでは、アップスケールの Stability AI Image Services について説明します。

Creative Upscale は 64 x 64 ~ 1 メガピクセルのイメージを取得し、4K 解像度にスケールアップします。このサービスは、品質を維持して多くの場合強化しながら、イメージを 20~40 倍アップスケールできます。Creative Upscale は、非常にデグレードしたイメージに最も適しており、1 メガピクセル以上の写真には適していません。

Creative Upscale には次の必須パラメータがあります。

  • prompt – 出力画像に表示する内容です。要素、色、件名を明確に定義する強力でわかりやすいプロンプトは、より良い結果につながります。特定の単語の重みを制御するには、形式 (word:weight) を使用します。ここで、word は重みを制御する単語、weight は値です。値 0 と 1.0 では単語の強調が軽減され、値 1.1 と 2 では単語 が強調されました。例えば、(青:0.3) はクリアな青い空を意味しますが、(緑:1.8) は青と緑からなるが青よりも緑が多い空を意味します。最小 0 文字、最大 10,000 文字です。

  • image ‐ (文字列) アップスケールする Base64 イメージ。画像のすべての辺を 64 ピクセル以上にする必要があります。合計ピクセル数は 4,096~1,048,576 ピクセルである必要があります。サポートされている形式: jpeg、png、webp。

以下のパラメータはオプションです。

  • 創造性 ‐ (数値) イメージをスケールアップするときにモデルがどの程度創造的であるかを示します。値を大きくすると、アップスケーリング中にイメージに詳細が追加されます。範囲は 0.1~0.5 です。デフォルト 0.3

  • negative_prompt ‐ (文字列) 出力画像に表示しない内容を説明するテキストのぼかし。これはアドバンスド機能です。最大 10,000 文字。

  • seed – (数値) 生成の「ランダム化」のガイドに使用される特定の値。(このパラメータを省略するか、0 を渡してランダムシードを使用します)。範囲は 0~4294967294 です。デフォルトは 0 です。

  • output_format ‐ (文字列) 生成された画像のコンテンツタイプを切り捨てます。列挙型: jpeg、png、webp。デフォルトは png です。

  • style_preset - 画像モデルを特定のスタイルに導きます。列挙型: 3d-model、analog-film、anime、cinematic、comic-book、digital-art、enhance、fantasy-art、isometric、line-art、low-poly、modeling-compound、neon-punk、origami、photographic、pixel-art、tile-texture。

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-creative-upscale-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "This dreamlike digital art captures a vibrant, kaleidoscopic Big Ben in London", "creativity": 0.30 } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-creative-upscale-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "This dreamlike digital art captures a vibrant, kaleidoscopic Big Ben in London", "creativity": 0.30 } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

次の表は、次のプロンプトを使用したクリエイティブアップスケールオペレーションの入出力イメージを示しています。このドリームライクなデジタルアートは、ロンドンの鮮やかで華麗なビッグベンをキャプチャします

Input

Output

照明付きクロックフェイスを備えた華麗な Gothic アーキテクチャを示す Big Ben クロックタワー。

Willemijn Doelman による「Iconic Big Ben Tower Against Cloudy Sky」。CC でライセンス付与

Big Ben の時計塔は、金色の詳細と白時計の顔を曇った空に照らしています。

Conservative Upscale は、64 x 64 ~ 1 メガピクセルの画像を取得し、4K 解像度にスケールアップします。このサービスは、すべての側面を維持しながら、イメージを 20~40 倍アップスケールできます。保守的なアップスケールはイメージへの変更を最小限に抑え、イメージを再考するために使用しないでください。

保守的なアップスケールには、次の必須パラメータがあります。

  • prompt – 出力画像に表示する内容です。要素、色、件名を明確に定義する強力でわかりやすいプロンプトは、より良い結果につながります。特定の単語の重みを制御するには、形式 (word:weight) を使用します。ここで、word は重みを制御する単語、weight は値です。値 0 と 1.0 では単語の強調が軽減され、値 1.1 と 2 では単語 が強調されました。例えば、(青:0.3) はクリアな青い空を意味しますが、(緑:1.8) は青と緑からなるが青よりも緑が多い空を意味します。最小 0 文字、最大 10,000 文字です。

  • image ‐ (文字列) スケールアップする Base64 イメージ。画像のすべての辺を 64 ピクセル以上にする必要があります。合計ピクセル数が 9,437,184 ピクセルを超えることはできません。画像のアスペクト比は 1:2.5 と 2.5:1 の間にする必要があります。サポートされている形式: jpeg、png、webp。

以下のパラメータはオプションです。

  • 創造性 ‐ (数値) イメージをスケールアップするときにモデルがどの程度創造的であるかを示します。値を大きくすると、アップスケーリング中にイメージに詳細が追加されます。範囲は 0.1~0.5 です。デフォルト 0.35

  • negative_prompt ‐ (文字列) 出力画像に表示しない内容を説明するテキストのぼかし。これはアドバンスド機能です。最大 10,000 文字。

  • seed – (数値) 生成の「ランダム化」のガイドに使用される特定の値。(このパラメータを省略するか、0 を渡してランダムシードを使用します)。範囲は 0~4294967294 です。デフォルトは 0 です。

  • output_format ‐ (文字列) 生成された画像のコンテンツタイプを切り捨てます。列挙型: jpeg、png、webp。デフォルトは png です。

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-conservative-upscale-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "This dreamlike digital art captures a vibrant, kaleidoscopic Big Ben in London", "creativity": 0.30 } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-conservative-upscale-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "This dreamlike digital art captures a vibrant, kaleidoscopic Big Ben in London", "creativity": 0.30 } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

次の表は、次のプロンプトを使用した保守的なアップスケールオペレーションの入出力イメージを示しています。このドリームライクなデジタルアートは、ロンドンの鮮やかで華麗なビッグベンをキャプチャします

Input

Output

照明付きクロックフェイスを備えた華麗な Gothic アーキテクチャを示す Big Ben クロックタワー。

Willemijn Doelman による「Iconic Big Ben Tower Against Cloudy Sky」。CC でライセンス付与

照明付きクロックフェイスを備えた華麗な Gothic アーキテクチャを示す Big Ben クロックタワー。

Fast Upscale は、予測 AI と生成 AI を使用して画像の解像度を 4 倍向上させます。この軽量で高速なサービスは、圧縮されたイメージの品質を高め、ソーシャルメディアの投稿やその他のアプリケーションに適しています。

高速アップスケールには、次の必須パラメータがあります。

  • image ‐ (文字列) スケールアップする Base64 イメージ。幅は 32~1,536 ピクセルである必要があります。高さは 32~1,536 ピクセルである必要があります。合計ピクセル数は 1,024~1,048,576 ピクセルである必要があります。サポートされている形式: jpeg、png、webp。

  • output_format ‐ (文字列) 生成された画像のコンテンツタイプを切り捨てます。列挙型: jpeg、png、webp。デフォルトは png です。

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-fast-upscale-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64 } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-fast-upscale-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64 } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

次の表は、高速アップスケールオペレーションの入力イメージと出力イメージを示しています。

Input

Output

照明付きクロックフェイスを備えた華麗な Gothic アーキテクチャを示す Big Ben クロックタワー。

Willemijn Doelman による「Iconic Big Ben Tower Against Cloudy Sky」。CC でライセンス付与

照明付きクロックフェイスを備えた華麗な Gothic アーキテクチャを示す Big Ben クロックタワー。

編集

次のセクションでは、Stability AI Image Services の編集について説明します。

インペイントは、マスク画像の内容に基づいて、指定された領域に新しいコンテンツを入力または置き換えることで、画像をインテリジェントに変更します。

インペイントの必須パラメータは次のとおりです。

  • prompt – 出力画像に表示する内容です。要素、色、件名を明確に定義する強力でわかりやすいプロンプトは、より良い結果につながります。特定の単語の重みを制御するには、形式 (word:weight) を使用します。ここで、word は重みを制御する単語、weight は値です。値 0 と 1.0 では単語の強調が軽減され、値 1.1 と 2 では単語 が強調されました。例えば、(青:0.3) はクリアな青い空を意味しますが、(緑:1.8) は青と緑からなるが青よりも緑が多い空を意味します。最小 0 文字、最大 10,000 文字です。

  • image ‐ (文字列) インペイントする Base64 画像。画像のすべての辺を 64 ピクセル以上にする必要があります。合計ピクセル数が 9,437,184 ピクセルを超えることはできません。画像のアスペクト比は 1:2.5 と 2.5:1 の間にする必要があります。サポートされている形式: jpeg、png、webp。

以下のパラメータはオプションです。

  • style_preset — (文字列) 画像モデルを特定のスタイルに導きます。列挙型: 3d-model、analog-film、anime、cinematic、comic-book、digital-art、enhance、fantasy-art、isometric、line-art、low-poly、modeling-compound、neon-punk、origami、photographic、pixel-art、tile-texture。

  • negative_prompt ‐ (文字列) 出力画像に表示しない内容を説明するテキストのぼかし。これはアドバンスド機能です。最大 10,000 文字。

  • seed – (数値) 生成の「ランダム化」のガイドに使用される特定の値。(このパラメータを省略するか、0 を渡してランダムシードを使用します)。範囲は 0~4294967294 です。デフォルトは 0 です。

  • output_format ‐ (文字列) 生成された画像のコンテンツタイプを切り捨てます。列挙型: jpeg、png、webp。デフォルトは png です。

  • mask ‐ (文字列) (このパラメータに渡される) 2 番目の画像または画像パラメータのアルファチャネルを介して、インペインティングプロセスの強度をピクセル単位で制御します。

    • Passing in a Mask - このパラメータに渡される画像は、指定されたピクセルの暗さまたは明るさに基づいてインペインティングの強度を、任意のピクセルで表す白黒画像でなければなりません。完全に黒いピクセルはインペインティング強度を表し、完全に白いピクセルは最大強度を表します。マスクのサイズが画像パラメータと異なる場合、マスクは自動的にサイズ変更されます。

    • Alpha Channel Support - 明示的なマスクを指定しない場合、画像パラメータのアルファチャネルから取得されます。透明ピクセルはインペイントされ、不透明ピクセルは保持されます。アルファチャネルを含む画像がマスクとともに指定される場合、マスクが優先されます。

  • grow_mask - マスクのエッジを、指定されたピクセル数、全方向の外側に移動します。マスクの周囲の拡張領域がぼやけ、インペイントされたコンテンツと元の画像間の遷移を滑らかにすることができます。範囲は 0~20 です。デフォルトは 5 です。インペイントされたコンテンツの周囲にシームや粗いエッジがある場合は、このパラメータを試してください。過剰に大きくすると、マスク内の細かいディテールが不明瞭になったり、近くのマスクされた領域がつながったりする可能性がある点に注意してください。

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.png" mask = "./content/mask.png" region = "us-east-1" model_id = "us.stability.stable-image-inpaint-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') with open(mask, "rb") as mask_file: mask_base64 = base64.b64encode(mask_file.read()).decode('utf-8') params = { "image": image_base64, "mask": mask_base64, "prompt": "artificer of time and space" } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.png" mask = "./content/mask.png" region = "us-east-1" model_id = "us.stability.stable-image-inpaint-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') with open(mask, "rb") as mask_file: mask_base64 = base64.b64encode(mask_file.read()).decode('utf-8') params = { "image": image_base64, "mask": mask_base64, "prompt": "artificer of time and space" } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

次の表は、インペイントオペレーションの入力画像と出力画像を示しています。

Input

マスク

Output

夜に屋外に立って街のスカイラインを背景に立っている青い3ピースのスーツを着た男性。

Stable Image Ultra によって生成された「大都市の人間」、Sanwal Yousaf によるプロンプトと編集。CC BY 4.0 でライセンス付与

夜に都市のスカイラインに対して青い要素が光る未来的な鎧を身に着けている人。

Outpaint は、任意の方向にスペースを埋めるために、イメージに追加のコンテンツを挿入します。Outpaint サービスは、イメージ内のコンテンツを拡張する他の自動または手動の試みと比較して、元のイメージが編集されたことを示す表示を最小限に抑えます。

Outpaint には次の必須パラメータがあります。

  • image ‐ (文字列) アウトペイントする Base64 イメージ。画像のすべての辺を 64 ピクセル以上にする必要があります。合計ピクセル数が 9,437,184 ピクセルを超えることはできません。画像のアスペクト比は 1:2.5 と 2.5:1 の間にする必要があります。サポートされている形式: jpeg、png、webp。

    注記

    少なくとも 1 つのアウトペイント方向 (左、右、上、下) に 0 以外の値を指定する必要があります。最高品質の結果を得るには、アウトペイント方向を選択するときに、元のイメージの構成とコンテンツを考慮してください。

以下のパラメータはオプションです。

  • prompt – 出力画像に表示する内容です。要素、色、件名を明確に定義する強力でわかりやすいプロンプトは、より良い結果につながります。特定の単語の重みを制御するには、形式 (word:weight) を使用します。ここで、word は重みを制御する単語、weight は値です。値 0 と 1.0 では単語の強調が軽減され、値 1.1 と 2 では単語 が強調されました。例えば、(青:0.3) はクリアな青い空を意味しますが、(緑:1.8) は青と緑からなるが青よりも緑が多い空を意味します。最小 0 文字、最大 10,000 文字です。

  • style_preset — (文字列) 画像モデルを特定のスタイルに導きます。列挙型: 3d-model、analog-film、anime、cinematic、comic-book、digital-art、enhance、fantasy-art、isometric、line-art、low-poly、modeling-compound、neon-punk、origami、photographic、pixel-art、tile-texture。

  • seed – (数値) 生成の「ランダム化」のガイドに使用される特定の値。(このパラメータを省略するか、0 を渡してランダムシードを使用します)。範囲は 0~4294967294 です。デフォルトは 0 です。

  • output_format ‐ (文字列) 生成された画像のコンテンツタイプを切り捨てます。列挙型: jpeg、png、webp。デフォルトは png です。

  • 創造性 ‐ (数値) イメージをアウトペイントするときにモデルがどの程度創造的であるかを示します。値を大きくすると、アウトペイント中によりクリエイティブなコンテンツがイメージに追加されます。範囲は 0.1~1.0 です。デフォルトは 0.5 です。

  • left ‐ (整数) 画像の左側にアウトペイントするピクセル数。少なくとも 1 つのアウトペインティング方向には、ゼロ以外の値を指定する必要があります。範囲は 0~2000 です。Detault 0。

  • right ‐ (整数) イメージの右側にアウトペイントするピクセル数。少なくとも 1 つのアウトペインティング方向には、ゼロ以外の値を指定する必要があります。範囲は 0~2000 です。Detault 0。

  • up ‐ (整数) イメージの上部にアウトペイントするピクセル数。少なくとも 1 つのアウトペインティング方向には、ゼロ以外の値を指定する必要があります。範囲は 0~2000 です。Detault 0。

  • down ‐ (整数) イメージの下部にアウトペイントするピクセル数。少なくとも 1 つのアウトペインティング方向には、ゼロ以外の値を指定する必要があります。範囲は 0~2000 です。Detault 0。

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-outpaint-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "left": 512, "right": 512, "up": 200, "down": 100 } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.png" region = "us-east-1" model_id = "us.stability.stable-outpaint-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "left": 512, "right": 512, "up": 200, "down": 100 } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

次の表は、Outpaint オペレーションの入力イメージと出力イメージを示しています。

Input

Output

照明付きクロックフェイスを備えた華麗な Gothic アーキテクチャを示す Big Ben クロックタワー。

Willemijn Doelman による「Iconic Big Ben Tower Against Cloudy Sky」。CC でライセンス付与

Big Ben クロックタワーは、曇った空に対してゴシック調の装飾アーキテクチャを備えています。

検索および再配色を使用では、プロンプトを使用して画像内の特定のオブジェクトの色を変更できます。このサービスは、マスクを必要としない特定のバージョンのインペインティングです。これにより、オブジェクトが自動的にセグメント化され、プロンプトでリクエストされた色を使用して再配色されます。

検索および再配色には、次の必須パラメータがあります。

  • prompt – 出力画像に表示する内容です。要素、色、件名を明確に定義する強力でわかりやすいプロンプトは、より良い結果につながります。特定の単語の重みを制御するには、形式 (word:weight) を使用します。ここで、word は重みを制御する単語、weight は値です。値 0 と 1.0 では単語の強調が軽減され、値 1.1 と 2 では単語 が強調されました。例えば、(青:0.3) はクリアな青い空を意味しますが、(緑:1.8) は青と緑からなるが青よりも緑が多い空を意味します。最小 0 文字、最大 10,000 文字です。

  • image ‐ (文字列) 再配色する Base64 画像。画像のすべての辺を 64 ピクセル以上にする必要があります。合計ピクセル数が 9,437,184 ピクセルを超えることはできません。画像のアスペクト比は 1:2.5 と 2.5:1 の間にする必要があります。サポートされている形式: jpeg、png、webp。

  • select_prompt ‐ (文字列) 画像内で検索する内容の簡単な説明。最大 10,000 文字。

以下のパラメータはオプションです。

  • style_preset — (文字列) 画像モデルを特定のスタイルに導きます。列挙型: 3d-model、analog-film、anime、cinematic、comic-book、digital-art、enhance、fantasy-art、isometric、line-art、low-poly、modeling-compound、neon-punk、origami、photographic、pixel-art、tile-texture。

  • negative_prompt ‐ (文字列) 出力画像に表示しない内容を説明するテキストのぼかし。これはアドバンスド機能です。最大 10,000 文字。

  • seed – (数値) 生成の「ランダム化」のガイドに使用される特定の値。(このパラメータを省略するか、0 を渡してランダムシードを使用します)。範囲は 0~4294967294 です。デフォルトは 0 です。

  • output_format ‐ (文字列) 生成された画像のコンテンツタイプを切り捨てます。列挙型: jpeg、png、webp。デフォルトは png です。

  • grow_mask - マスクのエッジを、指定されたピクセル数、全方向の外側に移動します。マスクの周囲の拡張領域がぼやけ、インペイントされたコンテンツと元の画像間の遷移を滑らかにすることができます。範囲は 0~20 です。デフォルトは 5 です。インペイントされたコンテンツの周囲にシームや粗いエッジがある場合は、このパラメータを試してください。過剰に大きくすると、マスク内の細かいディテールが不明瞭になったり、近くのマスクされた領域がつながったりする可能性がある点に注意してください。

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.png" region = "us-east-1" model_id = "us.stability.stable-image-search-recolor-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "pink jacket", "select_prompt": "jacket" } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.png" region = "us-east-1" model_id = "us.stability.stable-image-search-recolor-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "pink jacket", "select_prompt": "jacket" } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

次の表は、「ピンクのジャケット」というプロンプトを使用した検索および再配色オペレーションの入力画像と出力画像を示しています。

Input

Output

雪が降る山岳地帯で、サングラスとリュックサック付きのブルーインフォーマージャケットを着用している人。

Stable Image Ultra によって生成された「インポータージャケットを着ている男性」、Sanwal Yousaf によるプロンプトと編集。CC BY 4.0 でライセンス付与

雪山の環境でサングラスと紫色の冬用ジャケットを着用し、リュックサックを付けた人。

検索および置換では、検索プロンプトを使用して、置換するオブジェクトをシンプルな言語で識別できます。サービスはオブジェクトを自動的にセグメント化し、マスクがなくてもプロンプトでリクエストされたオブジェクトに置換します。

検索および置換には、次の必須パラメータがあります。

  • prompt – 出力画像に表示する内容です。要素、色、件名を明確に定義する強力でわかりやすいプロンプトは、より良い結果につながります。特定の単語の重みを制御するには、形式 (word:weight) を使用します。ここで、word は重みを制御する単語、weight は値です。値 0 と 1.0 では単語の強調が軽減され、値 1.1 と 2 では単語 が強調されました。例えば、(青:0.3) はクリアな青い空を意味しますが、(緑:1.8) は青と緑からなるが青よりも緑が多い空を意味します。最小 0 文字、最大 10,000 文字です。

  • image ‐ (文字列) 再配色する Base64 画像。画像のすべての辺を 64 ピクセル以上にする必要があります。合計ピクセル数が 9,437,184 ピクセルを超えることはできません。画像のアスペクト比は 1:2.5 と 2.5:1 の間にする必要があります。サポートされている形式: jpeg、png、webp。

  • search_prompt ‐ (文字列) 画像でインペイントする内容の簡単な説明。最大 10,000 文字。

以下のパラメータはオプションです。

  • style_preset — (文字列) 画像モデルを特定のスタイルに導きます。列挙型: 3d-model、analog-film、anime、cinematic、comic-book、digital-art、enhance、fantasy-art、isometric、line-art、low-poly、modeling-compound、neon-punk、origami、photographic、pixel-art、tile-texture。

  • negative_prompt ‐ (文字列) 出力画像に表示しない内容を説明するテキストのぼかし。これはアドバンスド機能です。最大 10,000 文字。

  • seed – (数値) 生成の「ランダム化」のガイドに使用される特定の値。(このパラメータを省略するか、0 を渡してランダムシードを使用します)。範囲は 0~4294967294 です。デフォルトは 0 です。

  • output_format ‐ (文字列) 生成された画像のコンテンツタイプを切り捨てます。列挙型: jpeg、png、webp。デフォルトは png です。

  • grow_mask - マスクのエッジを、指定されたピクセル数、全方向の外側に移動します。マスクの周囲の拡張領域がぼやけ、インペイントされたコンテンツと元の画像間の遷移を滑らかにすることができます。範囲は 0~20 です。デフォルトは 5 です。インペイントされたコンテンツの周囲にシームや粗いエッジがある場合は、このパラメータを試してください。過剰に大きくすると、マスク内の細かいディテールが不明瞭になったり、近くのマスクされた領域がつながったりする可能性がある点に注意してください。

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.png" region = "us-east-1" model_id = "us.stability.stable-image-search-replace-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "jacket", "search_prompt": "sweater", } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.png" region = "us-east-1" model_id = "us.stability.stable-image-search-replace-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "jacket", "search_prompt": "sweater", } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

次の表は、「ジャケット」というプロンプトを使用した検索および置換オペレーションの入力画像と出力画像を示しています。

Input

Output

オレンジ色の葉を背景に、屋外でオレンジ色の葉を着た女性。

Stable Image Ultra によって生成された「秋のセーターを着た女性モデル」。Sanwal Yousaf によるプロンプトと編集。CC BY 4.0 でライセンス付与

秋の葉を背景にした、屋外で緑のジャケットと白のシャツを着た女性。

消去では、バックグラウンドの一貫性をインテリジェントに維持しながら、画像マスクを使用して不要な要素を削除できます。

消去には、次の必須パラメータがあります。

  • image ‐ (文字列) 消去元の Base64 画像。画像のすべての辺を 64 ピクセル以上にする必要があります。合計ピクセル数が 9,437,184 ピクセルを超えることはできません。画像のアスペクト比は 1:2.5 と 2.5:1 の間にする必要があります。サポートされている形式: jpeg、png、webp。

以下のパラメータはオプションです。

  • seed – (数値) 生成の「ランダム化」のガイドに使用される特定の値。(このパラメータを省略するか、0 を渡してランダムシードを使用します)。範囲は 0~4294967294 です。デフォルトは 0 です。

  • output_format ‐ (文字列) 生成された画像のコンテンツタイプを切り捨てます。列挙型: jpeg、png、webp。デフォルトは png です。

  • mask ‐ (文字列) (このパラメータに渡される) 2 番目の画像または画像パラメータのアルファチャネルを介して、インペインティングプロセスの強度をピクセル単位で制御します。

    • Passing in a Mask - このパラメータに渡される画像は、指定されたピクセルの暗さまたは明るさに基づいてインペインティングの強度を、任意のピクセルで表す白黒画像でなければなりません。完全に黒いピクセルはインペインティング強度を表し、完全に白いピクセルは最大強度を表します。マスクのサイズが画像パラメータと異なる場合、マスクは自動的にサイズ変更されます。

    • Alpha Channel Support - 明示的なマスクを指定しない場合、画像パラメータのアルファチャネルから取得されます。透明ピクセルはインペイントされ、不透明ピクセルは保持されます。アルファチャネルを含む画像がマスクとともに指定される場合、マスクが優先されます。

  • grow_mask - マスクのエッジを、指定されたピクセル数、全方向の外側に移動します。マスクの周囲の拡張領域がぼやけ、インペイントされたコンテンツと元の画像間の遷移を滑らかにすることができます。範囲は 0~20 です。デフォルトは 5 です。インペイントされたコンテンツの周囲にシームや粗いエッジがある場合は、このパラメータを試してください。過剰に大きくすると、マスク内の細かいディテールが不明瞭になったり、近くのマスクされた領域がつながったりする可能性がある点に注意してください。

注記

最適な消去結果を得るには、削除する領域がマスクにより正確に定義されていることを確認します。明示的なマスクが指定されていない場合、サービスでは入力画像のアルファチャネルが使用されます。両方が指定されている場合、マスクが優先されます。

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.png" mask = "./content/mask.png" region = "us-east-1" model_id = "us.stability.stable-image-erase-object-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8'), with open(mask, "rb") as mask_file: mask_base64 = base64.b64encode(mask_file.read()).decode('utf-8') params = { "image": image_base64, "mask": mask_base64 } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.png" mask = "./content/mask.png" region = "us-east-1" model_id = "us.stability.stable-image-erase-object-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8'), with open(mask, "rb") as mask_file: mask_base64 = base64.b64encode(mask_file.read()).decode('utf-8') params = { "image": image_base64, "mask": mask_base64 } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

次の表は、消去オペレーションの入力画像と出力画像を示しています。

Input

マスク

Output

ラップトップ、オープンノートブック、ペン、木面上の植物を備えた整理されたデスクのオーバーヘッドビュー。

Stable Image Ultra によって生成された「学生用デスク」。Sanwal Yousaf によるプロンプトと編集。CC BY 4.0 でライセンス付与

ラップトップ、オープンノートブック、鉛筆、ブルージャーナルを備えた整理されたデスクのオーバーヘッドビュー。

背景の削除を使用すると、被写体を背景から正確に分離できます。

背景の削除には、次の必須パラメータがあります。

  • image ‐ (文字列) 背景の削除元の Base64 画像。画像のすべての辺を 64 ピクセル以上にする必要があります。合計ピクセル数が 9,437,184 ピクセルを超えることはできません。画像のアスペクト比は 1:2.5 と 2.5:1 の間にする必要があります。サポートされている形式: jpeg、png、webp。

以下のパラメータはオプションです。

  • output_format ‐ (文字列) 生成された画像のコンテンツタイプを切り捨てます。列挙型: jpeg、png、webp。デフォルトは png です。

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.png" region = "us-east-1" model_id = "us.stability.stable-image-remove-background-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.png" region = "us-east-1" model_id = "us.stability.stable-image-remove-background-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64 } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

次の表は、背景の削除オペレーションの入力画像と出力画像を示しています。

Input

Output

オレンジ色の葉を背景に、屋外でオレンジ色の葉を着た女性。

Stable Image Ultra によって生成された「秋のセーターを着た女性モデル」。Sanwal Yousaf によるプロンプトと編集。CC BY 4.0 でライセンス付与

水平ストライプの背景に対してオレンジ色の紋章の紋章を着た人。

コントロール

次のセクションでは、Stability AI Image Services のコントロールについて説明します。

手描きの大まかなスケッチを、正確なコントロールで洗練された出力に引き上げます。非スケッチイメージの場合、コントロールスケッチでは、イメージ内の輪郭線とエッジを使用して、最終的な外観を詳細に操作できます。

コントロールスケッチには、次の必須パラメータがあります。

  • prompt – 出力画像に表示する内容です。要素、色、件名を明確に定義する強力でわかりやすいプロンプトは、より良い結果につながります。特定の単語の重みを制御するには、形式 (word:weight) を使用します。ここで、word は重みを制御する単語、weight は値です。値 0 と 1.0 では単語の強調が軽減され、値 1.1 と 2 では単語 が強調されました。例えば、(青:0.3) はクリアな青い空を意味しますが、(緑:1.8) は青と緑からなるが青よりも緑が多い空を意味します。最小 0 文字、最大 10,000 文字です。

  • image ‐ (文字列) スケッチの Base64 画像。画像のすべての辺を 64 ピクセル以上にする必要があります。合計ピクセル数が 9,437,184 ピクセルを超えることはできません。画像のアスペクト比は 1:2.5 と 2.5:1 の間にする必要があります。サポートされている形式: jpeg、png、webp。

以下のパラメータはオプションです。

  • control_strength ‐ (数値) 画像が生成に与える影響またはコントロールの程度。0 から 1 の間の浮動小数点で表されます。0 は影響が最小、1 は影響が最大です。デフォルトは 0.7 です。

  • negative_prompt ‐ (文字列) 出力画像に表示しない内容を説明するテキストのぼかし。これはアドバンスド機能です。最大 10,000 文字。

  • seed – (数値) 生成の「ランダム化」のガイドに使用される特定の値。(このパラメータを省略するか、0 を渡してランダムシードを使用します)。範囲は 0~4294967294 です。デフォルトは 0 です。

  • output_format ‐ (文字列) 生成された画像のコンテンツタイプを切り捨てます。列挙型: jpeg、png、webp。デフォルトは png です。

  • style_preset - 画像モデルを特定のスタイルに導きます。列挙型: 3d-model、analog-film、anime、cinematic、comic-book、digital-art、enhance、fantasy-art、isometric、line-art、low-poly、modeling-compound、neon-punk、origami、photographic、pixel-art、tile-texture。

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-image-control-sketch-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "a house with background of mountains and river flowing nearby" } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-image-control-sketch-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "a house with background of mountains and river flowing nearby" } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

次の表は、「山を背景に、近くに川が流れている家」というプロンプトを使用したコントロールスケッチ呼び出しの入力画像と出力画像を示しています。

Input

Output

山々を背景にした丘の上の家のシンプルな折れ線図。

Sanwal Yousaf による「家、山、河川のスケッチ」。CC BY 4.0 でライセンス付与

河川、緑の牧草地、従来の建物、雪に覆われた山頂がある山の谷。

コントロール構造では、入力画像の構造を維持しながら画像を生成できます。これは、シーンの再作成やモデルからのキャラクターのレンダリングなど、高度なコンテンツ作成シナリオに特に役立ちます。

コントロール構造には、次の必須パラメータがあります。

  • prompt – 出力画像に表示する内容です。要素、色、件名を明確に定義する強力でわかりやすいプロンプトは、より良い結果につながります。特定の単語の重みを制御するには、形式 (word:weight) を使用します。ここで、word は重みを制御する単語、weight は値です。値 0 と 1.0 では単語の強調が軽減され、値 1.1 と 2 では単語 が強調されました。例えば、(青:0.3) はクリアな青い空を意味しますが、(緑:1.8) は青と緑からなるが青よりも緑が多い空を意味します。最小 0 文字、最大 10,000 文字です。

  • image ‐ (文字列) スケッチの Base64 画像。画像のすべての辺を 64 ピクセル以上にする必要があります。合計ピクセル数が 9,437,184 ピクセルを超えることはできません。画像のアスペクト比は 1:2.5 と 2.5:1 の間にする必要があります。サポートされている形式: jpeg、png、webp。

以下のパラメータはオプションです。

  • control_strength ‐ (数値) 画像が生成に与える影響またはコントロールの程度。0 から 1 の間の浮動小数点で表されます。0 は影響が最小、1 は影響が最大です。デフォルトは 0.7 です。

  • negative_prompt ‐ (文字列) 出力画像に表示しない内容を説明するテキストのぼかし。これはアドバンスド機能です。最大 10,000 文字。

  • seed – (数値) 生成の「ランダム化」のガイドに使用される特定の値。(このパラメータを省略するか、0 を渡してランダムシードを使用します)。範囲は 0~4294967294 です。デフォルトは 0 です。

  • output_format ‐ (文字列) 生成された画像のコンテンツタイプを切り捨てます。列挙型: jpeg、png、webp。デフォルトは png です。

  • style_preset - 画像モデルを特定のスタイルに導きます。列挙型: 3d-model、analog-film、anime、cinematic、comic-book、digital-art、enhance、fantasy-art、isometric、line-art、low-poly、modeling-compound、neon-punk、origami、photographic、pixel-art、tile-texture。

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-image-control-structure-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "surreal structure with motion generated sparks lighting the scene" } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-image-control-structure-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "surreal structure with motion generated sparks lighting the scene" } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

次の表は、「動きによって生まれる火花がシーンを照らすシュールな構造」というプロンプトを使用したコントロール構造オペレーションの入力画像と出力画像を示しています。

Input

Output

格子状のメタルフレームワークを使用したトンネルのような構造で、床にストライプのライトパターンを作成します。

Pawel L による「茶色の箱に座っている人」。CC でライセンス付与

照明付きレンガパターンのトンネル内部と、開口部で飛行するスパーク。

スタイルガイドでは、入力画像からスタイル要素を抽出し、プロンプトに基づいて出力画像の作成をガイドできます。その結果、入力画像と同じスタイルの新しい画像が作成されます。

スタイルガイドには、次の必須パラメータがあります。

  • prompt – 出力画像に表示する内容です。要素、色、件名を明確に定義する強力でわかりやすいプロンプトは、より良い結果につながります。特定の単語の重みを制御するには、形式 (word:weight) を使用します。ここで、word は重みを制御する単語、weight は値です。値 0 と 1.0 では単語の強調が軽減され、値 1.1 と 2 では単語 が強調されました。例えば、(青:0.3) はクリアな青い空を意味しますが、(緑:1.8) は青と緑からなるが青よりも緑が多い空を意味します。最小 0 文字、最大 10,000 文字です。

  • image ‐ (文字列) スケッチの Base64 画像。画像のすべての辺を 64 ピクセル以上にする必要があります。合計ピクセル数が 9,437,184 ピクセルを超えることはできません。画像のアスペクト比は 1:2.5 と 2.5:1 の間にする必要があります。サポートされている形式: jpeg、png、webp。

以下のパラメータはオプションです。

  • aspect_ratio – (文字列) 生成された画像のアスペクト比を制御します。このパラメータは、テキストからイメージへのリクエストにのみ有効です。デフォルトは 1:1 です。列挙型: 16:9、1:1、21:9、2:3、3:2、4:5、5:4、9:16、9:21。デフォルトは 1:1 です。

  • negative_prompt ‐ (文字列) 出力画像に表示しない内容を説明するテキストのぼかし。これはアドバンスド機能です。最大 10,000 文字。

  • seed – (数値) 生成の「ランダム化」のガイドに使用される特定の値。(このパラメータを省略するか、0 を渡してランダムシードを使用します)。範囲は 0~4294967294 です。デフォルトは 0 です。

  • output_format ‐ (文字列) 生成された画像のコンテンツタイプを切り捨てます。列挙型: jpeg、png、webp。デフォルトは png です。

  • fidelity - (数値) 出力画像のスタイルと入力画像のスタイルが類似している程度。範囲は 0~1 です。デフォルトは 0.5 です。

  • style_preset - 画像モデルを特定のスタイルに導きます。列挙型: 3d-model、analog-film、anime、cinematic、comic-book、digital-art、enhance、fantasy-art、isometric、line-art、low-poly、modeling-compound、neon-punk、origami、photographic、pixel-art、tile-texture。

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-image-style-guide-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "wide shot of modern metropolis" } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-image-style-guide-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "wide shot of modern metropolis" } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

次の表は、「モダンな大都市のワイドショット」というプロンプトを使用したスタイルガイド呼び出しの入力画像と出力画像を示しています。

Input

Output

青、黄、緑、オレンジ、赤のブラシストロークなど、色鮮やかで抽象的なペイント。

Steven Johnson による「抽象画」。CC でライセンス付与

青、黄色、緑、オレンジ、赤の色合いの建物を含む、色とりどりの抽象都市の風景。

スタイル転送では、参照スタイル画像からターゲット画像に視覚的特性を適用できます。スタイルガイドサービスは入力画像からスタイル要素を抽出し、それらを使用して、プロンプトに基づいて出力画像の作成をガイドしますが、スタイル転送は元のコンポジションを維持しながら既存のコンテンツを特殊な方法で変換します。このツールは、複数のアセット間で一貫したコンテンツを作成するのに役立ちます。

スタイル転送には、次の必須パラメータがあります。

  • init_image ‐ (文字列) スタイルを変更する対象を含む Base64 画像。画像のすべての辺を 64 ピクセル以上にする必要があります。合計ピクセル数が 9,437,184 ピクセルを超えることはできません。画像のアスペクト比は 1:2.5 と 2.5:1 の間にする必要があります。サポートされている形式: jpeg、png、webp。

  • style_image ‐ (文字列) スタイルを変更する対象を含む Base64 画像。画像のすべての辺を 64 ピクセル以上にする必要があります。合計ピクセル数が 9,437,184 ピクセルを超えることはできません。画像のアスペクト比は 1:2.5 と 2.5:1 の間にする必要があります。サポートされている形式: jpeg、png、webp。

以下のパラメータはオプションです。

  • prompt – (文字列) 出力画像に表示する内容です。要素、色、件名を明確に定義する強力でわかりやすいプロンプトは、より良い結果につながります。特定の単語の重みを制御するには、形式 (word:weight) を使用します。ここで、word は重みを制御する単語、weight は値です。値 0 と 1.0 では単語の強調が軽減され、値 1.1 と 2 では単語 が強調されました。例えば、(青:0.3) はクリアな青い空を意味しますが、(緑:1.8) は青と緑からなるが青よりも緑が多い空を意味します。

  • negative_prompt ‐ (文字列) 出力画像に表示しない内容を説明するテキストのぼかし。これはアドバンスド機能です。最大 10,000 文字。

  • seed – (数値) 生成の「ランダム化」のガイドに使用される特定の値。(このパラメータを省略するか、0 を渡してランダムシードを使用します)。範囲は 0~4294967294 です。デフォルトは 0 です。

  • output_format ‐ (文字列) 生成された画像のコンテンツタイプを切り捨てます。列挙型: jpeg、png、webp。デフォルトは png です。

  • composition_fidelity ‐ (数値) 出力画像のスタイルが入力画像のスタイルが類似している程度。範囲は 0~1 です。デフォルトは 0.9 です。

  • style_strength ‐ (数値) ノイズ除去と呼ばれることがあるこのパラメータは、生成された画像に style_image パラメータがどの程度影響するかを制御します。値が 0 の場合、入力と同じイメージが生成されます。値が 1 の場合、イメージを全く渡さないような動作を行います。範囲は 0~1 です。デフォルトは 1 です。

  • change_strength - (数値) 元の画像を変更する程度。範囲は 0.1~1 です。デフォルトは 0.9 です。

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.jpg" style_image = "./content/style.jpg" region = "us-east-1" model_id = "us.stability.stable-style-transfer-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') with open(style_image, "rb") as style_image_file: style_image_base64 = base64.b64encode(style_image_file.read()).decode('utf-8') params = { "init_image": image_base64, "style_image": style_image_base64, "prompt": "statue" } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/cat_statue_512x512.jpg" style_image = "./content/glowbot_style.jpg" region = "us-east-1" model_id = "us.stability.stable-style-transfer-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') with open(style_image, "rb") as style_image_file: style_image_base64 = base64.b64encode(style_image_file.read()).decode('utf-8') params = { "init_image": image_base64, "style_image": style_image_base64, "prompt": "statue" } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

次の表は、スタイル転送呼び出しの入力画像と出力画像を示しています。

Input

[Style] (スタイル)

Output

髪の毛が流れ、衣服が着せられ、手が頭に上げられた女性の岩紋像。

Simon Berger による「立っている女性の像」。CC でライセンス付与

夜間の都市風景の建物をつなぐ照明付きの青い線のネットワーク。

Pixabay による「青くて明るい光」。CC0 でライセンス付与

都会的な環境でシアン色の照明をし、背景に最新のアーキテクチャを備えた古典的な像。