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