텍스트 프롬프트를 사용한 이미지 생성

Vertex AI 기반 Imagen을 사용하면 Google Cloud 콘솔에서 제공하는 텍스트 프롬프트에서 새 이미지를 생성하거나 요청을 Vertex AI API로 보낼 수 있습니다.

이미지 생성 및 수정을 위한 텍스트 프롬프트 작성에 대한 상세 내용은 프롬프트 가이드를 참조하세요.

생성용 Imagen 모델 카드 보기

이미지 생성 사용해 보기(Vertex AI Studio)

위치

위치는 데이터가 영구 저장되는 위치를 제어하기 위해 요청에서 지정할 수 있는 리전입니다. 사용 가능한 리전 목록은 Vertex AI의 생성형 AI 위치를 참조하세요.

안전 필터링

Imagen에 이미지 생성 요청을 전송하면 입력 데이터와 출력 콘텐츠 모두 불쾌감을 주는 자료가 있는지 확인됩니다. 즉, 불쾌감을 주는 텍스트 프롬프트 입력이 차단될 수 있습니다. 마찬가지로 불쾌감을 주는 출력 이미지도 차단될 수 있으며, 이는 응답에서 얻는 생성된 이미지 수에 영향을 미칩니다.

안전 필터링 및 차단된 콘텐츠 처리에 관한 자세한 내용은 책임감 있는 AI 및 Imagen 사용 가이드라인을 참조하세요.

성능 및 제한사항

이미지 생성을 위해 Imagen 모델을 사용할 때는 다음 한도가 적용됩니다.

한도
(Imagen 3)
프로젝트별 분당 최대 API 요청 수 Imagen 3: 20

Imagen 3 빠름: 200
요청당 반환되는 최대 이미지 수(텍스트에서 이미지 생성) 4
요청에 업로드되거나 전송된 최대 이미지 크기(MB) 10MB
지원되는 반환 이미지 해상도(픽셀)
  • 1024x1024픽셀(가로세로 비율 1:1)
  • 896x1280(가로세로 비율 3:4)
  • 1280x896(가로세로 비율 4:3)
  • 768x1408(가로세로 비율 9:16)
  • 1408x768(가로세로 비율 16:9)
최대 입력 토큰 수(텍스트 이미지 변환 생성 프롬프트 텍스트) 토큰 480개

모델 버전

이미지 생성 모델의 다양한 버전을 사용할 수 있습니다. Imagen 모델 버전 관리에 대한 자세한 내용은 Imagen 모델 및 수명 주기를 참조하세요.

다음 모델 및 관련 기능을 이미지 생성에 사용할 수 있습니다.

모델 모델 리소스 이름 및 버전 출시 단계 특성 가로세로 비율 지원 언어 결제
Imagen 3 Imagen 3:

imagen-3.0-generate-002(최신 모델)

imagen-3.0-generate-001


Imagen 3 Fast: imagen-3.0-fast-generate-001

프로토타입 제작 또는 지연 시간이 짧은 사용 사례에 사용할 수 있는 지연 시간이 짧은 모델 변형입니다.


Imagen 3 맞춤설정수정: imagen-3.0-capability-001 (승인된 사용자)
정식 버전

지원되는 기능:

  • 이미지 생성
  • 디지털 워터마킹 및 확인
  • 사용자가 구성할 수 있는 안전 설정
  • 프롬프트 수정 도구를 사용한 프롬프트 개선(imagen-3.0-generate-002 모델만 해당)
  • 이미지 맞춤설정(퓨샷 학습):
    • 피사체 맞춤설정(제품, 사람, 반려동물)
    • 스타일 맞춤설정
    • 제어된 맞춤설정(낙서 및 캐니 윤곽선)
    • 맞춤설정 안내(스타일 전이)
  • 이미지 수정(마스크 기반):
    • 인페인팅(삽입 또는 삭제)
    • 아웃페인팅
    • 제품 이미지 수정
  • 1:1 - 1024x1024 픽셀(정사각형)
  • 3:4  - 896x1280
  • 4:3  - 1280x896
  • 9:16 - 768x1408
  • 16:9 - 1408x768

정식 버전:

  • 영어

미리보기:

  • 중국어(간체)
  • 중국어(번체)
  • 힌디어
  • 일본어
  • 한국어
  • 포르투갈어
  • 스페인어

예, 생성에 가격 책정 적용 Imagen 3 모델의 가격 책정은 신규 SKU에 적용되므로 다른 모델과 가격 책정이 다릅니다.

모든 기능과 출시 단계를 보려면 Imagen 개요를 참조하세요.
각 기능과 관련된 가격을 보려면 가격 책정 페이지를 참조하세요.

시작하기 전에

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Enable the API

  8. 환경에 대한 인증을 설정하세요.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    Java

    로컬 개발 환경에서 이 페이지의 Java 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.

    1. Install the Google Cloud CLI.
    2. To initialize the gcloud CLI, run the following command:

      gcloud init
    3. If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

    자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경의 ADC 설정을 참조하세요.

    Node.js

    로컬 개발 환경에서 이 페이지의 Node.js 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.

    1. Install the Google Cloud CLI.
    2. To initialize the gcloud CLI, run the following command:

      gcloud init
    3. If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

    자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경의 ADC 설정을 참조하세요.

    Python

    로컬 개발 환경에서 이 페이지의 Python 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.

    1. Install the Google Cloud CLI.
    2. To initialize the gcloud CLI, run the following command:

      gcloud init
    3. If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

    자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경의 ADC 설정을 참조하세요.

    REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참조하세요.

텍스트로 이미지 생성

설명 텍스트만 입력으로 사용하여 새로운 이미지를 생성할 수 있습니다. 다음 샘플에서는 이미지 생성에 대한 기본 안내를 보여주지만 사용 사례에 따라 추가 매개변수를 사용할 수도 있습니다.

콘솔

  1. Google Cloud 콘솔의 Vertex AI 대시보드에서 Vertex AI Studio > 미디어 탭을 엽니다.

    Vertex AI Studio 탭으로 이동
  2. 프롬프트 작성 필드에 생성할 이미지의 설명을 입력합니다. 효과적인 프롬프트를 작성하는 방법에 대한 자세한 내용은 프롬프트 가이드를 참조하세요.

    • 예시: 아침 물 위에 떠 있는 작은 배 수채화 이미지
  3. 선택사항입니다. 매개변수 패널의 모델 옵션 상자에서 사용할 모델 버전을 선택합니다. 자세한 내용은 모델 버전을 참조하세요.

  4. 선택사항입니다. 표준 및 고급 매개변수를 변경합니다.

  5. 이미지를 생성하려면 생성을 클릭합니다.

    텍스트를 사용하여 생성된 샘플 이미지
    이미지 생성 뷰: 저채도 색상의 아침 물 위에 떠 있는 빨간색 작은 배 수채화 이미지.

REST

imagegeneration 모델 요청에 대한 자세한 내용은 imagegeneration 모델 API 참조를 확인하세요.

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

  • 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에서 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

Java

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

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

이 샘플에서는 EndpointName의 일부로 imagen-3.0-generate-001 모델을 지정합니다. EndpointNamePredictionServiceClient에서 호출되는 predict 메서드에 전달됩니다. 이 서비스는 로컬로 저장되는 이미지를 생성합니다. 모델 버전 및 기능에 대한 자세한 내용은 모델 버전을 참조하세요.


import com.google.api.gax.rpc.ApiException;
import com.google.cloud.aiplatform.v1.EndpointName;
import com.google.cloud.aiplatform.v1.PredictResponse;
import com.google.cloud.aiplatform.v1.PredictionServiceClient;
import com.google.cloud.aiplatform.v1.PredictionServiceSettings;
import com.google.gson.Gson;
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.Value;
import com.google.protobuf.util.JsonFormat;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Base64;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class GenerateImageSample {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "my-project-id";
    String location = "us-central1";
    String prompt = ""; // The text prompt describing what you want to see.

    generateImage(projectId, location, prompt);
  }

  // Generate an image using a text prompt using an Imagen model
  public static PredictResponse generateImage(String projectId, String location, String prompt)
      throws ApiException, IOException {
    final String endpoint = String.format("%s-aiplatform.googleapis.com:443", location);
    PredictionServiceSettings predictionServiceSettings =
        PredictionServiceSettings.newBuilder().setEndpoint(endpoint).build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (PredictionServiceClient predictionServiceClient =
        PredictionServiceClient.create(predictionServiceSettings)) {

      final EndpointName endpointName =
          EndpointName.ofProjectLocationPublisherModelName(
              projectId, location, "google", "imagen-3.0-generate-001");

      Map<String, Object> instancesMap = new HashMap<>();
      instancesMap.put("prompt", prompt);
      Value instances = mapToValue(instancesMap);

      Map<String, Object> paramsMap = new HashMap<>();
      paramsMap.put("sampleCount", 1);
      // You can't use a seed value and watermark at the same time.
      // paramsMap.put("seed", 100);
      // paramsMap.put("addWatermark", false);
      paramsMap.put("aspectRatio", "1:1");
      paramsMap.put("safetyFilterLevel", "block_some");
      paramsMap.put("personGeneration", "allow_adult");
      Value parameters = mapToValue(paramsMap);

      PredictResponse predictResponse =
          predictionServiceClient.predict(
              endpointName, Collections.singletonList(instances), parameters);

      for (Value prediction : predictResponse.getPredictionsList()) {
        Map<String, Value> fieldsMap = prediction.getStructValue().getFieldsMap();
        if (fieldsMap.containsKey("bytesBase64Encoded")) {
          String bytesBase64Encoded = fieldsMap.get("bytesBase64Encoded").getStringValue();
          Path tmpPath = Files.createTempFile("imagen-", ".png");
          Files.write(tmpPath, Base64.getDecoder().decode(bytesBase64Encoded));
          System.out.format("Image file written to: %s\n", tmpPath.toUri());
        }
      }
      return predictResponse;
    }
  }

  private static Value mapToValue(Map<String, Object> map) throws InvalidProtocolBufferException {
    Gson gson = new Gson();
    String json = gson.toJson(map);
    Value.Builder builder = Value.newBuilder();
    JsonFormat.parser().merge(json, builder);
    return builder.build();
  }
}

Node.js

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

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

이 샘플에서는 PredictionServiceClient에서 predict 메서드를 호출합니다. 이 서비스는 로컬로 저장되는 이미지를 생성합니다. 모델 버전 및 기능에 대한 자세한 내용은 모델 버전을 참조하세요.

/**
 * TODO(developer): Update these variables before running the sample.
 */
const projectId = process.env.CAIP_PROJECT_ID;
const location = 'us-central1';
const prompt = 'a dog reading a newspaper';

const aiplatform = require('@google-cloud/aiplatform');

// Imports the Google Cloud Prediction Service Client library
const {PredictionServiceClient} = aiplatform.v1;

// Import the helper module for converting arbitrary protobuf.Value objects
const {helpers} = aiplatform;

// Specifies the location of the api endpoint
const clientOptions = {
  apiEndpoint: `${location}-aiplatform.googleapis.com`,
};

// Instantiates a client
const predictionServiceClient = new PredictionServiceClient(clientOptions);

async function generateImage() {
  const fs = require('fs');
  const util = require('util');
  // Configure the parent resource
  const endpoint = `projects/${projectId}/locations/${location}/publishers/google/models/imagen-3.0-generate-001`;

  const promptText = {
    prompt: prompt, // The text prompt describing what you want to see
  };
  const instanceValue = helpers.toValue(promptText);
  const instances = [instanceValue];

  const parameter = {
    sampleCount: 1,
    // You can't use a seed value and watermark at the same time.
    // seed: 100,
    // addWatermark: false,
    aspectRatio: '1:1',
    safetyFilterLevel: 'block_some',
    personGeneration: 'allow_adult',
  };
  const parameters = helpers.toValue(parameter);

  const request = {
    endpoint,
    instances,
    parameters,
  };

  // Predict request
  const [response] = await predictionServiceClient.predict(request);
  const predictions = response.predictions;
  if (predictions.length === 0) {
    console.log(
      'No image was generated. Check the request parameters and prompt.'
    );
  } else {
    let i = 1;
    for (const prediction of predictions) {
      const buff = Buffer.from(
        prediction.structValue.fields.bytesBase64Encoded.stringValue,
        'base64'
      );
      // Write image content to the output file
      const writeFile = util.promisify(fs.writeFile);
      const filename = `output${i}.png`;
      await writeFile(filename, buff);
      console.log(`Saved image ${filename}`);
      i++;
    }
  }
}
await generateImage();

매개변수를 사용하여 이미지 생성

이미지를 생성할 때 사용 사례에 따라 설정할 수 있는 표준 및 고급 매개변수가 여러 개 있습니다.

이미지 워터마크 추가 또는 확인

기본적으로 디지털 워터마크는 워터마크를 생성할 수 있는 모델 버전에서 생성한 모든 이미지에 추가됩니다. 이 기능은 SynthID라고 하는 표시되지 않는 디지털 워터마크를 이미지에 추가합니다. 그런 다음 이미지에 디지털 워터마크가 포함되어 있는지를 확인할 수 있습니다.

워터마크가 추가된 이미지 생성

다음 샘플을 사용하여 디지털 워터마크가 있는 이미지를 생성합니다.

콘솔

  1. Google Cloud 콘솔의 Vertex AI 대시보드에서 Vertex AI Studio > 미디어 탭을 엽니다.

    Vertex AI Studio 탭으로 이동
  2. 프롬프트 작성 필드에 생성할 이미지의 설명을 입력합니다. 효과적인 프롬프트를 작성하는 방법에 대한 자세한 내용은 프롬프트 가이드를 참조하세요.

    • 예시: 아침 물 위에 떠 있는 작은 배 수채화 이미지
  3. 선택사항입니다. 매개변수 패널의 모델 옵션 상자에서 사용할 모델 버전을 선택합니다. 자세한 내용은 모델 버전을 참조하세요.

  4. 선택사항입니다. 표준 및 고급 매개변수를 변경합니다.

  5. 이미지를 생성하려면 생성을 클릭합니다.

  6. 모델 버전 006 이상: 디지털 워터마크가 자동으로 생성된 이미지에 추가됩니다. Google Cloud 콘솔을 사용하여 이미지 생성 시에 디지털 워터마크를 중지할 수 없습니다.

    이미지를 선택하여 이미지 세부정보 창으로 이동할 수 있습니다. 워터마크가 추가된 이미지에는 디지털 워터마크 배지가 포함됩니다. 이미지 워터마크를 명시적으로 확인할 수도 있습니다.

    텍스트를 통해 생성된 워터마크가 추가된 샘플 이미지
    프롬프트에서 Imagen 2로 생성된 워터마크가 추가된 이미지의 이미지 세부정보 뷰: 저채도 색상의 아침 물 위에 떠 있는 빨간색 작은 배 수채화 이미지

REST

imagegeneration 모델 요청에 대한 자세한 내용은 imagegeneration 모델 API 참조를 확인하세요.

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

  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • MODEL_VERSION: 사용할 imagegeneration 모델 버전입니다. 사용 가능한 값:
      .
    • imagen-3.0-generate-002(최신 모델)
    • imagen-3.0-generate-001
    • imagen-3.0-fast-generate-001 - 지연 시간이 짧은 모델 버전입니다.
    • imagegeneration@006

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

  • LOCATION: 프로젝트의 리전입니다. 예를 들면 us-central1, europe-west2, asia-northeast3입니다. 사용 가능한 리전 목록은 Vertex AI의 생성형 AI 위치를 참조하세요.
  • TEXT_PROMPT: 모델이 생성하는 이미지를 안내하는 텍스트 프롬프트입니다. 이 필드는 생성 및 수정 모두에서 필요합니다.
  • IMAGE_COUNT: 생성된 이미지의 수입니다. 허용되는 정수 값은 1~8(imagegeneration@002), 1~4(기타 모든 모델 버전)입니다. 기본값: 4.
  • ADD_WATERMARK: 불리언입니다. 선택사항입니다. 생성된 이미지에 워터마크를 사용 설정할지 여부입니다. 필드가 true로 설정되었을 때 생성되는 모든 이미지에는 워터마크가 추가된 이미지를 확인하는 데 사용할 수 있는 디지털 SynthID가 포함됩니다. 이 필드를 생략하면 기본값 true가 사용됩니다. 이 기능을 중지하려면 값을 false로 설정해야 합니다. 이 필드를 false로 설정한 경우에만 seed 필드를 사용하여 결정론적 출력을 얻을 수 있습니다.

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,
    "addWatermark": ADD_WATERMARK
  }
}

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

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": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}

Python용 Vertex AI SDK


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

Node.js

/**
 * TODO(developer): Update these variables before running the sample.
 */
const projectId = process.env.CAIP_PROJECT_ID;
const location = 'us-central1';
const prompt = 'a dog reading a newspaper';

const aiplatform = require('@google-cloud/aiplatform');

// Imports the Google Cloud Prediction Service Client library
const {PredictionServiceClient} = aiplatform.v1;

// Import the helper module for converting arbitrary protobuf.Value objects
const {helpers} = aiplatform;

// Specifies the location of the api endpoint
const clientOptions = {
  apiEndpoint: `${location}-aiplatform.googleapis.com`,
};

// Instantiates a client
const predictionServiceClient = new PredictionServiceClient(clientOptions);

async function generateImage() {
  const fs = require('fs');
  const util = require('util');
  // Configure the parent resource
  const endpoint = `projects/${projectId}/locations/${location}/publishers/google/models/imagen-3.0-generate-001`;

  const promptText = {
    prompt: prompt, // The text prompt describing what you want to see
  };
  const instanceValue = helpers.toValue(promptText);
  const instances = [instanceValue];

  const parameter = {
    sampleCount: 1,
    // You can't use a seed value and watermark at the same time.
    // seed: 100,
    // addWatermark: false,
    aspectRatio: '1:1',
    safetyFilterLevel: 'block_some',
    personGeneration: 'allow_adult',
  };
  const parameters = helpers.toValue(parameter);

  const request = {
    endpoint,
    instances,
    parameters,
  };

  // Predict request
  const [response] = await predictionServiceClient.predict(request);
  const predictions = response.predictions;
  if (predictions.length === 0) {
    console.log(
      'No image was generated. Check the request parameters and prompt.'
    );
  } else {
    let i = 1;
    for (const prediction of predictions) {
      const buff = Buffer.from(
        prediction.structValue.fields.bytesBase64Encoded.stringValue,
        'base64'
      );
      // Write image content to the output file
      const writeFile = util.promisify(fs.writeFile);
      const filename = `output${i}.png`;
      await writeFile(filename, buff);
      console.log(`Saved image ${filename}`);
      i++;
    }
  }
}
await generateImage();

워터마크가 추가된 이미지 확인

다음 샘플을 사용하여 이미지에 워터마크가 있는지 확인합니다.

콘솔

  1. Google Cloud 콘솔의 Vertex AI 대시보드에서 Vertex AI Studio > 미디어 탭을 엽니다.

    Vertex AI Studio 탭으로 이동

  2. 하단 패널에서 확인을 클릭합니다.

  3. 이미지 업로드를 클릭합니다.

  4. 로컬로 저장된 생성된 이미지를 선택합니다.

    콘솔에서 생성된 이미지의 확인된 워터마크 샘플

REST

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

  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • LOCATION: 프로젝트의 리전입니다. 예를 들면 us-central1, europe-west2, asia-northeast3입니다. 사용 가능한 리전 목록은 Vertex AI의 생성형 AI 위치를 참조하세요.
  • B64_IMAGE: 디지털 워터마크가 포함되어 있는지 확인할 이미지입니다. 이미지는 base64 인코딩 바이트 문자열로 지정되어야 합니다. 크기 제한: 10MB.

HTTP 메서드 및 URL:

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

JSON 요청 본문:

{
  "instances": [
    {
      "image": {
        "bytesBase64Encoded": "B64_IMAGE"
      }
    }
  ],
  "parameters": {
    "watermarkVerification": true
  }
}

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

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/imageverification@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/imageverification@001:predict" | Select-Object -Expand Content
다음은 디지털 워터마크가 있는 이미지가 포함된 요청에 대한 샘플 응답입니다. 결정 필드는 ACCEPT 또는 REJECT 값을 반환할 수 있습니다.
{
  "predictions": [
    {
      "decision": "ACCEPT"
    }
  ]
}

Python용 Vertex AI SDK


import vertexai
from vertexai.preview.vision_models import (
    Image,
    WatermarkVerificationModel,
)

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# input_file = "input-image.png"

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

verification_model = WatermarkVerificationModel.from_pretrained(
    "imageverification@001"
)
image = Image.load_from_file(location=input_file)

watermark_verification_response = verification_model.verify_image(image)

print(
    f"Watermark verification result: {watermark_verification_response.watermark_verification_result}"
)
# Example response:
# Watermark verification result: ACCEPT
# or "REJECT" if the image does not contain a digital watermark.

Node.js

/**
 * TODO(developer): Update these variables before running the sample.
 */
const projectId = process.env.CAIP_PROJECT_ID;
const location = 'us-central1';
const inputFile = 'resources/dog_newspaper.png'; // has watermark

const aiplatform = require('@google-cloud/aiplatform');

// Imports the Google Cloud Prediction Service Client library
const {PredictionServiceClient} = aiplatform.v1;

// Import the helper module for converting arbitrary protobuf.Value objects
const {helpers} = aiplatform;

// Specifies the location of the api endpoint
const clientOptions = {
  apiEndpoint: `${location}-aiplatform.googleapis.com`,
};

// Instantiates a client
const predictionServiceClient = new PredictionServiceClient(clientOptions);

async function verifyImageWatermark() {
  const fs = require('fs');
  // Configure the parent resource
  const endpoint = `projects/${projectId}/locations/${location}/publishers/google/models/imageverification@001`;

  const imageFile = fs.readFileSync(inputFile);
  // Convert the image data to a Buffer and base64 encode it.
  const encodedImage = Buffer.from(imageFile).toString('base64');

  const instance = {
    image: {
      bytesBase64Encoded: encodedImage,
    },
  };
  const instanceValue = helpers.toValue(instance);
  const instances = [instanceValue];

  const request = {
    endpoint,
    instances,
  };

  // Predict request
  const [response] = await predictionServiceClient.predict(request);
  const predictions = response.predictions;
  if (predictions.length === 0) {
    console.log('No decision was generated. Check the request image.');
  } else {
    predictions.forEach(prediction => {
      // "ACCEPT" if the image contains a digital watermark
      // "REJECT" if the image does not contain a digital watermark
      console.log(prediction.structValue.fields.decision.stringValue);
    });
  }
}
await verifyImageWatermark();

책임감 있는 AI(RAI) 안전 설정 구성

이미지 생성 모델에서 사용할 수 있는 책임감 있는 AI(RAI) 필터링 매개변수는 몇 가지가 있습니다. 예를 들어 모델에서 차단된 콘텐츠의 RAI 필터 코드를 보고하거나 RAI 필터를 사용하여 사용자 또는 얼굴 생성을 중지하거나 콘텐츠 필터링 수준을 설정하거나 입력과 출력에 대한 안전 속성 목록의 반올림된 RAI 점수를 반환할 수 있습니다.

책임감 있는 AI(RAI), 관련 매개변수, 샘플 출력에 대한 자세한 내용은 Imagen의 책임감 있는 AI 이해 및 구성을 참조하세요.

다음 샘플에서는 이미지 생성에 사용할 수 있는 RAI 매개변수를 설정하는 방법을 보여줍니다.

콘솔

  1. Google Cloud 콘솔의 Vertex AI 대시보드에서 Vertex AI Studio > 미디어 탭을 엽니다.

    Vertex AI Studio 탭으로 이동

  2. 텍스트 프롬프트를 추가하고 입력 매개변수를 선택합니다.

  3. 펼쳐지지 않은 경우 고급 옵션을 클릭합니다.

  4. 안전 설정을 클릭합니다.

  5. 안전 설정을 선택합니다.

    • 사람/얼굴 생성: 다음 설정 중 하나를 선택합니다.
      • Allow (All ages)
      • Allow (Adults only)
      • Don't allow
    • 안전 필터 기준점: 다음 설정 중 하나를 선택합니다.
      • Block low and above
      • Block medium and above
      • Block only high
  6. 저장을 클릭합니다.

  7. 생성을 클릭합니다.

REST

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

  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • LOCATION: 프로젝트의 리전입니다. 예를 들면 us-central1, europe-west2, asia-northeast3입니다. 사용 가능한 리전 목록은 Vertex AI의 생성형 AI 위치를 참조하세요.
  • TEXT_PROMPT: 모델이 생성하는 이미지를 안내하는 텍스트 프롬프트입니다. 이 필드는 생성 및 수정 모두에서 필요합니다.
  • IMAGE_COUNT: 생성된 이미지의 수입니다. 허용되는 정수 값은 1~8(imagegeneration@002), 1~4(기타 모든 모델 버전)입니다. 기본값: 4.
  • SAFETY_SETTING: 문자열입니다. 선택사항입니다. 생성된 이미지의 안전 필터 기준점을 제어하는 설정입니다. 사용 가능한 값은 다음과 같습니다.
    • block_low_and_above: 가장 높은 안전 기준점으로, 필터링되어 생성된 이미지 수가 가장 많습니다. 이전 값은 block_most입니다.
    • block_medium_and_above(기본값): 잠재적으로 유해하고 안전한 콘텐츠에 대한 필터링의 균형을 맞추는 중간 안전 기준점입니다. 이전 값은 block_some입니다.
    • block_only_high: 안전 필터로 인해 차단된 요청 수를 줄이는 안전 기준점입니다. 이 설정으로 인해 Imagen에서 불쾌감을 주는 콘텐츠를 많이 생성할 수 있습니다. 이전 값은 block_few입니다.
  • PERSON_SETTING: 문자열입니다. 선택사항입니다. 모델에서 허용하는 사람 유형이나 얼굴 생성 유형을 제어하는 안전 설정입니다. 사용 가능한 값은 다음과 같습니다.
    • allow_adult(기본값): 유명인 생성을 제외하고 성인만 생성합니다. 어떤 설정에서도 유명인은 생성되지 않습니다.
    • dont_allow: 생성된 이미지에 사람이나 얼굴이 포함되지 않습니다.
  • 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입니다.

HTTP 메서드 및 URL:

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

JSON 요청 본문:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT,
    "safetySetting": "SAFETY_SETTING",
    "personGeneration": "PERSON_SETTING",
    "includeRaiReason": INCLUDE_RAI_REASON,
    "includeSafetyAttributes": INCLUDE_SAFETY_ATTRIBUTES
  }
}

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

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@006: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@006:predict" | Select-Object -Expand Content
가져오는 응답은 설정한 안전 설정에 따라 달라집니다. 자세한 내용은 Imagen의 책임감 있는 AI(RAI) 이해 및 구성을 참조하세요.

프롬프트 수정 도구를 사용한 프롬프트 개선

Imagen 3 모델 버전 002에는 LLM 기반 프롬프트 수정 도구를 사용하는 프롬프트 수정 기능이 포함되어 있습니다. 이 도구는 일반적으로 제공된 프롬프트에 더 많은 세부정보를 추가하여 제공된 프롬프트를 더 잘 반영하는 고품질 이미지를 제공합니다. 이 기능을 중지하면 사용자가 받는 이미지의 품질과 프롬프트 준수가 영향을 받을 수 있습니다. 이 기능은 기본적으로 사용하도록 설정되어 있습니다.

수정된 프롬프트는 원래 프롬프트의 길이가 30단어 미만인 경우에만 API 응답을 통해 제공됩니다.

콘솔

  1. Google Cloud 콘솔의 Vertex AI 대시보드에서 Vertex AI Studio > 미디어 탭을 엽니다.

    Vertex AI Studio 탭으로 이동

  2. 텍스트 프롬프트를 추가하고 입력 매개변수를 선택합니다.

  3. 파라미터 패널에서 toggle_on프롬프트 개선 사용 설정 전환 옵션을 사용하여 프롬프트 개선을 사용 설정 상태로 두거나 이 기능을 중지합니다.

  4. 생성을 클릭합니다.

REST

imagegeneration 모델 요청에 대한 자세한 내용은 imagegeneration 모델 API 참조를 확인하세요.

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

  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • MODEL_VERSION: 사용할 이미지 생성 모델 버전입니다. 프롬프트 개선을 지원하는 사용 가능한 값은 다음과 같습니다.
    • imagen-3.0-generate-002

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

  • LOCATION: 프로젝트의 리전입니다. 예를 들면 us-central1, europe-west2, asia-northeast3입니다. 사용 가능한 리전 목록은 Vertex AI의 생성형 AI 위치를 참조하세요.
  • TEXT_PROMPT: 모델이 생성하는 이미지를 안내하는 텍스트 프롬프트입니다. 이미지가 생성되기 전에 이 기본 프롬프트는 LLM 기반 프롬프트 수정 도구를 사용하여 더 많은 세부정보와 설명적 언어로 개선됩니다.
  • IMAGE_COUNT: 생성된 이미지의 수입니다. 허용되는 정수 값: 1~4. 기본값: 4.
  • enhancePrompt - LLM 기반 프롬프트 개선을 사용 설정하는 불리언입니다. 기본적으로 이 값은 true로 설정됩니다.

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,
    "enhancePrompt": true
  }
}

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

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
프롬프트 개선이 사용 설정된 경우 응답에는 개선된 프롬프트와 이와 연결된 생성된 이미지를 보여주는 추가 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"
      }
    ]
  }

예를 들어 다음 샘플 응답은 "sampleCount": 2"prompt": "A raccoon wearing formal clothes, wearing a top hat. Oil painting in the style of Vincent Van Gogh."가 포함된 요청에 대한 응답입니다. 응답은 각기 개선된 프롬프트와 생성된 이미지 바이트를 base64로 인코딩한 두 개의 예측 객체를 반환합니다.

{
  "predictions": [
    {
      "mimeType": "image/png",
      "prompt": "An oil painting in the style of Vincent van Gogh, depicting a raccoon adorned
        in a finely tailored tuxedo, complete with a crisp white shirt and a bow tie. The raccoon
        also sports a classic top hat, perched jauntily on its head. The painting uses thick,
        swirling brushstrokes characteristic of van Gogh, with vibrant hues of blue, yellow, and
        green in the background, contrasting with the dark tones of the raccoon's attire. The light
        source is subtly placed, casting a dramatic shadow of the raccoon's attire onto the surface
        it sits upon, further enhancing the depth and dimensionality of the composition. The
        overall impression is one of a whimsical and sophisticated character, a raccoon elevated to
        a higher class through its formal attire, rendered in van Gogh's iconic style.",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "mimeType": "image/png",
      "prompt": "An oil painting in the style of Vincent van Gogh featuring a raccoon in a
        dapper suit, complete with a black jacket, crisp white shirt, and a black bow tie. The
        raccoon is wearing a black top hat, adding a touch of elegance to its ensemble. The
        painting is rendered with characteristic van Gogh brushwork, utilizing thick, impasto
        strokes of color. The background is a swirl of blues, greens, and yellows, creating a
        vibrant yet slightly chaotic atmosphere that contrasts with the raccoon's formal attire.
        The lighting is dramatic, casting sharp shadows and highlighting the textures of the fabric
        and the raccoon's fur, enhancing the sense of realism within the fantastical scene. The
        composition focuses on the raccoon's proud posture, highlighting the whimsical contrast of
        a wild animal dressed in formal attire, captured in the unique artistic language of van
        Gogh. ",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

텍스트 프롬프트 언어

이 선택적 매개변수를 사용하면 이미지 생성 또는 이미지 수정을 위한 입력 텍스트의 언어를 설정할 수 있습니다.

힌디어 프롬프트에서 생성된 도서 이미지
프롬프트에서 생성된 이미지: ऊपर से देखा गया किताबों का ढेर। सबसे ऊपरी पुस्तक में एक पक्षी का जलरंग चित्रण है। किताब पर VERTEX AI मोटे अक्षरों में लिखा हुआ है*

*위에서 본 책 무더기. 맨 위의 책에는 수채화로 그린 새 그림이 있습니다. VERTEX AI는 책에 굵은 글씨로 쓰여져 있습니다.
대한민국의 프롬프트에서 여성의 이미지
프롬프트에서 생성된 이미지:

진한 노란색과 짙은 청록색으로 이루어진 밝은 색상의 옷을 입고, 귀걸이를 착용한 여성, 포스트모던 패션 사진

시작하기 전에

이 기능을 사용하기에 앞서 다음 추가 단계를 완료하세요.

  1. 다음 명령어를 사용하여 프로젝트에서 사용할 Vertex AI의 서비스 ID를 만듭니다.

    gcloud beta services identity create --service=aiplatform.googleapis.com --project=PROJECT_ID
    
  2. 기능 액세스를 요청합니다. 액세스를 요청하려면 Google Cloud 신뢰할 수 있는 테스터 액세스: 생성형 앱 빌더 그룹에 이메일을 보냅니다. 메시지에서 다국어 프롬프트를 참조하고 프로젝트 번호를 포함합니다. 승인 프로세스는 일반적으로 몇 시간 정도 걸립니다.

텍스트 프롬프트 언어 설정

다음과 같은 입력 텍스트 프롬프트 언어 값이 지원됩니다.

  • 중국어(간체)(zh/zh-CN)
  • 중국어(번체)(zh-TW)
  • 영어(en, 기본값)
  • 힌디어(hi)
  • 일본어(ja)
  • 한국어(ko)
  • 포르투갈어(pt)
  • 스페인어(es)

콘솔

프롬프트가 지원되는 언어 중 하나로 되어 있으면 Imagen은 자동으로 텍스트를 감지 및 번역하고 생성되거나 수정된 이미지를 반환합니다.

프롬프트가 지원되지 않는 언어인 경우 Imagen은 요청에 텍스트를 그대로 사용합니다. 이로 인해 예기치 않은 출력이 발생할 수 있습니다.

REST

imagegeneration 모델 요청에 대한 자세한 내용은 imagegeneration 모델 API 참조를 확인하세요.

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

  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • TEXT_PROMPT: 모델이 생성하는 이미지를 안내하는 텍스트 프롬프트입니다. 이 필드는 생성 및 수정 모두에서 필요합니다.
  • PROMPT_LANGUAGE: 문자열입니다. 선택사항입니다. 텍스트 프롬프트 언어에 해당하는 언어 코드입니다. 이 예시에서는 hi입니다. 사용 가능한 값은 다음과 같습니다.
    • auto - 자동 감지. Imagen이 지원되는 언어를 감지하면 프롬프트(그리고 원하는 경우 부정 프롬프트)가 영어로 번역됩니다. 감지된 언어가 지원되지 않으면 Imagen은 입력 텍스트를 그대로 사용하므로 예기치 않은 출력이 발생할 수 있습니다. 오류 코드가 반환되지 않습니다.
    • en - 영어(생략된 경우 기본값)
    • es - 스페인어
    • hi - 힌디어
    • ja - 일본어
    • ko - 한국어
    • pt - 포르투갈어
    • zh-TW - 중국어(번체)
    • zh 또는 zh-CN - 중국어(간체)

HTTP 메서드 및 URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/imagegeneration@005:predict

JSON 요청 본문:

{
  "instances": [
    {
      "prompt": "सूर्यास्त के समय एक समुद्र तट। उड़ते पक्षी, हवा में लहराते नारियल के पेड़। लोग समुद्र तट पर सैर का आनंद ले रहे हैं।"
    }
  ],
  "parameters": {
    "language": "PROMPT_LANGUAGE"
  }
}

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

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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/imagegeneration@005: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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/imagegeneration@005:predict" | Select-Object -Expand Content
다음은 "sampleCount": 2 요청에 대한 샘플 응답입니다. 응답은 생성된 이미지 바이트를 base64로 인코딩한 두 개의 예측 객체를 반환합니다.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

가로세로 비율

생성된 이미지를 사용하려는 방법에 따라 일부 가로세로 비율이 다른 이미지보다 더 효과적일 수 있습니다. 사용 사례에 가장 적합한 가로세로 비율을 선택합니다.

지원되는 가로세로 비율 및 사용 목적:

가로세로 비율 사용 목적 이미지 해상도(픽셀) 샘플 이미지
1:1 기본값, 정사각형, 범용 1024x1024(Imagen v.002)

1536x1536(Imagen 2 v.005, v.006)

1024x1024(Imagen 3)
콘솔에서 생성된 샘플 이미지
프롬프트: 위에서 바라본 파스타 요리, 음식 잡지 표지 스타일의 스튜디오 사진
3:4 TV, 미디어, 영화 1344x1792(Imagen 2 v.006)

896x1280(Imagen 3)
콘솔에서 생성된 샘플 이미지
프롬프트: 밝은 채도 배경의 라벤더 바닐라 향수병의 향수 광고를 위해 촬영된 상업 사진.
4:3 TV, 미디어, 영화 1792x1344(Imagen 2 v.006)

1280x896(Imagen 3)
콘솔에서 생성된 샘플 이미지
프롬프트: 4k, 극적인 앵글로 촬영된 녹색과 회색 하이탑 스니커즈 상업용 사진
9:16 세로, 긴 객체, 휴대기기 1134x2016(Imagen 2 v.005, v.006)

768x1408(Imagen 3)
콘솔에서 생성된 샘플 이미지
프롬프트: 뉴욕의 고층 빌딩, 미래 렌더링, 개념, 디지털 아트
16:9 가로 2016x1134(Imagen 2 v.006)

1408x768(Imagen 3)
콘솔에서 생성된 샘플 이미지
프롬프트: 일몰 배경으로 하와이 해변을 렌즈 플레어 이펙트로 촬영한 자연 사진.

콘솔

  1. 텍스트로 이미지 생성 안내에 따라 Vertex AI Studio를 열고 텍스트 프롬프트를 입력합니다.

  2. 매개변수 패널의 가로세로 비율 메뉴에서 가로세로 비율을 선택합니다.

  3. 생성을 클릭합니다.

REST

가로세로 비율은 JSON 요청 본문의 parameters 객체에 있는 선택적 필드입니다.

  1. 텍스트로 이미지 생성 안내에 따라 다른 요청 본문 변수를 바꿉니다.

  2. 다음을 바꿉니다.

    • ASPECT_RATIO: 문자열입니다. 선택사항입니다. 가로세로 비율을 제어하는 생성 모드 파라미터입니다. 지원되는 비율 값과 사용 목적은 다음과 같습니다.
      • 1:1(기본값, 정사각형)
      • 3:4(광고, 소셜 미디어)
      • 4:3(TV, 사진)
      • 16:9(가로)
      • 9:16(세로)
    {
      "instances": [
        ...
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT,
        "aspectRatio": "ASPECT_RATIO"
      }
    }
    
  3. 텍스트로 이미지 생성 안내에 따라 REST 요청을 보냅니다.

알림당 결과 수

결과 수 매개변수를 사용하여 전송하는 요청(생성 또는 수정)마다 반환되는 이미지 양을 제한합니다.

콘솔

  1. 텍스트로 이미지 생성 안내에 따라 Vertex AI Studio를 열고 텍스트 프롬프트를 입력합니다.

  2. 매개변수 패널의 결과 수 필드에서 유효한 정수 값을 선택합니다.

  3. 생성을 클릭합니다.

REST

imagegeneration 모델 요청에 대한 자세한 내용은 imagegeneration 모델 API 참조를 확인하세요.

결과 수는 JSON 요청 본문의 parameters 객체에 있는 필드입니다.

  1. 텍스트로 이미지 생성 안내에 따라 다른 요청 본문 변수를 바꿉니다.

  2. 다음을 바꿉니다.

    • IMAGE_COUNT: 생성된 이미지의 수입니다. 허용되는 정수 값은 1~8(imagegeneration@002), 1~4(기타 모든 모델 버전)입니다. 기본값: 4.
    {
      "instances": [
        ...
      ],
      "parameters": { 
        "sampleCount": IMAGE_COUNT
      }
    }
    
  3. 텍스트로 이미지 생성 안내에 따라 REST 요청을 보냅니다.

네거티브 프롬프트

부정 프롬프트는 생성된 이미지에서 생략할 항목에 대한 설명입니다. 예를 들어 '사람이 없는 야간 도시 거리'라는 프롬프트를 생각해 봅시다. 이 모델은 '사람'을 생략 대상이 아니라 포함 대상 지시문으로 해석할 수 있습니다. 더 나은 결과를 생성하려면 '사람' 네거티브 프롬프트와 함께 '야간 도시 거리' 프롬프트를 사용하면 됩니다.

Imagen은 네거티브 프롬프트 유무에 관계없이 이러한 이미지를 생성합니다.

텍스트 프롬프트만

  • 텍스트 프롬프트: '피자'

샘플 피자 이미지 3개

텍스트 프롬프트 및 네거티브 프롬프트

  • 텍스트 프롬프트: '피자'
  • 네거티브 프롬프트: 'pepperoni'

페퍼로니가 없는 샘플 피자 이미지 3개

콘솔

  1. 텍스트로 이미지 생성 안내에 따라 Vertex AI Studio를 열고 텍스트 프롬프트를 입력합니다.

  2. 매개변수 패널에서 네거티브 프롬프트 필드에 네거티브 프롬프트를 입력합니다.

  3. 생성을 클릭합니다.

REST

imagegeneration 모델 요청에 대한 자세한 내용은 imagegeneration 모델 API 참조를 확인하세요.

네거티브 프롬프트는 JSON 요청 본문의 parameters 객체에 있는 선택적 필드입니다.

  1. 텍스트로 이미지 생성 안내에 따라 다른 요청 본문 변수를 바꿉니다.

  2. 다음을 바꿉니다.

    • NEGATIVE_PROMPT: 이미지를 생성하는 데 도움이 되는 네거티브 프롬프트입니다. 예를 들면 '동물'(동물 제거), '흐림'(이미지 선명화), '텍스트'(텍스트 제거) 또는 '자르기'(잘린 이미지 제거) 등입니다.
    {
      "instances": [
        ...
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT,
        "negativePrompt": "NEGATIVE_PROMPT"
      }
    }
    
  3. 텍스트로 이미지 생성 안내에 따라 REST 요청을 보냅니다.

시드 번호

시드 번호는 생성된 이미지를 확정하도록 요청에 추가하는 숫자입니다. 요청에 시드 번호를 추가하면 매번 같은 생성 이미지를 가져올 수 있습니다. 예를 들어 프롬프트를 제공하고 결과 수를 1로 설정하며 시드 번호를 사용하면 동일한 입력 값을 모두 사용할 때마다 같은 이미지를 가져올 수 있습니다. 결과 수를 8로 설정하여 같은 요청을 보내면 동일한 이미지 8개가 생성됩니다. 그러나 이미지가 반드시 같은 순서로 반환되지는 않습니다.

콘솔

  1. 텍스트로 이미지 생성 안내에 따라 Vertex AI Studio를 열고 텍스트 프롬프트를 입력합니다.

  2. 매개변수 패널에서 고급 옵션 확장형 섹션을 클릭합니다.

  3. 시드 필드에 시드 번호를 입력합니다.

  4. 생성을 클릭합니다.

REST

imagegeneration 모델 요청에 대한 자세한 내용은 imagegeneration 모델 API 참조를 확인하세요.

시드 번호는 JSON 요청 본문의 parameters 객체에 있는 선택적 필드입니다.

  1. 텍스트로 이미지 생성 안내에 따라 다른 요청 본문 변수를 바꿉니다.

  2. 다음을 바꿉니다.

    • SEED_NUMBER: 정수입니다. 선택사항입니다. 출력 이미지를 결정론적으로 만들기 위해 제공하는 음수가 아닌 정수입니다. 동일한 시드 번호를 제공하면 항상 같은 출력 이미지가 생성됩니다. 사용 중인 모델이 디지털 워터마킹을 지원하는 경우 이 필드를 사용하려면 "addWatermark": false를 설정해야 합니다. 허용되는 정수 값은 1~2147483647입니다.
    {
      "instances": [
        ...
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT,
        "seed": SEED_NUMBER,
        // required for model version 006 and greater only when using a seed number
        "addWatermark": false
      }
    }
    
  3. 텍스트로 이미지 생성 안내에 따라 REST 요청을 보냅니다.

사전 정의된 스타일

생성하려는 이미지의 스타일입니다. 이 특성을 사용하면 디지털 아트, 수채화 또는 사이버 펑크와 같이 인기 있는 스타일로 이미지를 만들 수 있습니다.

콘솔

  1. 텍스트로 이미지 생성 안내에 따라 Vertex AI Studio를 열고 텍스트 프롬프트를 입력합니다.

  2. 매개변수 패널의 스타일 섹션에 있는 메뉴에서 스타일을 선택합니다.

  3. 생성을 클릭합니다.

REST

imagegeneration 모델 요청에 대한 자세한 내용은 imagegeneration 모델 API 참조를 확인하세요.

사전 정의된 스타일은 JSON 요청 본문의 parameters 객체에 있는 선택적 필드입니다.

  1. 텍스트로 이미지 생성 안내에 따라 다른 요청 본문 변수를 바꿉니다.

  2. 다음을 바꿉니다.

    • IMAGE_STYLE: 사용 가능한 사전 정의된 스타일 중 하나입니다.
      • photograph
      • digital_art
      • landscape
      • sketch
      • watercolor
      • cyberpunk
      • pop_art
    {
      "instances": [
        ...
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT,
        "sampleImageStyle": "IMAGE_STYLE"
      }
    }
    
  3. 텍스트로 이미지 생성 안내에 따라 REST 요청을 보냅니다.

이미지 확대

확대를 사용하면 품질 저하 없이 기존 이미지, 생성된 이미지 또는 수정된 이미지의 크기를 늘릴 수 있습니다.

콘솔

  1. 텍스트로 이미지 생성 안내에 따라 이미지를 생성합니다.

  2. 확대할 이미지를 선택합니다.

  3. 내보내기를 클릭합니다.

  4. 이미지 확대를 선택합니다.

  5. 배율에서 값을 선택합니다.

  6. 내보내기를 클릭하여 확대한 이미지를 저장합니다.

REST

imagegeneration 모델 요청에 대한 자세한 내용은 imagegeneration 모델 API 참조를 확인하세요.

확장 모드는 JSON 요청 본문의 parameters 객체에 있는 선택적 필드입니다. API를 사용하여 이미지를 확장하는 경우 "mode": "upscale"upscaleConfig를 지정하세요.

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

  • 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="
    }
  ]
}

다음 단계

Imagen 및 Vertex AI의 기타 생성형 AI 제품 관련 문서 읽기: