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을 참조하세요.