Virtual Try-On API

התכונה 'התנסות וירטואלית' מאפשרת ליצור תמונות של אנשים שמדגמנים מוצרי ביגוד. אתם מספקים תמונה של אדם ודוגמה של מוצר ביגוד, ואז משתמשים בתכונה 'התנסות וירטואלית' כדי ליצור תמונות של האדם כשהוא לובש את המוצר.

גרסאות מודלים נתמכות

התנסות וירטואלית תומכת במודלים הבאים:

  • virtual-try-on-001

מידע נוסף על התכונות שהמודל תומך בהן זמין במאמר בנושא מודלים של 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 שמקודדת תמונה.
  • מחרוזת gcsUri URI למיקום של קטגוריה של Cloud Storage.

productImages

string

חובה. תמונה של מוצר שאפשר לנסות על אדם, שיכולה להיות אחת מהאפשרויות הבאות:

  • מחרוזת bytesBase64Encoded שמקודדת תמונה.
  • מחרוזת gcsUri URI למיקום של קטגוריה של Cloud Storage.
פרמטרים
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

חובה. מספר התמונות שרוצים ליצור.

ערך של מספר שלם בין 1 ל-4, כולל. ערך ברירת המחדל הוא 1.

seed

Uint32

זה שינוי אופציונלי. הערך האקראי שמשמש ליצירת התמונה. האפשרות הזו לא זמינה כשהערך של addWatermark הוא true.

storageUri

string

זה שינוי אופציונלי. מחרוזת URI למיקום בקטגוריה של Cloud Storage לאחסון התמונות שנוצרו.

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: האזור שבו נמצא הפרויקט. מידע נוסף על אזורים נתמכים זמין במאמר מיקומים של AI גנרטיבי ב-Vertex AI.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • BASE64_PERSON_IMAGE: תמונה של האדם בקידוד Base64.
  • BASE64_PRODUCT_IMAGE: תמונה של המוצר בקידוד Base64.
  • IMAGE_COUNT: מספר התמונות שרוצים ליצור. הטווח הקביל של הערכים הוא 1 עד 4.
  • GCS_OUTPUT_PATH: הנתיב ב-Cloud Storage שבו יישמר הפלט של התכונה 'התנסות וירטואלית'.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/virtual-try-on-001: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-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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/virtual-try-on-001:predict" | Select-Object -Expand Content
הבקשה מחזירה אובייקטים של תמונות. בדוגמה הזו, מוחזרים שני אובייקטים של תמונות, עם שני אובייקטים של חיזויים כתמונות בקידוד Base64.
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}