画像の生成と編集
Amazon Nova Canvas は Bedrock InvokeModel API を介して利用でき、モデル推論を実行する際に次の推論パラメータおよびモデルレスポンスをサポートします。
画像生成のリクエストとレスポンス形式
Amazon Nova Canvas モデルを使用して InvokeModel を呼び出す際、リクエストの body
フィールドをユースケースに合った形式に置き換えます。すべてのタスクは imageGenerationConfig
オブジェクトを共有しますが、各タスクにはそのタスク固有のパラメータオブジェクトがあります。次にユースケースがサポートされています。
タスクタイプの値 | タスクパラメータフィールド | タスクカテゴリ | 説明 |
---|---|---|---|
テキストのみの TEXT_IMAGE |
textToImageParams |
[Generation] (生成) | テキストプロンプトを使用して画像を生成します。 |
画像の条件付けを使用した TEXT_IMAGE |
textToImageParams |
[Generation] (生成) | テキストプロンプトとともに入力条件付き画像を指定して、条件付き画像のレイアウトと構造に従う画像を生成します。 |
COLOR_GUIDED_GENERATION |
colorGuidedGenerationParams |
[Generation] (生成) | テキストプロンプトとオプションのリファレンス画像とともに 16 進数形式 (#FF9800 など) のカラー値のリストを指定して、指定されたカラーパレットに従う画像を生成します。 |
IMAGE_VARIATION |
imageVariationParams |
[Generation] (生成) | 生成された画像に影響を与えるには、テキストプロンプトの有無にかかわらず、1 つ以上の入力画像を指定します。生成された画像のビジュアルスタイルに影響を与えたり (テキストプロンプトとともに使用される場合)、単一の画像のバリエーションを生成したり (テキストプロンプトなしで使用される場合)、その他のクリエイティブな効果や制御のために使用できます。 |
INPAINTING |
inPaintingParams |
編集 | マスクされた領域内の部分を変更して、画像を修正します。画像の要素を追加、削除、または置き換えるために使用できます。 |
OUTPAINTING |
outPaintingParams |
編集 | マスクされた領域外の部分を変更して、画像を修正します。被写体の背後にある背景を置き換えるために使用できます。 |
BACKGROUND_REMOVAL |
backgroundRemovalParams |
編集 | 画像の背景を自動的に削除し、背景を透明なピクセルに置き換えます。後で画像編集アプリケーション、プレゼンテーション、またはウェブサイトの他の要素と画像を合成する場合に便利です。カスタムコードにより、背景を簡単に単色に変更することもできます。 |
VIRTUAL_TRY_ON |
virtualTryOnParams |
編集 | ソース画像とリファレンス画像を指定し、リファレンス画像内のオブジェクトをソース画像に重ね合わせます。さまざまなモデルやポーズで服やアクセサリーを視覚化したり、オブジェクトやアイテムのスタイルや外観を変更したり、あるオブジェクトから別のオブジェクトにスタイルやデザインを転送したりするために使用できます。 |
画像生成用の入力画像
多くのタスクタイプには、1 つ以上の入力画像をリクエストに含める必要があります。リクエストで使用される画像は Base64 文字列としてエンコードする必要があります。一般的に、画像は PNG 形式または JPEG 形式を使用でき、カラーチャネル (RGB) ごとに 8 ビットである必要があります。PNG 画像には追加のアルファチャネルを含めることができますが、そのチャネルに透明または半透明のピクセルを含めることはできません。サポートされている入力画像のディメンションに関する詳細については、「サポートされている画像解像度」を参照してください。
マスク画像は、インペイントまたはアウトペイントする領域を示す画像です。この画像には、純粋な黒と純粋な白のピクセルしか含めることができません。
インペインティングリクエストの場合、黒い領域はマスクと呼ばれ、この部分が変更対象になります。マスク画像の残り部分には純粋な白のピクセルのみを含める必要があります。純白のピクセルはマスクの外側の領域を示します。
アウトペインティングリクエストの場合、白の領域がモデルによる変更の対象になります。
マスク画像には、純粋な黒または純粋な白ではないピクセルを含めることはできません。JPEG 画像をマスクとして使用している場合、圧縮中に白または黒以外のピクセルが発生しないように、100% の品質で圧縮する必要があります。
Base64 文字列との間で画像をエンコードまたはデコードする方法の例については、「コード例」を参照してください。
画像のマスキング
画像を編集する場合、マスクは編集する領域を定義する方法です。次の 3 つの方法のいずれかでマスクを定義できます。
-
maskPrompt
– 画像のマスク対象部分を説明する自然言語のテキストプロンプトを記述します。 -
maskImage
– 純粋な黒いピクセルがマスク内の領域を示し、純粋な白のピクセルがマスク外の領域を示す白黒の画像。インペインティングリクエストの場合、黒いピクセルがモデルによる変更の対象になります。アウトペインティングリクエストの場合、白いピクセルが変更の対象になります。
-
garmentBasedMask
— いくつかの限定されたスタイルオプションとともに置き換える領域を定義する画像ベースのマスク。
マスクは、写真編集ツールを使用して描画したり、独自のカスタムコードで作成したりすることができます。それ以外の場合、maskPrompt フィールドを使用してモデルにマスクの推測を許可します。
サポートされている画像解像度
次の要件を満たしている限り、生成タスクに出力解像度を指定できます。
-
各辺は 320 〜 4096 ピクセルの範囲である必要があり、その範囲に限ります。
-
各辺は 16 で割り切れる必要があります。
-
アスペクト比は 1:4 と 4:1 の間である必要があります。つまり、一辺はもう一方の辺の 4 倍を超える長さにすることはできません。
-
合計ピクセル数は 4,194,304 未満である必要があります。
このような同じ制約のほとんどは、入力画像にも適用されます。ただし、画像の辺の数値は 16 で割り切る必要はありません。