Imagen API를 사용하면 텍스트 프롬프트와 참고 이미지를 사용하여 피사체 또는 스타일 생성을 안내해 몇 초 만에 고품질 이미지를 만들 수 있습니다.
지원되는 모델
모델 | 코드 |
---|---|
참고 이미지를 사용한 맞춤설정(퓨샷) | 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 |
필수 열거:
|
referenceId |
integer 필수 The 참조 ID입니다. 프롬프트에서 이 참조 ID를 사용합니다. 예를 들어 [1] 을 사용하여 referenceId=1의 참고 이미지를 참조하고 [2] 를 사용하여 referenceId=2의 참고 이미지를 참조합니다.
|
referenceImage.bytesBase64Encoded |
필수 string 인코딩된 참고 이미지의 Base64 문자열입니다. |
maskImageConfig.maskMode |
선택적 열거:
referenceType 이 REFERENCE_TYPE_MASK 로 설정된 경우 지정됩니다.
|
maskImageConfig.dilation |
선택사항인 float 입니다. 범위는 [0, 1]입니다.이 마스크를 확장할 이미지 너비의 비율입니다. referenceType 이 REFERENCE_TYPE_MASK 로 설정된 경우 지정됩니다.
|
maskImageConfig.maskClasses |
선택사항인 list[Integer] 입니다.MASK_MODE_SEMANTIC 모드의 마스크 클래스입니다.referenceType 이 REFERENCE_TYPE_MASK 로 설정된 경우 지정됩니다.
|
controlImageConfig.controlType |
필수 열거:
referenceType 이 REFERENCE_TYPE_CONTROL 로 설정된 경우 지정됩니다.
|
controlImageConfig.enableControlImageComputation |
선택사항인 bool 입니다.기본값은 false 입니다.
referenceType 이 REFERENCE_TYPE_CONTROL 로 설정된 경우 지정됩니다.
|
language |
선택사항: 텍스트 프롬프트 언어에 해당하는 언어 코드입니다. 다음과 같은 값이 지원됩니다.
en : 영어(생략된 경우 기본값)
|
subjectImageConfig.subjectDescription |
필수 항목인 string 입니다.이미지의 피사체에 관한 간단한 설명입니다. 짧은 갈색 머리를 한 여성을 예로 들 수 있습니다. referenceType 이 REFERENCE_TYPE_SUBJECT 로 설정된 경우 지정됩니다.
|
subjectImageConfig.subjectType |
필수 열거:
referenceType 이 REFERENCE_TYPE_SUBJECT 로 설정된 경우 지정됩니다.
|
styleImageConfig.styleDescription |
선택사항인 string 입니다.스타일에 대한 간단한 설명입니다. referenceType 이 REFERENCE_TYPE_STYLE 로 설정된 경우 지정됩니다.
|
응답
REST 요청의 응답 본문입니다.
매개변수 | |
---|---|
predictions |
|
비전 생성 모델 결과 객체
모델 결과에 대한 정보입니다.
매개변수 | |
---|---|
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_ ) |
객체 |
---|---|
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 | 창 블라인드 |
다음 단계
- 자세한 내용은 Vertex AI의 Imagen을 참조하세요.