가상 테스트 API

가상 테스트를 사용하면 의류 제품을 모델링하는 사람의 이미지를 생성할 수 있습니다. 사람 이미지와 샘플 의류 제품을 제공한 다음 가상 테스트를 사용하여 사람이 제품을 착용한 이미지를 생성합니다.

지원되는 모델 버전

가상 테스트는 다음 모델을 지원합니다.

  • virtual-try-on-preview-08-04

모델에서 지원하는 기능에 대한 자세한 내용은 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": [
    {
      "personImage": {
        "image": {
          // Union field can be only one of the following:
          "bytesBase64Encoded": string,
          "gcsUri": string,
        }
      },
      "productImages": [
        {
          "image": {
            // Union field can be only one of the following:
            "bytesBase64Encoded": string,
            "gcsUri": string,
          }
        }
      ]
    }
  ],
  "parameters": {
    "addWatermark": boolean,
    "baseSteps": integer,
    "personGeneration": string,
    "safetySetting": string,
    "sampleCount": integer,
    "seed": integer,
    "storageUri": string,
    "outputOptions": {
      "mimeType": string,
      "compressionQuality": integer
    }
  }
}'
인스턴스

personImage

string

필수 항목입니다. 의류 제품을 가상으로 착용해 볼 수 있는 사람의 이미지이며, 다음 중 하나일 수 있습니다.

  • 이미지를 인코딩하는 bytesBase64Encoded 문자열입니다.
  • Cloud Storage 버킷 위치의 gcsUri 문자열 URI입니다.

productImages

string

필수 항목입니다. 사람이 착용해 볼 수 있는 제품의 이미지이며, 다음 중 하나일 수 있습니다.

  • 이미지를 인코딩하는 bytesBase64Encoded 문자열입니다.
  • Cloud Storage 버킷 위치의 gcsUri 문자열 URI입니다.
파라미터
addWatermark

bool

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

기본값은 true입니다.

baseSteps

int

필수 항목입니다. 이미지 생성을 제어하는 정수입니다. 단계가 높을수록 지연 시간이 증가하는 대신 품질이 높아집니다.

0보다 큰 정수 값입니다. 기본값은 32입니다.

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

필수 항목입니다. 생성할 이미지 수입니다.

14(포함) 사이의 정수 값입니다. 기본값은 1입니다.

seed

Uint32

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

storageUri

string

선택사항입니다. 생성된 이미지를 저장할 Cloud Storage 버킷 위치의 문자열 URI입니다.

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
  • BASE64_PERSON_IMAGE: 사람 이미지의 Base64 인코딩 이미지
  • BASE64_PRODUCT_IMAGE: 제품 이미지의 Base64 인코딩 이미지
  • IMAGE_COUNT: 생성할 이미지 수. 허용되는 값의 범위는 1~4입니다.
  • GCS_OUTPUT_PATH: 가상 테스트 출력을 저장할 Cloud Storage 경로

HTTP 메서드 및 URL:

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/virtual-try-on-preview-08-04:predict

JSON 요청 본문:

{
  "instances": [
    {
      "personImage": {
        "image": {
          "bytesBase64Encoded": "BASE64_PERSON_IMAGE"
        }
      },
      "productImages": [
        {
          "image": {
            "bytesBase64Encoded": "BASE64_PRODUCT_IMAGE"
          }
        }
      ]
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT,
    "storageUri": "GCS_OUTPUT_PATH"
  }
}

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

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/virtual-try-on-preview-08-04: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/virtual-try-on-preview-08-04:predict" | Select-Object -Expand Content
요청은 이미지 객체를 반환합니다. 이 예시에서는 base64로 인코딩된 이미지로 두 개의 예측 객체와 함께 두 개의 이미지 객체가 반환됩니다.
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}