

# Amazon Nova Canvas 프롬프팅 모범 사례
<a name="prompting-image-generation"></a>

이미지 생성 모델에 대한 프롬프팅은 대규모 언어 모델(LLM)에 대한 프롬프팅과 다릅니다. 이미지 생성 모델에는 명시적 명령을 추론하거나 해석할 수 있는 기능이 없습니다. 따라서 명령이나 대화가 아닌 이미지 캡션처럼 프롬프트 문구를 작성하는 것이 가장 좋습니다. 피사체, 액션, 환경, 조명, 스타일, 카메라 위치에 대한 세부 정보를 포함할 수 있습니다.

이미지 생성 프롬프트를 작성할 때 다음 요구 사항과 모범 사례를 염두에 두세요.
+ 프롬프트는 1,024자 이하여야 합니다. 프롬프트가 매우 긴 경우에는 프롬프트의 가장 중요하지 않은 세부 정보를 끝에 배치하세요.
+ 프롬프트에 *'안돼'*, *‘아니요’*, *'없음'* 등의 부정어를 사용하지 마세요 모델은 프롬프트에서 부정을 이해하지 못하므로 부정어를 사용하려고 하면 의도한 것과 반대의 결과가 나옵니다. 예를 들어 *'바나나가 없는 과일 바구니'*와 같은 프롬프트는 실제로 모델에 바나나를 포함하라는 신호를 보냅니다. 대신 `negativeText` 파라미터를 통해 부정 프롬프트를 사용하여 이미지에서 제외하려는 객체나 특성을 지정할 수 있습니다. *'바나나'*를 예로 들 수 있습니다.
+ 프롬프트와 마찬가지로 부정적인 프롬프트에서 부정어를 생략하세요.
+ 프롬프트에서 얻은 출력이 원하는 것에 가깝지만 완벽하지 않은 경우 다음 기술을 하나씩 차례로 시도하여 결과를 개선해 보세요.
  + 일관된 `seed` 값을 사용하여 프롬프트 또는 부정적인 프롬프트를 약간 변경하고 프롬프트를 다시 실행합니다. 이를 통해 프롬프트 문구가 출력에 어떤 영향을 미치는지 더 잘 이해할 수 있으므로 통제된 방식으로 결과를 반복적으로 개선할 수 있습니다.
  + 프롬프트가 원하는 대로 수정되면 동일한 프롬프트에 다른 `seed` 값을 사용하여 더 많은 변형을 생성합니다. 완벽한 출력 이미지를 찾기 위해 다양한 시드로 샘플 프롬프트를 실행하여 이미지의 여러 변형을 생성하는 것이 유용한 경우가 많습니다.

효과적인 프롬프트에는 종종 다음에 대한 간략한 설명이 포함됩니다.

1. 피사체

1. 환경

1. (선택 사항) 피사체의 위치 또는 자세

1. (선택 사항) 조명 설명

1. (선택 사항) 카메라 위치/프레이밍

1. (선택 사항) 시각적 스타일 또는 미디어(‘사진‘, ‘그림‘, ‘페인팅‘ 등)

## 예제 1: 스톡 사진
<a name="generate-collapsable1"></a>

**프롬프트:** 따뜻한 미소를 지으며 칠판 앞에 서 있는 여교사의 사실적인 편집 사진

**부정적인 프롬프트:** 팔짱을 낀 모습

![\[따뜻한 미소를 지으며 칠판 앞에 서 있는 여교사의 사실적인 편집 사진\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/example1.png)


## 예제 2: 스토리 일러스트레이션
<a name="generate-collapsable2"></a>

**프롬프트:** 묘하고 몽환적인 부드러운 색조의 스토리 일러스트레이션: 큰 모자를 쓴 여성이 배 난간에 서서 바다를 바라보고 있음

**부정적인 프롬프트:** 구름, 파도

![\[묘하고 몽환적인 부드러운 색조의 스토리 일러스트레이션: 큰 모자를 쓴 여성이 배 난간에 서서 바다를 바라보고 있음\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/simple-image-output-1.png)


## 예제 3: TV 및 영화 제작을 위한 사전 시각화
<a name="generate-collapsable3"></a>

**프롬프트:** 황량한 아이슬란드 풍경 사이로 굽이치는 어두운 강의 드론 촬영, 영화 같은 품질

![\[황량한 아이슬란드 풍경 사이로 굽이치는 어두운 강의 드론 촬영, 영화 같은 품질\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/previs.png)


## 예제 4: 패션 또는 에디토리얼 콘텐츠
<a name="generate-collapsable4"></a>

**프롬프트:** 주황색 재킷을 입고 어두운 피부에 반사 안경을 쓴 멋지고 세련된 남성. 약간 낮은 각도에서 촬영되었으며, 얼굴과 가슴이 보이고, 배경에는 청록색의 세련된 건물들이 보입니다.

![\[주황색 재킷을 입고 어두운 피부에 반사 안경을 쓴 멋지고 세련된 남성. 약간 낮은 각도에서 촬영되었으며, 얼굴과 가슴이 보이고, 배경에는 청록색의 세련된 건물들이 보입니다.\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/output.png)


**Topics**
+ [부정적인 프롬프트](prompting-image-negative.md)
+ [마스크 프롬프트](prompting-image-masks.md)
+ [인페인팅 프롬프트](prompting-image-inpainting.md)
+ [아웃페인팅 프롬프트](prompting-image-outpainting.md)

# 부정적인 프롬프트
<a name="prompting-image-negative"></a>

`negativeText` 파라미터로 표시되는 부정적인 프롬프트는 의외로 유용할 수 있습니다. 부정적인 프롬프트를 사용하여 기본 프롬프트의 결과로 자연스럽게 발생할 수 있는 객체 또는 스타일 특성을 제외합니다. 다음 예를 참고하세요

**프롬프트:** *‘묘하고 몽환적인 부드러운 색조의 스토리 일러스트레이션: 큰 모자를 쓴 여성이 배 난간에 서서 바다를 바라보고 있음‘*

**부정적인 프롬프트가 없는 경우**

![\[묘하고 몽환적인 부드러운 색조의 스토리 일러스트레이션: 큰 모자를 쓴 여성이 배 난간에 서서 바다를 바라보고 있음\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/image_1.png)


‘파도, 구름’이라는 **부정적인 프롬프트가 있는 경우**

![\[‘파도, 구름”이라는 부정적인 프롬프트가 있는 이전 이미지\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/image_1(1).png)


# 마스크 프롬프트
<a name="prompting-image-masks"></a>

마스크 프롬프트는 편집 작업에 사용됩니다. 마스크 프롬프트를 사용하면 자연어를 사용하여 이미지 내에서 변경하려는 요소(인페인팅의 경우) 또는 그대로 두려는 요소(아웃페인팅의 경우)를 설명할 수 있습니다. `maskPrompt` 파라미터를 사용하여 요청의 일부로 마스크 프롬프트를 전달합니다. 다음은 마스크 프롬프트의 결과를 시각화하는 몇 가지 예제입니다. 마스킹된 영역은 진한 파란색으로 표시됩니다.

**마스크 프롬프트: ‘개‘**

![\[개\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/Screenshot1.png)


**maskPrompt: ‘개‘**

![\[개\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/Screenshot3.png)


**마스크 프롬프트: ‘양동이 속의 개‘**

![\[양동이 속의 개\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/Screenshot2.png)


**maskPrompt: ‘검은 개‘**

![\[검은 개\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/Screenshot4.png)


# 인페인팅 프롬프트
<a name="prompting-image-inpainting"></a>

인페인팅은 이미지 내에서 요소를 추가, 제거 또는 교체하는 데 사용할 수 있는 편집 작업입니다. 인페인팅에는 입력 이미지와 이미지의 변경할 부분을 정의하기 위한 자연어 마스크 프롬프트(`maskPrompt`) 또는 사용자가 제공한 마스크 이미지(`maskImage`)가 필요합니다.

## 예제 1: 이미지에서 요소 제거
<a name="generate-collapsable5"></a>

이미지에서 요소를 제거하려면 제거할 사물을 완전히 포함하는 마스크를 제공하고 요청에서 `text` 파라미터를 생략합니다. 이는 모델에게 해당 요소를 제거하라는 신호를 보냅니다.

**입력 이미지**

![\[화분 3개\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/three_pots.jpg)


**마스크 프롬프트**

‘화분 안의 꽃‘

**결과**

![\[화분이 없는 장면\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/remove-with-prompt.png)


## 예제 2: 이미지에 요소 추가
<a name="generate-collapsable6"></a>

이미지에 요소를 추가하려면 요소를 추가할 영역의 경계를 정의하는 마스크와 편집 후 *전체* 이미지의 모양을 설명하는 텍스트 프롬프트를 사용합니다. 일반적으로 마스크 이미지를 사용하는 것이 더 효과적이지만 마스크 프롬프트를 대신 사용할 수도 있습니다.

다음 예제에서는 *‘온실 속 테이블 아래의 정원 난쟁이‘*라는 `text` 값을 사용합니다.

**입력 이미지**

![\[화분 3개\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/three_pots.jpg)


**마스크 이미지**

![\[마스크 이미지\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/three_pots-add_mask_INVERTED.png)


**결과**

![\[마스크 위치에 새 요소 추가됨\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/add-with-mask-image-1.png)


## 예제 3: 이미지의 요소 교체
<a name="generate-collapsable7"></a>

인페인팅을 사용하여 하나의 요소를 새 요소로 바꿀 수 있습니다. 이를 위한 일반적인 방법은 교체하려는 사물을 설명하는 마스크 프롬프트를 사용하는 것입니다. 이 접근 방식을 사용할 때 새 콘텐츠의 개요는 대체하려는 요소의 개요와 거의 일치합니다. 이것이 원하는 것이 아니라면 바꾸고자 하는 요소를 완전히 포함하지만 윤곽선에 직접 붙지 않는 마스크 이미지를 생성하세요.

다음 예제에서는 `text` 값으로 *‘야자수 그래픽’*을 사용하고 `negativeText` 값으로 *‘다양한 색채‘*를 사용합니다.

**입력 이미지**

![\[참조 이미지\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/ref-img-seed-1.png)


**마스크 프롬프트**

*‘dog‘*

**결과**

![\[인페인팅된 이미지\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/ref-inpainted-1.png)


# 아웃페인팅 프롬프트
<a name="prompting-image-outpainting"></a>

아웃페인팅은 이미지의 배경을 대체하는 데 사용됩니다. 최상의 결과를 얻으려면 아웃페인팅 프롬프트가 변경되지 않을 이미지 부분을 포함하여 *전체* 이미지의 모양을 설명해야 합니다.

다음 예제에서는 `text` 값으로 *'세련된 주방의 커피메이커, 커피메이커 옆의 빵 한 접시, 커피 한 잔'*을 사용합니다.

**입력 이미지**

![\[Amazon 커피메이커\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/amazon-coffee-maker-1.png)


**마스크 프롬프트**: *‘커피메이커‘*

**결과**

![\[배경 교체 이미지\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/background-replacement-mask-prompt-example-1.png)


다음은 `text` 값으로 *‘야외 화분대 위에 놓인 화분의 상세 사진‘*을 사용하는 또 다른 예제입니다.

**입력 이미지**

![\[화분 3개\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/three_pots.jpg)


**마스크 이미지**

![\[마스크 이미지\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/three_pots-remove_mask_INVERTED.png)


**결과**

![\[새 배경으로 이동된 마스크 항목\]](http://docs.aws.amazon.com/ko_kr/nova/latest/userguide/images/potted.png)
