Imagen 제품 재컨텍스트 API

Vertex AI API의 Imagen 제품 재컨텍스트를 사용하면 제품 이미지를 다양한 장면이나 배경으로 수정할 수 있습니다. 제품 이미지와 프롬프트를 제공하면 Imagen 제품 재맥락화 기능이 새로운 장면이나 다른 배경으로 제품 이미지를 생성합니다.

Imagen 제품 재맥락화에 대한 액세스를 요청하려면 Vertex AI - 마케팅용 생성형 미디어 액세스 요청 양식을 작성하세요.

지원되는 모델 버전

Imagen 제품 재컨텍스트는 다음 모델을 지원합니다.

  • imagen-product-recontext-preview-06-30

모델에서 지원하는 기능에 대한 자세한 내용은 Imagen 모델을 참고하세요.

HTTP 요청

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_ID:predict \

-d '{
  "instances": [
    {
      "prompt": string,
      "productImages": [
        // The following fields can be repeated up to 3 times for different
        // views of the same product.
        {
          "image": {
            // Union field can be only one of the following:
            "bytesBase64Encoded": string,
            "gcsUri": string,
            // End of list of possible types for union field.
          },
        }
      ]
    }
  ],
  "parameters": {
    "addWatermark": boolean,
    "enhancePrompt": boolean
    "personGeneration": string,
    "safetySetting": string,
    "sampleCount": integer,
    "seed": integer,
    "storageUri": string,
    "outputOptions": {
      "mimeType": string,
      "compressionQuality": integer
    }
  }
}'

인스턴스

인스턴스
prompt

string

선택사항입니다. 장면 생성을 안내하는 텍스트 프롬프트입니다.

productImages

list[productImages]

동일한 제품의 다양한 뷰를 나타내는 최대 3개의 서로 다른 ProductImages 목록입니다. 모델은 이미지를 사용하여 제품을 다양한 장면이나 배경으로 재맥락화합니다.

productImages 객체

productImages 객체는 다양한 장면이나 배경에 배치할 이미지 애셋을 설명합니다.

productImages

통합 필드 image.

imagen-product-recontext-preview-06-30 의 제품 이미지를 제품의 다양한 뷰에 대한 입력으로 사용합니다. 각 이미지는 이미지를 인코딩하는 bytesBase64Encoded 문자열이거나 Cloud Storage 버킷 위치에 대한 gcsUri 문자열 URI일 수 있습니다.

bytesBase64Encoded

string

이미지 또는 동영상 파일의 바이트 base64 인코딩 문자열입니다.

gcsUri

string

Cloud Storage 버킷 위치의 문자열 URI입니다.

매개변수

매개변수
addWatermark

boolean

선택사항입니다. 보이지 않는 워터마크를 생성된 이미지에 추가합니다.

기본값은 true입니다.

enhancePrompt

boolean

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

기본값은 true입니다.

personGeneration

string

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

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

기본값은 "allow_adult"입니다.

safetySetting

string

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

  • "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"입니다.

sampleCount

int

생성할 이미지 수입니다.

1~4 범위의 정수 값입니다. 기본값은 1입니다.

seed

Uint32

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

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

storageUri

string

선택사항입니다. 생성된 이미지를 저장하는 데 사용되는 Cloud Storage 버킷 위치의 문자열 URI입니다. Cloud Storage 버킷이 제공되지 않으면 base64로 인코딩된 이미지 바이트가 응답으로 반환됩니다.

outputOptions

outputOptions

선택사항입니다. outputOptions 객체의 출력 이미지 형식을 설명합니다.

출력 옵션 객체

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

파라미터
outputOptions.mimeType

선택사항: string

이미지 출력 형식입니다. 다음과 같은 값이 지원됩니다.

  • "image/png": PNG 이미지로 저장
  • "image/jpeg": JPEG 이미지로 저장합니다.

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

outputOptions.compressionQuality

(선택사항) int

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

샘플 요청

REST

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

  • REGION: 프로젝트가 있는 리전입니다. 지원되는 리전에 대한 자세한 내용은 Vertex AI의 생성형 AI 위치를 참고하세요.
  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • TEXT_PROMPT: 선택사항. 모델이 생성하는 이미지를 안내하는 텍스트 프롬프트입니다.
  • BASE64_SUBJECT_IMAGE: 주제 이미지의 base64로 인코딩된 이미지입니다.
  • PERSON_SETTING: 선택사항: 모델에서 허용하는 사람 유형이나 얼굴 생성 유형을 제어하는 문자열 값입니다. personGeneration에 대해 다음 값을 사용할 수 있습니다.
    • "allow_adult": 유명인 생성을 제외하고 성인만 생성합니다. 어떤 설정에서도 유명인은 생성되지 않습니다. 기본 설정입니다.
    • "allow_all": 유명인 생성을 제외하고 모든 연령의 사람을 생성합니다. 어떤 설정에서도 유명인은 생성되지 않습니다.
    • "dont_allow": 생성된 출력에 사람이나 얼굴을 생성할 수 없습니다.
  • SAFETY_SETTING: (선택사항) 생성된 이미지의 안전 필터 기준점을 제어하는 문자열 값입니다. 다음 값을 사용하여 안전 설정을 선택할 수 있습니다.
    • "block_low_and_above": 가장 엄격한 안전 기준점입니다. "block_low_and_above"는 생성된 이미지를 가장 많이 필터링합니다.
    • "block_medium_and_above": 잠재적으로 유해하고 안전한 콘텐츠에 대한 필터링의 균형을 맞추는 중간 안전 기준점입니다. "block_medium_and_above"은 기본 안전 설정입니다.
    • "block_only_high": 가장 낮은 안전 기준점으로, 안전 필터로 인해 차단된 요청 수를 줄입니다. "block_only_high" 안전 기준을 사용하면 모델에서 생성하는 불쾌감을 주는 이미지 수가 늘어날 수 있습니다.
  • WATERMARK_SETTING: 선택사항: 불리언입니다. 이 값이 true로 설정되면 모델은 생성된 이미지를 확인하는 데 사용할 수 있는 디지털 워터마크를 추가합니다. 기본값은 true입니다.
  • IMAGE_COUNT: 생성할 이미지 수입니다. 허용되는 값의 범위는 1~4입니다.
  • PROMPT_SETTING: 선택사항: 불리언입니다. 이 값이 true로 설정되면 모델에서 향상된 prmopts를 사용합니다. 기본값은 true입니다.

HTTP 메서드 및 URL:

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-product-recontext-preview-06-30:predict

JSON 요청 본문:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "productImages": [
        {
          "image": {
            "bytesBase64Encoded": "BASE64_SUBJECT_IMAGE"
          },
        }
      ]
    }
  ],
  "parameters": {
    "personGeneration": PERSON_SETTING,
    "safetySetting": SAFETY_SETTING,
    "addWatermark": WATERMARK_SETTING,
    "sampleCount": IMAGE_COUNT,
    "enhancePrompt": PROMPT_SETTING
  }
}

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

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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-product-recontext-preview-06-30: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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-product-recontext-preview-06-30:predict" | Select-Object -Expand Content
요청은 이미지 객체를 반환합니다. 이 예에서는 base64로 인코딩된 이미지로 두 개의 예측 객체와 함께 두 개의 이미지 객체가 반환됩니다.
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}