이미지 맞춤설정

Imagen API를 사용하면 텍스트 프롬프트와 참고 이미지를 사용하여 피사체 또는 스타일 생성을 안내해 몇 초 만에 고품질 이미지를 만들 수 있습니다.

수정 및 맞춤설정을 위한 Imagen 모델 카드 보기

지원되는 모델

모델 코드
참고 이미지를 사용한 맞춤설정(퓨샷) imagen-3.0-capability-001

각 모델에서 지원하는 기능에 대한 자세한 내용은 Imagen 모델을 참조하세요.

HTTP 메서드 및 URL

POST https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/imagen-3.0-capability-001:predict

예시 문법

텍스트 프롬프트 및 참고 이미지로 이미지를 맞춤설정하는 구문입니다.

구문

이미지를 맞춤설정하는 구문입니다.

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/imagen-3.0-capability-001:predict \
-d '{
    "instances": [
      {
        // Use [1] to refer to the reference images with referenceId=1
        // [2] to refer to the reference images with referenceId=2,
        // following the same format for all reference IDs that you provide.
        "prompt": "${TEXT_PROMPT}",
        "referenceImages": [
          // A list of at most 4 reference image objects.
          [...]
        ]
      }
    ],
    "parameters": {
        [...]
    }
}'

샘플 요청 본문:

이 요청은 얼굴 메시 대조 이미지와 참고 이미지 3개를 사용한 사람 맞춤설정에 관한 것입니다.

{
  "instances": [
    {
      "prompt": "Create an image about a man with short hair [1] in the pose of
       control image [2] to match the description: A pencil style sketch of a
       full-body portrait of a man with short hair [1] with hatch-cross drawing,
       hatch drawing of portrait with 6B and graphite pencils, white background,
       pencil drawing, high quality, pencil stroke, looking at camera, natural
       human eyes",
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_CONTROL",
          "referenceId": 2,
          "referenceImage": {
            "bytesBase64Encoded": "${IMAGE_BYTES_1}"
          },
          "controlImageConfig": {
            "controlType": "CONTROL_TYPE_FACE_MESH",
            "enableControlImageComputation": true
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "${IMAGE_BYTES_2}"
          },
          "subjectImageConfig": {
            "subjectDescription": "a man with short hair",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "${IMAGE_BYTES_3}"
          },
          "subjectImageConfig": {
            "subjectDescription": "a man with short hair",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "${IMAGE_BYTES_4}"
          },
          "subjectImageConfig": {
            "subjectDescription": "a man with short hair",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        }
      ]
    }
  ],
  "parameters": {
    "negativePrompt": "wrinkles, noise, Low quality, dirty, low res, multi face,
      rough texture, messy, messy background, color background, photo realistic,
      photo, super realistic, signature, autograph, sign, text, characters,
      alphabet, letter",
    "seed": 1,
    "language": "en",
    "sampleCount": 4
  }
}

매개변수 목록

구현 세부정보는 예시를 참고하세요.

이미지 맞춤설정

REST

매개변수
referenceType 필수 열거:
  • REFERENCE_TYPE_RAW
    • 수정 사용 사례에는 원시 참고 이미지가 필요합니다.
    • 다른 사용 사례에는 원시 참고 이미지가 필요하지 않습니다.
    • 요청당 원시 참고 이미지는 최대 1개가 존재합니다.
    • 출력 이미지의 크기는 원시 참조 입력 이미지와 같습니다.
  • REFERENCE_TYPE_MASK
    • 마스킹 수정 사용 사례에는 마스크 참고 이미지가 필요합니다.
    • 다른 사용 사례에는 마스크 참고 이미지가 필요하지 않습니다.
    • 원시 참고 이미지가 있는 경우 마스크 이미지는 원시 참고 이미지와 동일한 크기여야 합니다.
    • 사용자는 자체 마스크를 제공하거나 제공된 참고 이미지에서 Imagen이 마스크를 계산하도록 할 수 있습니다.
    • 마스크 참고 이미지가 비어 있고 maskModeMASK_MODE_USER_PROVIDED로 설정되지 않은 경우 마스크는 원시 참고 이미지를 토대로 계산됩니다.
  • REFERENCE_TYPE_CONTROL
    • 원시 참고 이미지가 있는 경우 대조 이미지의 크기가 원시 참고 이미지와 동일해야 합니다.
    • 대조 참고 이미지가 비어 있고 enableControlImageComputationtrue로 설정된 경우 대조 이미지는 원시 참고 이미지를 토대로 계산됩니다.
  • REFERENCE_TYPE_SUBJECT
    • 사용자는 동일한 참조 ID로 여러 참고 이미지를 제공할 수 있습니다. 예를 들어 동일한 피사체의 여러 이미지에 동일한 참조 ID가 있을 수 있습니다. 이렇게 하면 출력 품질이 향상될 수 있습니다.
  • REFERENCE_TYPE_STYLE
    • 모델에서 생성된 이미지의 스타일을 안내하는 데 사용하는 스타일 참조 이미지입니다.
referenceId integer 필수

The 참조 ID입니다. 프롬프트에서 이 참조 ID를 사용합니다. 예를 들어 [1]을 사용하여 referenceId=1의 참고 이미지를 참조하고 [2]를 사용하여 referenceId=2의 참고 이미지를 참조합니다.
referenceImage.bytesBase64Encoded 필수 string

인코딩된 참고 이미지의 Base64 문자열입니다.
maskImageConfig.maskMode 선택적 열거:
  • MASK_MODE_USER_PROVIDED: 참고 이미지가 마스크 이미지인 경우입니다.
  • MASK_MODE_BACKGROUND: 배경 세분화를 사용하여 마스크를 자동으로 생성합니다.
  • MASK_MODE_FOREGROUND: 전경 세분화를 사용하여 마스크를 자동으로 생성합니다.
  • MASK_MODE_SEMANTIC: 시맨틱 세분화와 지정된 마스크 클래스를 사용하여 마스크를 자동으로 생성합니다.

referenceTypeREFERENCE_TYPE_MASK로 설정된 경우 지정됩니다.
maskImageConfig.dilation
선택사항인 float입니다. 범위는 [0, 1]입니다.

이 마스크를 확장할 이미지 너비의 비율입니다.

referenceTypeREFERENCE_TYPE_MASK로 설정된 경우 지정됩니다.
maskImageConfig.maskClasses
선택사항인 list[Integer]입니다.

MASK_MODE_SEMANTIC 모드의 마스크 클래스입니다.

referenceTypeREFERENCE_TYPE_MASK로 설정된 경우 지정됩니다.
controlImageConfig.controlType
필수 열거:
  • CONTROL_TYPE_FACE_MESH: 얼굴 메시(사람 맞춤설정)
  • CONTROL_TYPE_CANNY: 캐니 윤곽선
  • CONTROL_TYPE_SCRIBBLE: 지그재그로 선 그리기

referenceTypeREFERENCE_TYPE_CONTROL로 설정된 경우 지정됩니다.
controlImageConfig.enableControlImageComputation
선택사항인 bool입니다.
기본값은 false입니다.

  • 자체 제어 이미지를 제공하는 경우 false로 설정합니다.
  • Imagen이 참고 이미지에서 대조 이미지를 계산하도록 하려면 true로 설정합니다.

referenceTypeREFERENCE_TYPE_CONTROL로 설정된 경우 지정됩니다.
language

선택사항: string(imagen-3.0-capability-001, imagen-3.0.generate-001, imagegeneration@006만 해당)

텍스트 프롬프트 언어에 해당하는 언어 코드입니다. 다음과 같은 값이 지원됩니다.

  • auto: 자동 감지. Imagen에서 지원되는 언어를 감지하면 프롬프트와 선택적 부정 프롬프트가 영어로 번역됩니다. 감지된 언어가 지원되지 않으면 Imagen은 입력 텍스트를 그대로 사용하므로 예기치 않은 출력이 발생할 수 있습니다. 오류 코드는 반환되지 않습니다.
  • en: 영어(생략된 경우 기본값)
  • es: 스페인어
  • hi: 힌디어
  • ja: 일본어
  • ko: 한국어
  • pt: 포르투갈어
  • zh-TW: 중국어(번체)
  • zh 또는 zh-CN: 중국어(간체)
subjectImageConfig.subjectDescription
필수 항목인 string입니다.

이미지의 피사체에 관한 간단한 설명입니다. 짧은 갈색 머리를 한 여성을 예로 들 수 있습니다.

referenceTypeREFERENCE_TYPE_SUBJECT로 설정된 경우 지정됩니다.
subjectImageConfig.subjectType
필수 열거:
  • SUBJECT_TYPE_PERSON: 사람 피사체 유형입니다.
  • SUBJECT_TYPE_ANIMAL: 동물 피사체 유형입니다.
  • SUBJECT_TYPE_PRODUCT: 제품 피사체 유형입니다.
  • SUBJECT_TYPE_DEFAULT: 기본 피사체 유형입니다.

referenceTypeREFERENCE_TYPE_SUBJECT로 설정된 경우 지정됩니다.
styleImageConfig.styleDescription
선택사항인 string입니다.
스타일에 대한 간단한 설명입니다.

referenceTypeREFERENCE_TYPE_STYLE로 설정된 경우 지정됩니다.

응답

REST 요청의 응답 본문입니다.

매개변수
predictions

VisionGenerativeModelResult 객체의 배열로, 요청된 sampleCount마다 하나씩 있습니다. 이미지가 책임감 있는 AI로 필터링된 경우 이미지는 포함되지 않습니다.

비전 생성 모델 결과 객체

모델 결과에 대한 정보입니다.

매개변수
bytesBase64Encoded

base64로 인코딩된 생성된 이미지입니다. 출력 이미지가 책임감 있는 AI 필터를 통과하지 못하면 표시되지 않습니다.

mimeType

생성된 이미지 유형입니다. 출력 이미지가 책임감 있는 AI 필터를 통과하지 못하면 표시되지 않습니다.

예시

다음 예시에서는 Imagen 모델을 사용하여 이미지를 맞춤설정하는 방법을 보여줍니다.

이미지 맞춤설정

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트 ID
  • LOCATION: 프로젝트의 리전. 예를 들면 us-central1, europe-west2, asia-northeast3입니다. 사용 가능한 리전 목록은 Vertex AI의 생성형 AI 위치를 참조하세요.
  • TEXT_PROMPT: 모델이 생성하는 이미지를 안내하는 텍스트 프롬프트. Imagen 3 맞춤설정을 사용하려면 제공하는 참고 이미지 또는 이미지의 referenceId[$referenceId] 형식으로 포함합니다. 예를 들면 다음과 같습니다.
    • 다음 텍스트 프롬프트는 "referenceId": 1이 지정된 참고 이미지 2개가 있는 요청에 대한 프롬프트입니다. 두 이미지 모두 "subjectDescription": "man with short hair"에 관한 설명(선택사항)이 있습니다. 다음 설명과 일치하는 짧은 머리의 남성에 관한 이미지를 만들어 줘: 연필 스타일 스케치이고 해칭 기법으로 그린 man with short hair [1]의 전신 초상화, 6B 및 그래파이트 연필로 해칭 기법을 사용해 그린 초상화, 흰색 배경, 연필 그림, 고품질, 연필 획, 카메라를 바라보는 모습, 자연스러운 눈
  • "referenceId": 참고 이미지의 ID 또는 동일한 피사체 또는 스타일에 해당하는 일련의 참고 이미지 ID입니다. 이 예에서 두 참고 이미지는 동일한 사람에 대한 것이므로 동일한 referenceId(1)를 공유합니다.
  • BASE64_REFERENCE_IMAGE: 이미지 생성을 안내하는 참고 이미지입니다. 이미지는 base64 인코딩 바이트 문자열로 지정되어야 합니다.
  • SUBJECT_DESCRIPTION: (선택사항) prompt 필드에서 사용할 수 있는 참고 이미지의 텍스트 설명입니다. 예를 들면 다음과 같습니다.
          "prompt": "a full-body portrait of a man with short hair [1] with hatch-cross
          drawing",
          [...],
          "subjectDescription": "man with short hair"
        
  • IMAGE_COUNT: 생성 이미지의 수. 허용되는 정수 값: 1~4. 기본값: 4.

HTTP 메서드 및 URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict

JSON 요청 본문:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "BASE64_REFERENCE_IMAGE"
          },
          "subjectImageConfig": {
            "subjectDescription": "SUBJECT_DESCRIPTION",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "BASE64_REFERENCE_IMAGE"
          },
          "subjectImageConfig": {
            "subjectDescription": "SUBJECT_DESCRIPTION",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        }
      ]
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT
  }
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict" | Select-Object -Expand Content
다음은 "sampleCount": 2 요청에 대한 샘플 응답입니다. 응답은 생성된 이미지 바이트를 base64로 인코딩한 두 개의 예측 객체를 반환합니다.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

클래스 ID

다음 객체 클래스 ID를 사용하여 특정 객체를 기반으로 이미지 마스크를 자동으로 만듭니다.

클래스 ID(class_id) 객체
0 배낭
1 우산
2 가방
3 타이
4 여행 가방
5 케이스
6
7 고양이
8
9
10
11
12 코끼리
13
14 얼룩말
15 기린
16 동물(기타)
17 전자레인지
18 라디에이터
19 오븐
20 토스터
21 저장 탱크
22 컨베이어 벨트
23 싱크
24 냉장고
25 세탁 건조기
26 선풍기
27 식기 세척기
28 변기
29 욕조
30 샤워기
31 터널
32 다리(건축물)
33 부두
34 텐트
35 건물
36 천장
37 노트북
38 키보드
39 마우스
40 리모컨
41 휴대전화
42 텔레비전
43 바닥
44 단계
45 바나나
46 apple
47 샌드위치
48 주황색
49 브로콜리
50 당근
51 핫도그
52 피자
53 도넛
54 케이크
55 과일(기타)
56 음식(기타)
57 의자(기타)
58 안락의자
59 회전의자
60 스툴
61 시트
62 소파
63 휴지통
64 분재
65 침실용 탁자
66 침대
67
68 당구대
69
70 책상
71 오토만
72 의상
73 유아용 침대
74 바구니
75 서랍장
76 bookshelf
77 카운터(기타)
78 세면대
79 아일랜드 키친
80
81 조명(기타)
82 램프
83 촛대
84 샹들리에
85 거울
86 화이트보드
87 선반
88 계단
89 에스컬레이터
90 캐비닛
91 벽난로
92 레인지
93 아케이드 머신
94 자갈
95 platform
96 운동장
97 철도
98 도로
99
100 보행자 포장도로
101 런웨이
102 지형
103
104 box
105 시계
106 꽃병
107 가위
108 장난감(기타)
109 곰 인형
110 헤어드라이어
111 칫솔
112 그림
113 포스터
114 게시판
115
116
117 와인잔
118
119 포크
120 숟가락
121 그릇
122 쟁반
123 레인지 후드
124 접시
125 사람
126 라이더(기타)
127 자전거 타는 사람
128 모터사이클 선수
129 종이
130 가로등
131 도로 방호벽
132 편지함
133 CCTV 카메라
134 전기 배선함
135 도로 표지판
136 신호등
137 소화전
138 주차료 징수기
139 벤치
140 자전거 랙
141 빌보드
142 하늘
143 기둥
144 울타리
145 난간
146 가드레일
147 구릉 산지
148 암석
149 프리스비
150 스키
151 스노우보드
152 구기 종목
153
154 야구 방망이
155 야구 글러브
156 스케이트보드
157 서프보드
158 테니스 라켓
159 네트
160 기초
161 조각
162
163 분수
164 어닝
165 의류
166 배너
167 깃발
168 담요
169 커튼(기타)
170 샤워 커튼
171 베개
172 수건
173 러그 바닥매트
174 초목
175 자전거
176 자동차
177 오토 릭샤
178 오토바이
179 비행기
180 버스
181 기차
182 트럭
183 트레일러
184
185 느린 바퀴의 객체
186 강, 호수
187 바다
188 물(기타)
189 수영장
190 폭포
191
192 window
193 창 블라인드

다음 단계