仮想試着
仮想試着は、マスク画像のガイダンスに基づいてリファレンス画像のコンテンツがソース画像に重ね合わせられる、画像ガイドによるインペインティングのユースケースです。Amazon Nova Canvas は、衣服、アクセサリー、家具、および関連オブジェクト用に調整されています。このモデルは、ロゴやテキストを画像に追加するなど、他のケースにもよく適用されます。
仮想試着 API を使用して、最大 5 つの画像を生成できます。デフォルトでは、1 つの画像のみ生成されます。
仮想試着を実行するには、次の 3 つの画像を指定する必要があります。
-
ソース画像 - 変更する元の画像。例えば、人物や部屋の風景などの画像です。
-
リファレンス画像 - ソース画像に重ね合わせられるアイテム、オブジェクトを含む画像。例えば、これにはジャケット、ボウル、ソファーが含まれる場合があります。衣服の場合、リファレンス画像には衣服を着ている状態、来ていない状態で含めることができ、個別のコーディネートのコンポーネントを表す複数の製品を含めることができます (1 つの画像にシャツ、パンツ、靴など)。
-
マスク画像 - ソースの中で修正する部分を定義する画像。マスク画像は、ソース画像の変更するべき部分を定義するために使用される白黒の画像です。黒いピクセルは変更するソース画像の領域を示し、白いピクセルは保持する画像の領域を示します。独自のマスク画像を指定するか、指定した他の入力パラメータに基づいてモデルにマスク画像を作成させることができます。
マスク画像は、指定した場合、出力の一部として返すことができます。
このモデルの仕組みの例をいくつか示します。
他の Amazon Nova Canvas のタスクタイプとは異なり、仮想試着ではテキストプロンプトまたはネガティブテキストプロンプトがサポートされていません。
マスク画像の定義
マスク画像を直接提供するには、maskType: "IMAGE" を指定するか、maskType: "GARMENT" や maskType: "PROMPT" などの補助入力を使用してモデルがマスク画像を自動的にコンピューティングできるようにします。
マスクタイプとして "GARMENT" を指定すると、Amazon Nova Canvas は指定した garmentClass 入力パラメータの値に基づいて衣服に対応するマスクを作成します。ほとんどの場合、次のいずれかの高レベルな衣服クラスを使用できます。
-
"UPPER_BODY"- 腕の長さ全体を含むマスクを作成します。 -
"LOWER_BODY"- 脚の間に隙間がない、脚の長さ全体を含むマスクを作成します。 -
"FOOTWEAR"- ソース画像に示されている靴のプロファイルに適合するマスクを作成します。 -
"FULL_BODY"-"UPPER_BODY"と"LOWER_BODY"の組み合わせに相当するマスクを作成します。
マスクタイプ "PROMPT" を使用して、自然言語を使用して置き換えるソース画像のアイテムを記述できます。これは、衣服以外のシナリオに役立ちます。この機能では、maskPrompt パラメータを介してタスクタイプ "INPAINTING" に存在するのと同じ自動マスキング機能を使用します。
警告
マスクタイプ "PROMPT" で作成されたマスクは、記述したアイテムの形状に厳密に準拠します。追加する製品は、置き換えるアイテムとシルエットやサイズが同じでない可能性があるため、これは多くのシナリオで問題になる可能性があります。このため仮想試着 API には、"BOUNDING_BOX" に設定できるオプションの maskShape パラメータも用意されています。マスクタイプ "PROMPT" を使用する際は、ほとんどの場合、この設定 (デフォルト) を使用することをお勧めします。
新しいポーズ、手、または顔の生成
ソース画像内の人物のポーズ、手、顔を保持または再生成するようにモデルに指示できます。これらの要素を保持すると、選択した maskType に関係なく、マスク画像から自動的に削除されます。
次の状況で、ポーズ、手、または顔を保持できます。
-
エンドユーザーが独自のマスクを描画できるようにするアプリケーションを開発している。これらの機能を保持すると、エンドユーザーが誤ってマスクに手や顔を含めるのを防ぐことができます。
-
maskShape: BOUNDING_BOXを使用しているが、新しい手や顔を生成したくない。preserveFace: ONまたはpreserveHands: ONを使用すると、これらの機能はマスクから自動的に削除されます。 -
直立姿勢ではないモデルで
maskType:GARMENTおよびmaskShape: BOUNDING_BOXを使用している。この場合、境界ボックスマスクが顔と重なる可能性があるため、preserveFace: ONを使用することをお勧めします。
逆に、次の状況ではポーズ、手、または顔を再生成できます。
-
首を覆う衣服の場合、
preserveFace: ONでは首の部分が十分に表示されず、出力に悪影響を及ぼす可能性があります。 -
モデルがハイヒールの靴を着用しており、リファレンス画像ではフラットヒールの靴を着用している場合、またはその逆の場合。この場合、ボディポーズを保持すると、不自然な見た目になります。
-
上記のポイントと同様に、ハンドバッグやその他のアクセサリーを試す際は、新しいポーズや手を生成すると、より自然な結果が得られます。
スタイリングキュー
garmentStyling パラメータを使用すると、写真撮影で見つかる可能性のある特定の衣服のスタイリングキューを保存または変更できます。例えば、Amazon Nova Canvas では、袖をロールアップまたはダウンするようにシャツのスタイルを変更できます。または、シャツをタックインしたりタックインしないように変更できます。以下のオプションが利用できます。
-
"longSleeveStyle"- 長袖シャツの袖をロールアップまたはダウンするかどうかを制御します。-
"SLEEVE_DOWN"- ソース画像が長袖シャツ (袖をロールアップまたはダウンした状態)、半袖シャツ、またはノースリーブシャツを着用している場合に適用できます。 -
"SLEEVE_UP"- ソース画像が長袖シャツ (袖をロールアップした状態)、半袖シャツ、またはノースリーブシャツを着用している場合に適用できます。
-
-
"tuckingStyle"- 上半身の衣服をタックインするかしないかを制御します。-
"UNTUCKED"- ソース画像のシャツがタックインされているかどうかに関係なく適用できます。 -
"TUCKED"- ソース画像のシャツがタックインしている場合に適用できます。
-
-
"outerLayerStyle"- 上半身の衣服が開いた状態で着られるのか、閉じた状態で着られるのかを制御します。このデフォルトは"CLOSED"で、ほとんどの衣服 (シャツやセーターなど) に適しています。ジャケットなどのアウターの衣服の場合、この値を"OPEN"に設定すると、ソース画像の元の上半身の衣服が保持され、その上に新しいアウターの衣服が重ねられます。アウターの衣服で"CLOSED"の値を使用した場合、衣服が常に閉じた状態で描写されるとは限りません。これは、"CLOSED"の値を設定することでソース画像内のすべての上半身の衣服が置き換えられるものの、結果としてアウターレイヤーが開いた状態になり、その下に新しいインナーが見える場合があるためです。-
"CLOSED" -
"OPEN"
-
詳細については、画像生成のリクエストとレスポンス構造 の garmentStyling パラメータを参照してください。
画像ステッチング
仮想試着では、画像を結合して最終的な画像を作成する方法を決定できます。"BALANCED"、"SEAMLESS"、"DETAILED" から選択できます。各マージスタイルは、要素を結合して最終的な画像を作成する方法対して異なるアプローチを取り、それぞれに独自の利点とトレードオフがあります。
-
"BALANCED"- 元の画像内のマスクされていないピクセルを保護し、元の画像に対して 100% の精度を維持します。場合によっては、マスクの形状が「ゴースト」のように見える、わずかな色や質感の不一致が出力画像に生じることがあります。これは、単色または均一な質感の背景で立っている人物が画像に含まれている場合に発生する可能性が最も高くなります。これを回避するには、代わりにマージスタイル"SEAMLESS"を使用できます。 -
"SEAMLESS"- 最終的な画像内のマスクされた画像領域とマスクされていない画像領域の間に目立つ継ぎ目がないことを確認します。トレードオフとは、画像内のすべてのピクセルがわずかに変化し、場合によっては画像のマスクされていない領域で細部の描写が失われることです。 -
"DETAILED"- 特にマスクされた領域が画像全体と比べて比較的小さい場合、ロゴやテキストなどの細部の描写を大幅に改善できます。このモデルでは、マスクされた領域のみを含む元の画像の、しっかりとトリミングされた高解像度バージョンでインペインティングを実行することで、これを実現します。その後、結果を元の画像にマージします。"BALANCED"モードを使用する場合と同様に、このモードでも継ぎ目が表れることがあります。