

# 가상 시도
<a name="image-gen-vto"></a>

*가상 시도*는 참조 이미지의 내용이 마스크 이미지의 지침에 따라 소스 이미지에 중첩되는 이미지 안내형 인페인팅 사용 사례입니다. Amazon Nova Canvas는 의상, 액세서리, 가구 및 관련 객체에 맞춰 조정되었습니다. 이 모델은 이미지에 로고나 텍스트를 추가하는 등의 다른 경우에도 적합합니다.

가상 시도 API를 사용하여 최대 5개의 이미지를 생성할 수 있습니다. 기본적으로 이미지는 1개만 생성됩니다.

가상 시도를 수행하려면 다음 세 가지 이미지를 제공해야 합니다.
+ *소스 이미지* - 수정하려는 원본 이미지입니다. 예를 들면 이미지, 사람 또는 방의 모습이 담긴 이미지입니다.
+ *참조 이미지* - 소스 이미지에 중첩하려는 항목, 객체 또는 아이템이 포함된 이미지입니다. 예를 들어 재킷이나 그릇 또는 소파 등이 포함될 수 있습니다. 의상의 경우 참조 이미지에는 신체에 착용하거나 착용하지 않은 의상과 의상의 고유한 구성 요소(예: 단일 이미지의 셔츠, 바지, 신발 등)를 나타내는 여러 제품이 포함될 수 있습니다.
+ *마스크 이미지* - 소스에서 수정할 영역을 정의하는 이미지입니다. 마스크 이미지는 소스 이미지에서 수정할 부분을 정의하는 데 사용되는 흑백 이미지입니다. 검은색 픽셀은 소스 이미지에서 수정할 영역을 나타내고, 흰색 픽셀은 보존할 영역을 나타냅니다. 직접 마스크 이미지를 제공하거나 제공한 다른 입력 파라미터를 기반으로 모델이 자동으로 이미지를 생성하게 할 수 있습니다.

  지정된 경우 마스크 이미지를 출력의 일부로 반환할 수 있습니다.

모델이 작동하는 방식에 대한 몇 가지 예제는 다음과 같습니다.

------
#### [ Upper body clothing ]

다음 이미지는 Amazon Nova가 상의를 모델에 중첩하는 방법의 예를 보여줍니다.


| 소스 이미지 | 참조 이미지 | 출력 | 
| --- |--- |--- |
|  ![\[선글라스를 착용하고 왼쪽을 바라보며 파란색 셔츠를 입고 있는 남성입니다.\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/vto1_source.jpg)  |  ![\[분홍빛의 빨간색 버튼 다운 셔츠입니다.\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/vto1_ref.jpg)  |  ![\[선글라스를 착용하고 왼쪽을 바라보며 분홍빛의 빨간색 버튼 다운 셔츠를 입고 있는 남성입니다.\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/vto1_output.png)  | 

------
#### [ Couch in a room ]

다음 이미지는 Amazon Nova가 소파를 가구가 배치된 방에 중첩하는 방법의 예를 보여줍니다.


| 소스 이미지 | 참조 이미지 | 출력 | 
| --- |--- |--- |
|  ![\[다양한 장식으로 둘러싸인 방 안에 있는 미드센트리 모던 스타일의 회색 소파입니다.\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/vto2_source.jpg)  |  ![\[하얀 배경 앞에 놓인 주황색 소파입니다.\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/vto2_ref.jpg)  |  ![\[다양한 장식으로 둘러싸인 방 안에 있는 주황색 소파입니다.\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/vto2_output.png)  | 

------

다른 Amazon Nova Canvas 작업 유형과 달리 가상 시도는 텍스트 프롬프트 또는 네거티브 텍스트 프롬프트를 지원하지 않습니다.

## 마스크 이미지 정의
<a name="image-gen-vto-mask"></a>

`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"` 마스크 유형을 사용할 때 이 설정(기본값)을 사용하는 것이 좋습니다.

## 새로운 포즈, 손 또는 얼굴 생성
<a name="image-gen-vto-exclusions"></a>

소스 이미지에 있는 사람의 포즈, 손 또는 얼굴을 유지하거나 다시 생성하도록 모델에 지시할 수 있습니다. 이러한 요소를 유지하도록 선택하면 선택한 `maskType`과 관계없이 마스크 이미지에서 자동으로 제거됩니다.

다음과 같은 상황에서는 포즈, 손 또는 얼굴을 유지하는 것이 좋습니다.
+ 최종 사용자가 직접 마스크를 그릴 수 있는 애플리케이션을 개발하는 경우 이러한 요소를 유지하면 최종 사용자가 실수로 마스크에 손이나 얼굴을 포함하는 것을 방지할 수 있습니다.
+ `maskShape: BOUNDING_BOX`를 사용하지만 손이나 얼굴을 새로 생성하고 싶지 않은 경우 `preserveFace: ON` 또는 `preserveHands: ON`을 사용하면 이러한 요소가 자동으로 마스크에서 제외됩니다.
+ 직립 포즈가 아닌 모델의 이미지에서 `maskType:GARMENT`와 `maskShape: BOUNDING_BOX`를 사용하는 경우 경계 상자 마스크가 얼굴과 겹칠 수 있으므로 `preserveFace: ON`을 사용하는 것이 좋습니다.

반대로 다음과 같은 상황에서는 포즈, 손 또는 얼굴을 다시 생성하는 것이 좋습니다.
+ 목을 덮는 의상의 경우 `preserveFace: ON`을 사용하면 출력에 부정적 영향을 줄 정도로 목의 영역이 제외될 수 있습니다.
+ 모델이 하이힐을 신고 있으며 참조 이미지의 신발이 플랫 슈즈이거나 그 반대의 경우 바디 포즈를 유지하면 부자연스러운 결과물이 생성됩니다.
+ 앞의 내용과 마찬가지로 핸드백이나 기타 액세서리를 시도할 때 새로운 포즈나 손을 생성하면 더 자연스러워 보이는 결과를 얻을 수 있습니다.

## 스타일 신호
<a name="image-gen-vto-styling"></a>

`garmentStyling` 파라미터를 사용하면 촬영 사진에서 볼 수 있는 특정 의상 스타일 신호를 유지하거나 변경할 수 있습니다. 예를 들어 Amazon Nova Canvas는 셔츠 소매를 걷거나 내리는 방식으로 또는 셔츠를 안으로 집어넣거나 빼는 방식으로 스타일을 수정할 수 있습니다. 다음과 같은 옵션을 사용할 수 있습니다.
+ `"longSleeveStyle"` - 긴 소매 셔츠의 소매가 걷혀 있는지 내려와 있는지를 제어합니다.
  + `"SLEEVE_DOWN"` - 소스 이미지에서 소매를 걷거나 내린 긴 소매 셔츠, 반소매 셔츠 또는 민소매 셔츠를 착용한 경우에 적용할 수 있습니다.
  + `"SLEEVE_UP"` - 소스 이미지에서 소매를 걷은 긴소매 셔츠, 반소매 셔츠 또는 민소매 셔츠를 착용한 경우에 적용할 수 있습니다.
+ `"tuckingStyle"` - 상의가 안으로 들어가 있는지 또는 밖으로 나와 있는지를 제어합니다.
  + `"UNTUCKED"` - 소스 이미지의 셔츠가 안으로 들어가 있든 나와 있든 상관없이 적용할 수 있습니다.
  + `"TUCKED"` - 소스 이미지의 셔츠가 안으로 들어가 있는 경우에 적용할 수 있습니다.
+ `"outerLayerStyle"` - 상의가 열린 상태인지 또는 닫혀 있는지를 제어합니다. 기본값은 `"CLOSED"`이며 대부분의 의상(예: 셔츠, 스웨터)에 적합합니다. 재킷과 같은 외투에 이 값을 `"OPEN"`으로 설정하면 소스 이미지의 원래 상의가 그대로 유지되며 새 외투가 그 위에 겹쳐집니다. `"CLOSED"` 값을 외투에 사용하면 의상이 닫힌 상태로 렌더링되지 않을 수도 있습니다. 이는 `"CLOSED"` 값이 소스 이미지의 모든 상의가 교체된다는 것만 보장하가 때문에 경우에 따라 외투가 열린 상태로 렌더링되고 그 아래에 새로운 레이어가 보일 수 있습니다.
  + `"CLOSED"`
  + `"OPEN"`

자세한 내용은 [이미지 생성을 위한 요청 및 응답 구조](image-gen-req-resp-structure.md) 섹션의 `garmentStyling` 파라미터를 참조하세요.

## 이미지 스티칭
<a name="image-gen-vto-stitching"></a>

가상 시도를 사용하면 이미지가 함께 스티칭되어 최종 이미지가 생성되는 방식을 결정할 수 있습니다. `"BALANCED"`, `"SEAMLESS"`, `"DETAILED"` 중에서 선택할 수 있습니다. 병합 스타일마다 해당 요소를 함께 연결하여 최종 이미지를 생성하는 방법에 대한 접근 방식이 다르며 각각 장단점이 있습니다.
+ `"BALANCED"` - 원본 이미지에서 마스킹 처리되지 않은 픽셀을 보호하여 원본과 100% 동일한 상태를 유지하게 합니다. 경우에 따라 출력 이미지에서 색상이나 텍스처가 미세하게 불일치하여 마스크 형태가 마치 '유령' 이미지처럼 보일 수 있습니다. 이는 사람이 단색 또는 균일한 텍스처를 배경으로 하고 서 있는 이미지에서 발생할 가능성이 높습니다. 이를 방지하기 위해 `"SEAMLESS"` 병합 스타일을 대신 사용할 수 있습니다.
+ `"SEAMLESS"` - 최종 이미지에서 마스킹된 영역과 마스킹 처리되지 않은 영역 사이에 눈에 띄는 경계가 생기지 않게 합니다. 단점은 이미지의 모든 픽셀이 약간 변경되고 때로는 이미지에서 마스킹되지 않은 영역의 정밀한 세부 사항이 희미해지는 것입니다.
+ `"DETAILED"` - 로고 및 텍스트와 같은 정밀한 세부 사항을 크게 개선할 수 있으며 특히 마스킹된 영역이 전체 이미지에 비해 상대적으로 작은 경우에 효과적입니다. 이 모델은 원본 이미지에서 마스킹된 영역만 포함하여 정밀하게 잘라낸 고해상도 버전에서 인페인팅을 수행하여 이를 달성합니다. 그런 다음 결과를 원본 이미지에 다시 병합합니다. `"BALANCED"` 모드를 사용할 때와 마찬가지로 이 모드에서는 경계가 보일 수 있습니다.