이미지 생성

Imagen API를 사용하면 텍스트 프롬프트로 생성을 안내해 몇 초 만에 고품질 이미지를 만들 수 있습니다. Imagen API를 사용하여 이미지를 업스케일링할 수도 있습니다.

생성용 Imagen 모델 카드 보기

지원되는 모델

모델 코드
이미지 생성 imagen-3.0-generate-002
imagen-3.0-generate-001
imagen-3.0-fast-generate-001
imagegeneration@006
imagegeneration@005
imagegeneration@002

각 모델에서 지원하는 기능의 방식에 대한 자세한 내용은 모델 버전 관리를 참조하세요.

예시 문법

텍스트 프롬프트에서 이미지를 만드는 구문입니다.

구문

이미지를 생성하는 구문입니다.

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/${MODEL_VERSION}:predict \
-d '{
  "instances": [
    {
      "prompt": "..."
    }
  ],
  "parameters": {
    "sampleCount": ...
  }
}'

Python

generation_model = ImageGenerationModel.from_pretrained("imagen-3.0-generate-001")

response = generation_model.generate_images(
    prompt="...",
    negative_prompt="...",
    aspect_ratio=...,
)
response.images[0].show()

매개변수 목록

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

이미지 생성

REST

Parameters
prompt

필수: string

이미지의 텍스트 프롬프트입니다.

imagen-3.0-generate-002 모델은 토큰을 최대 480개까지 지원합니다.

imagen-3.0-generate-001 모델은 토큰을 최대 480개까지 지원합니다.

imagen-3.0-fast-generate-001 모델은 토큰을 최대 480개까지 지원합니다.

imagegeneration@006 모델은 토큰을 최대 128개까지 지원합니다.

imagegeneration@005 모델은 토큰을 최대 128개까지 지원합니다.

imagegeneration@002 모델은 토큰을 최대 64개까지 지원합니다.

sampleCount

필수: int

생성할 이미지 수입니다. 기본값은 4입니다.

imagen-3.0-generate-002 모델은 1~4 값을 지원합니다.

imagen-3.0-generate-001 모델은 1~4 값을 지원합니다.

imagen-3.0-fast-generate-001 모델은 1~4 값을 지원합니다.

imagegeneration@006 모델은 1~4 값을 지원합니다.

imagegeneration@005 모델은 1~4 값을 지원합니다.

imagegeneration@002 모델은 1~8 값을 지원합니다.

seed

선택사항: Uint32

이미지 생성에 사용되는 무작위 시드입니다. addWatermarktrue로 설정된 경우에는 사용할 수 없습니다.

enhancePrompttrue로 설정된 경우 seed 파라미터가 작동하지 않습니다. enhancePrompt가 새 프롬프트를 생성하여 새 이미지 또는 다른 이미지가 생성되기 때문입니다.

enhancePrompt

선택사항: boolean

LLM 기반 프롬프트 수정 기능을 사용하여 원래 프롬프트의 의도를 더 잘 반영하는 고품질 이미지를 제공하는 선택적 파라미터입니다. 이 기능을 사용 중지하면 이미지 품질과 프롬프트 준수가 영향을 받을 수 있습니다.

imagen-3.0-generate-002가 이 필드를 지원합니다. 기본값: true.

imagen-3.0-generate-001은 이 필드를 지원하지 않습니다.

imagen-3.0-fast-generate-001은 이 필드를 지원하지 않습니다.

imagegeneration@006은 이 필드를 지원하지 않습니다.

imagegeneration@005는 이 필드를 지원하지 않습니다.

imagegeneration@002는 이 필드를 지원하지 않습니다.

negativePrompt

선택사항: string

생성된 이미지에서 피해야 할 사항에 대한 설명입니다.

imagen-3.0-generate-002는 이 필드를 지원하지 않습니다.

imagen-3.0-generate-001 모델은 토큰을 최대 480개까지 지원합니다.

imagen-3.0-fast-generate-001 모델은 토큰을 최대 480개까지 지원합니다.

imagegeneration@006 모델은 토큰을 최대 128개까지 지원합니다.

imagegeneration@005 모델은 토큰을 최대 128개까지 지원합니다.

imagegeneration@002 모델은 토큰을 최대 64개까지 지원합니다.

aspectRatio

선택사항: string

이미지의 가로세로 비율입니다. 기본값은 '1:1'입니다.

imagen-3.0-generate-002 모델은 '1:1', '9:16', '16:9', '3:4' 또는 '4:3'을 지원합니다.

imagen-3.0-generate-001 모델은 '1:1', '9:16', '16:9', '3:4' 또는 '4:3'을 지원합니다.

imagen-3.0-fast-generate-001 모델은 '1:1', '9:16', '16:9', '3:4' 또는 '4:3'을 지원합니다.

imagegeneration@006 모델은 '1:1', '9:16', '16:9', '3:4' 또는 '4:3'을 지원합니다.

imagegeneration@005 모델은 '1:1' 또는 '9:16'을 지원합니다.

imagegeneration@002 모델은 '1:1'을 지원합니다.

outputOptions

선택사항: outputOptions

outputOptions 객체의 출력 이미지 형식을 설명합니다.

sampleImageStyle

선택사항: string(imagegeneration@002만 해당)

생성된 이미지의 스타일을 설명합니다. 다음 값이 지원됩니다.

  • "photograph"
  • "digital_art"
  • "landscape"
  • "sketch"
  • "watercolor"
  • "cyberpunk"
  • "pop_art"
personGeneration

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

모델에서 사람을 생성합니다. 다음 값이 지원됩니다.

  • "dont_allow": 이미지에 사람이나 얼굴이 포함되지 않습니다.
  • "allow_adult": 성인만 생성합니다.
  • "allow_all": 모든 연령의 사람을 생성합니다.

기본값은 "allow_adult"입니다.

safetySetting

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

필터 수준을 안전 필터링에 추가합니다. 다음 값이 지원됩니다.

  • "block_low_and_above": 가장 강력한 필터링 수준이며 가장 엄격하게 차단합니다. 지원 중단된 값: "block_most"
  • "block_medium_and_above": 문제가 있는 일부 프롬프트와 응답 차단 지원 중단된 값: "block_some"
  • "block_only_high": 안전 필터로 인해 차단된 요청 수를 줄입니다. Imagen에서 불쾌감을 주는 콘텐츠를 많이 생성할 수 있습니다. 지원 중단된 값: "block_few"
  • "block_none": 문제가 있는 프롬프트와 응답을 거의 차단하지 않습니다. 이 기능에 대한 액세스가 제한됩니다. 이전 필드 값: "block_fewest"

기본값은 "block_medium_and_above"입니다.

addWatermark

선택사항: bool

보이지 않는 워터마크를 생성된 이미지에 추가합니다. 기본값은 imagegeneration@002imagegeneration@005 모델의 경우 false이고 imagen-3.0-generate-002, imagen-3.0-generate-001, imagen-3.0-fast-generate-001, imagegeneration@006imagegeneration@006 모델의 경우 true입니다.

storageUri

선택사항: string

생성된 이미지를 저장할 Cloud Storage URI입니다.

출력 옵션 객체

outputOptions 객체는 이미지 출력을 설명합니다.

Parameters
outputOptions.mimeType

선택사항: string

출력을 저장할 이미지 형식입니다. 다음 값이 지원됩니다.

  • "image/png": PNG 이미지로 저장
  • "image/jpeg": JPEG 이미지로 저장

기본값은 "image/png"입니다.

outputOptions.compressionQuality

선택사항: int

출력 유형이 "image/jpeg"인 경우의 압축 수준입니다. 허용되는 값은 0~100입니다. 기본값은 75입니다.

응답

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

매개변수
predictions

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

비전 생성 모델 결과 객체

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

매개변수
bytesBase64Encoded

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

mimeType

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

raiFilteredReason

책임감 있는 AI 필터링 이유입니다. includeRaiReason이 사용 설정되어 있고 이 이미지가 필터링된 경우에만 반환됩니다.

safetyAttributes.categories

안전 속성 이름입니다. includeSafetyAttributes가 사용 설정되어 있고 출력 이미지가 책임감 있는 AI 필터를 통과한 경우에만 반환됩니다.

safetyAttributes.scores

안전 속성 점수입니다. includeSafetyAttributes가 사용 설정되어 있고 출력 이미지가 책임감 있는 AI 필터를 통과한 경우에만 반환됩니다.

Python

Parameters
prompt

필수: string

이미지의 텍스트 프롬프트입니다.

imagen-3.0-generate-001 모델은 토큰을 최대 480개까지 지원합니다.

imagen-3.0-fast-generate-001 모델은 토큰을 최대 480개까지 지원합니다.

imagegeneration@006 모델은 토큰을 최대 128개까지 지원합니다.

imagegeneration@005 모델은 토큰을 최대 128개까지 지원합니다.

imagegeneration@002 모델은 토큰을 최대 64개까지 지원합니다.

number_of_images

필수: int

생성할 이미지 수입니다. 기본값은 1입니다.

imagen-3.0-generate-001 모델은 1~8 값을 지원합니다.

imagen-3.0-fast-generate-001 모델은 1~8 값을 지원합니다.

imagegeneration@006 모델은 1~4 값을 지원합니다.

imagegeneration@005 모델은 1~4 값을 지원합니다.

imagegeneration@002 모델은 1~8 값을 지원합니다.

seed

선택사항: int

이미지 생성에 사용되는 무작위 시드입니다. addWatermarktrue로 설정된 경우에는 사용할 수 없습니다.

enhancePrompttrue로 설정된 경우 seed가 작동하지 않습니다. enhancePrompt가 새 프롬프트를 생성하여 새 이미지 또는 다른 이미지가 생성되기 때문입니다.

negative_prompt

선택사항: string

생성된 이미지에서 피해야 할 사항에 대한 설명입니다.

imagen-3.0-generate-001 모델은 토큰을 최대 480개까지 지원합니다.

imagen-3.0-fast-generate-001 모델은 토큰을 최대 480개까지 지원합니다.

imagegeneration@006 모델은 토큰을 최대 128개까지 지원합니다.

imagegeneration@005 모델은 토큰을 최대 128개까지 지원합니다.

imagegeneration@002 모델은 토큰을 최대 64개까지 지원합니다.

aspect_ratio

선택사항: string

이미지의 가로세로 비율입니다. 기본값은 '1:1'입니다.

imagen-3.0-generate-001 모델은 '1:1', '9:16', '16:9', '3:4' 또는 '4:3'을 지원합니다.

imagen-3.0-fast-generate-001 모델은 '1:1', '9:16', '16:9', '3:4' 또는 '4:3'을 지원합니다.

imagegeneration@006 모델은 '1:1', '9:16', '16:9', '3:4' 또는 '4:3'을 지원합니다.

output_mime_type

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

출력을 저장할 이미지 형식입니다. 다음 값이 지원됩니다.

  • "image/png": PNG 이미지로 저장
  • "image/jpeg": JPEG 이미지로 저장

기본값은 "image/png"입니다.

compression_quality

선택사항: int

출력 MIME 유형이 "image/jpeg"인 경우의 압축 수준입니다. 기본값은 75입니다.

language

선택사항: string

이미지의 텍스트 프롬프트 언어입니다. 다음 값이 지원됩니다.

  • "en": 영어
  • "hi": 힌디어
  • "ja": 일본어
  • "ko": 한국어
  • "auto": 자동 언어 감지

기본값은 "auto"입니다.

output_gcs_uri

선택사항: string

생성된 이미지를 저장할 Cloud Storage URI입니다.

add_watermark

선택사항: bool

워터마크를 생성된 이미지에 추가합니다. 기본값은 imagegeneration@002imagegeneration@005 모델의 경우 false이고 imagen-3.0-fast-generate-001, imagen-3.0-generate-001, imagegeneration@006 모델의 경우 true입니다.

safety_filter_level

선택사항: string

필터 수준을 안전 필터링에 추가합니다. 다음 값이 지원됩니다.

  • "block_low_and_above": 가장 강력한 필터링 수준이며 가장 엄격하게 차단합니다. 지원 중단된 값: "block_most"
  • "block_medium_and_above": 문제가 있는 일부 프롬프트와 응답 차단 지원 중단된 값: "block_some"
  • "block_only_high": 문제가 있는 프롬프트와 응답 몇 개만 차단 지원 중단된 값: "block_few"
  • "block_none": 문제가 있는 프롬프트와 응답을 거의 차단하지 않음 지원 중단된 값: "block_fewest"

기본값은 "block_medium_and_above"입니다.

person_generation

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

모델에서 사람을 생성합니다. 다음 값이 지원됩니다.

  • "dont_allow": 사람 생성 차단
  • "allow_adult": 성인을 생성하고 어린이를 생성하지 않음
  • "allow_all": 성인 및 어린이 생성

기본값은 "allow_adult"입니다.

이미지 업스케일링

REST

매개변수
mode

필수: string

확장 요청의 경우 "upscale"로 설정해야 합니다.

upscaleConfig

필수: UpscaleConfig

UpscaleConfig 객체입니다.

outputOptions

선택사항: OutputOptions

outputOptions 객체의 출력 이미지 형식을 설명합니다.

storageUri

선택사항: string

생성된 이미지를 저장할 Cloud Storage URI입니다.

구성 객체 확장

매개변수
upscaleConfig.upscaleFactor

필수: string

확장 인수입니다. 지원되는 값은 "x2""x4"입니다.

응답

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

매개변수
predictions

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

예시

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

이미지 생성

REST

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

  • PROJECT_ID: Google Cloud 프로젝트 ID
  • MODEL_VERSION: 사용할 imagegeneration 모델 버전입니다. 사용 가능한 값:
      .
    • Imagen 3:
      • imagen-3.0-generate-002(최신 모델)
      • imagen-3.0-generate-001
      • imagen-3.0-fast-generate-001 - 지연 시간이 짧은 모델 버전입니다.
    • 기본 모델 버전:
      • imagegeneration - 기본 모델 버전 v.006을 사용합니다. 특히 프로덕션 환경에서는 항상 모델 버전을 지정하는 것이 좋습니다.

    모델 버전 및 기능에 대한 자세한 내용은 모델 버전을 참조하세요.

  • LOCATION: 프로젝트의 리전입니다. 예를 들면 us-central1, europe-west2, asia-northeast3입니다. 사용 가능한 리전 목록은 Vertex AI의 생성형 AI 위치를 참조하세요.
  • TEXT_PROMPT: 모델이 생성하는 이미지를 안내하는 텍스트 프롬프트입니다. 이 필드는 생성 및 수정 모두에서 필요합니다.
  • IMAGE_COUNT: 생성된 이미지의 수입니다. 허용되는 정수 값은 1~8(imagegeneration@002), 1~4(기타 모든 모델 버전)입니다. 기본값: 4
  • 추가 선택적 파라미터

    사용 사례에 따라 다음 선택적 변수를 사용하세요. "parameters": {} 객체에 다음 파라미터 중 일부 또는 전부를 추가합니다. 이 목록에는 일반적인 선택적 파라미터가 나와 있으며 모든 파라미터가 포함되어 있지는 않습니다. 선택적 파라미터에 관한 자세한 내용은 Imagen API 참조: 이미지 생성을 참조하세요.

    "parameters": {
      "sampleCount": IMAGE_COUNT,
      "addWatermark": ADD_WATERMARK,
      "aspectRatio": "ASPECT_RATIO",
      "enhancePrompt": ENABLE_PROMPT_REWRITING,
      "includeRaiReason": INCLUDE_RAI_REASON,
      "includeSafetyAttributes": INCLUDE_SAFETY_ATTRIBUTES,
      "outputOptions": {
        "mimeType": "MIME_TYPE",
        "compressionQuality": COMPRESSION_QUALITY
      },
      "personGeneration": "PERSON_SETTING",
      "safetySetting": "SAFETY_SETTING",
      "seed": SEED_NUMBER,
      "storageUri": "OUTPUT_STORAGE_URI"
    }
    
    • ADD_WATERMARK: 불리언입니다. 선택사항입니다. 생성된 이미지에 워터마크를 사용 설정할지 여부입니다. 필드가 true로 설정되었을 때 생성되는 모든 이미지에는 워터마크가 추가된 이미지를 확인하는 데 사용할 수 있는 디지털 SynthID가 포함됩니다. 이 필드를 생략하면 기본값 true가 사용됩니다. 이 기능을 중지하려면 값을 false로 설정해야 합니다. 이 필드를 false로 설정한 경우에만 seed 필드를 사용하여 결정론적 출력을 얻을 수 있습니다.
    • ASPECT_RATIO: 문자열입니다. 선택사항입니다. 가로세로 비율을 제어하는 생성 모드 파라미터입니다. 지원되는 비율 값과 사용 목적은 다음과 같습니다.
      • 1:1(기본값, 정사각형)
      • 3:4(광고, 소셜 미디어)
      • 4:3(TV, 사진)
      • 16:9(가로)
      • 9:16(세로)
    • ENABLE_PROMPT_REWRITING: 불리언입니다. 선택사항입니다. LLM 기반 프롬프트 수정 기능을 사용하여 원래 프롬프트의 의도를 더 잘 반영하는 고품질 이미지를 제공하는 파라미터입니다. 이 기능을 사용 중지하면 이미지 품질과 프롬프트 준수가 영향을 받을 수 있습니다. 기본값: true.
    • INCLUDE_RAI_REASON: 불리언입니다. 선택사항입니다. 차단된 입력 또는 출력이 있는 응답에서 책임감 있는 AI 필터링된 이유 코드를 사용 설정할지 여부입니다. 기본값은 false입니다.
    • INCLUDE_SAFETY_ATTRIBUTES: 불리언입니다. 선택사항입니다. 필터링되지 않은 입력 및 출력에 대한 응답에서 안전 속성 목록에 대해 반올림된 책임감 있는 AI 점수를 사용 설정할지 여부입니다. 안전 속성 카테고리에는 "Death, Harm & Tragedy", "Firearms & Weapons", "Hate", "Health", "Illicit Drugs", "Politics", "Porn", "Religion & Belief", "Toxic", "Violence", "Vulgarity", "War & Conflict" 등이 있습니다. 기본값은 false입니다.
    • MIME_TYPE: 문자열입니다. 선택사항입니다. 이미지 콘텐츠의 MIME 유형입니다. 사용 가능한 값은 다음과 같습니다.
      • image/jpeg
      • image/gif
      • image/png
      • image/webp
      • image/bmp
      • image/tiff
      • image/vnd.microsoft.icon
    • COMPRESSION_QUALITY: 정수입니다. 선택사항입니다. JPEG 출력 파일에만 적용됩니다. JPEG 파일 형식으로 생성된 이미지에 대해 모델이 보존하는 세부 수준입니다. 값은 0~100이며 숫자가 클수록 압축이 더 높습니다. 기본값은 75입니다.
    • PERSON_SETTING: 문자열입니다. 선택사항입니다. 모델에서 허용하는 사람 유형이나 얼굴 생성 유형을 제어하는 안전 설정입니다. 사용 가능한 값은 다음과 같습니다.
      • allow_adult(기본값): 유명인 생성을 제외하고 성인만 생성합니다. 어떤 설정에서도 유명인은 생성되지 않습니다.
      • dont_allow: 생성된 이미지에 사람이나 얼굴이 포함되지 않습니다.
    • SAFETY_SETTING: 문자열입니다. 선택사항입니다. 생성된 이미지의 안전 필터 기준점을 제어하는 설정입니다. 사용 가능한 값은 다음과 같습니다.
      • block_low_and_above: 가장 높은 안전 기준점으로, 필터링되어 생성된 이미지 수가 가장 많습니다. 이전 값은 block_most입니다.
      • block_medium_and_above(기본값): 잠재적으로 유해하고 안전한 콘텐츠에 대한 필터링의 균형을 맞추는 중간 안전 기준점입니다. 이전 값은 block_some입니다.
      • block_only_high: 안전 필터로 인해 차단된 요청 수를 줄이는 안전 기준점입니다. 이 설정으로 인해 Imagen에서 불쾌감을 주는 콘텐츠를 많이 생성할 수 있습니다. 이전 값은 block_few입니다.
    • SEED_NUMBER: 정수입니다. 선택사항입니다. 출력 이미지를 결정론적으로 만들기 위해 제공하는 음수가 아닌 정수입니다. 동일한 시드 번호를 제공하면 항상 같은 출력 이미지가 생성됩니다. 사용 중인 모델이 디지털 워터마킹을 지원하는 경우 이 필드를 사용하려면 "addWatermark": false를 설정해야 합니다. 허용되는 정수 값은 1~2147483647입니다.
    • OUTPUT_STORAGE_URI: 문자열입니다. 선택사항입니다. 출력 이미지를 저장할 Cloud Storage 버킷입니다. 제공되지 않으면 base64로 인코딩된 이미지 바이트가 응답으로 반환됩니다. 샘플 값은 gs://image-bucket/output/입니다.

HTTP 메서드 및 URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict

JSON 요청 본문:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "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/MODEL_VERSION: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/MODEL_VERSION:predict" | Select-Object -Expand Content
다음은 "sampleCount": 2 요청에 대한 샘플 응답입니다. 응답은 생성된 이미지 바이트를 base64로 인코딩한 두 개의 예측 객체를 반환합니다.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

프롬프트 개선을 지원하는 모델을 사용하는 경우 생성에 사용된 개선된 프롬프트가 포함된 추가 prompt 필드가 응답에 포함됩니다.

{
  "predictions": [
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_1",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_1"
    },
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_2",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_2"
    }
  ]
}

Python

이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용Python 설정 안내를 따르세요. 자세한 내용은 Vertex AI Python API 참고 문서를 참조하세요.

Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

이 샘플에서는 ImageGenerationModel(@006 버전)에서 generate_images 메서드를 호출하고 생성된 이미지를 로컬로 저장합니다. 그런 다음 노트북에서 show() 메서드를 선택적으로 사용하여 생성된 이미지를 표시할 수 있습니다. 모델 버전 및 기능에 대한 자세한 내용은 모델 버전을 참조하세요.


import vertexai
from vertexai.preview.vision_models import ImageGenerationModel

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# output_file = "input-image.png"
# prompt = "" # The text prompt describing what you want to see.

vertexai.init(project=PROJECT_ID, location="us-central1")

model = ImageGenerationModel.from_pretrained("imagen-3.0-generate-002")

images = model.generate_images(
    prompt=prompt,
    # Optional parameters
    number_of_images=1,
    language="en",
    # You can't use a seed value and watermark at the same time.
    # add_watermark=False,
    # seed=100,
    aspect_ratio="1:1",
    safety_filter_level="block_some",
    person_generation="allow_adult",
)

images[0].save(location=output_file, include_generation_parameters=False)

# Optional. View the generated image in a notebook.
# images[0].show()

print(f"Created output image using {len(images[0]._image_bytes)} bytes")
# Example response:
# Created output image using 1234567 bytes

이미지 업스케일링

REST

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

  • LOCATION: 프로젝트의 리전입니다. 예를 들면 us-central1, europe-west2, asia-northeast3입니다. 사용 가능한 리전 목록은 Vertex AI의 생성형 AI 위치를 참조하세요.
  • PROJECT_ID: Google Cloud 프로젝트 ID
  • B64_BASE_IMAGE: 수정하거나 확대할 기본 이미지. 이미지는 base64 인코딩 바이트 문자열로 지정되어야 합니다. 크기 제한: 10MB.
  • IMAGE_SOURCE: 수정하거나 확대할 이미지의 Cloud Storage 위치. 예를 들면 gs://output-bucket/source-photos/photo.png입니다.
  • UPSCALE_FACTOR: (선택사항) 이미지를 확대할 배율. 지정하지 않으면 확대 배율은 입력 이미지의 더 긴 쪽과 sampleImageSize에서 결정됩니다. 사용 가능한 값: x2 또는 x4.

HTTP 메서드 및 URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagegeneration@002:predict

JSON 요청 본문:

{
  "instances": [
    {
      "prompt": "",
      "image": {
        // use one of the following to specify the image to upscale
        "bytesBase64Encoded": "B64_BASE_IMAGE"
        "gcsUri": "IMAGE_SOURCE"
        // end of base image input options
      },
    }
  ],
  "parameters": {
    "sampleCount": 1,
    "mode": "upscale",
    "upscaleConfig": {
      "upscaleFactor": "UPSCALE_FACTOR"
    }
  }
}

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

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/imagegeneration@002: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/imagegeneration@002:predict" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "iVBOR..[base64-encoded-upscaled-image]...YII="
    }
  ]
}

다음 단계