בדף הזה מוסבר איך להחליף את הרקע של תמונה. Imagen ב-Vertex AI מאפשר לכם להשתמש בפילוח אובייקטים אוטומטי כדי לשמור על התוכן הזה תוך שינוי תוכן אחר בתמונה. עם Imagen 3 אפשר גם לספק אזור מסכה משלכם כדי לקבל יותר שליטה בעריכה.
המודלים הבאים תומכים בהחלפת הרקע של תמונות:
הצגת כרטיס המודל של Imagen for Editing and Customization
דוגמה לעריכת תמונת מוצר
בדוגמה הבאה מודגש שיפור של תמונת מוצר על ידי שינוי הרקע של התמונה, תוך שמירה על מראה המוצר בתמונה.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Vertex AI API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Vertex AI API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
מגדירים אימות לסביבה.
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
עריכה באמצעות מסכת רקע שזוהתה באופן אוטומטי
כדי להפעיל את העריכה של תמונות מוצרים באמצעות זיהוי רקע אוטומטי ולערוך תמונות מוצרים, פועלים לפי ההוראות הבאות.
המסוף
במסוף Google Cloud , עוברים לדף Vertex AI > Vertex AI Studio .
לוחצים על יצירת מדיה.
לוחצים על תמונה.
ברשימה משימה, בוחרים באפשרות עריכת הרקע של המוצר.
ברשימה מודל, בוחרים את מודל Imagen שרוצים להשתמש בו.
בקטע תמונת קלט לוחצים על הוספה ובוחרים את התמונה שרוצים לערוך כדי להעלות אותה.
בתיבת הנחיה, כותבים פרומפט שמתאר את השינוי שרוצים לעשות בתמונה.
בוחרים אחת מהאפשרויות הבאות לחילוץ המסכה:
- רכיבי רקע: זיהוי רכיבי הרקע ויצירת מסכה סביבם.
- רכיבים בחזית: מזהה את האובייקטים בחזית ויוצר מסכה סביבם.
- background_replace People: מזהה אנשים ויוצר מסכה סביבם.
לוחצים על Run.
REST
מידע נוסף מופיע במאמר בנושא עריכת תמונות ב-API.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- LOCATION: האזור של הפרויקט. לדוגמה,
us-central1,europe-west2אוasia-northeast3. רשימת האזורים הזמינים מופיעה במאמר מיקומים של AI גנרטיבי ב-Vertex AI. כשמשתמשים בנקודת קצה ל-API אזורית, האזור מכתובת ה-URL של נקודת הקצה קובע איפה הבקשה תעובד, והמערכת מתעלמת מהערךLOCATIONבנתיב המשאב אם יש התנגשות. - TEXT_PROMPT: פרומפט טקסטואלי שמנחה את המודל לגבי התמונות שהוא יוצר. חובה למלא את השדה הזה גם כשיוצרים וגם כשעורכים.
-
referenceType:ReferenceImageהיא תמונה שמספקת הקשר נוסף לעריכת תמונה. נדרשת תמונת הפניה רגילה בפורמט RGB raw (REFERENCE_TYPE_RAW) לתרחישי שימוש בעריכה. בכל בקשה יכולה להיות תמונת רפרנס אחת לכל היותר של חומר גלם. הגובה והרוחב של תמונת הפלט זהים לאלה של תמונת ההפניה המקורית. נדרשת תמונת רפרנס של מסכה (REFERENCE_TYPE_MASK) לתרחישי שימוש בעריכה עם מסכה. referenceId: מזהה המספר השלם של תמונת רפרנס. בדוגמה הזו, שני אובייקטי תמונות ההפניה הם מסוגים שונים, ולכן יש להם ערכים שונים שלreferenceId(1ו-2).- B64_BASE_IMAGE: תמונת הבסיס לעריכה או להגדלה. התמונה צריכה להיות מחרוזת בייטים בקידוד base64. מגבלת גודל: 10MB.
-
maskImageConfig.maskMode: מצב המסכה לעריכת המסכה. האפשרותMASK_MODE_BACKGROUNDמשמשת לטשטוש אוטומטי של הרקע בלי שמשתמשים במסכה שהמשתמש סיפק. - MASK_DILATION - float. אחוז רוחב התמונה להרחבת המסכה. מומלץ להשתמש בערך
0.00כדי להימנע מהארכת השימוש במוצר בחזית. מינימום: 0, מקסימום: 1. ברירת מחדל: 0.03. - EDIT_STEPS – מספר שלם. מספר שלבי הדגימה של מודל הבסיס. כדי לערוך תמונות של מוצרים, מתחילים בשלב
75. - EDIT_IMAGE_COUNT – מספר התמונות הערוכות. ערכים קבילים מסוג מספר שלם: 1-4. ערך ברירת המחדל: 4.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict
גוף בקשת JSON:
{
"instances": [
{
"prompt": "TEXT_PROMPT",
"referenceImages": [
{
"referenceType": "REFERENCE_TYPE_RAW",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "B64_BASE_IMAGE"
}
},
{
"referenceType": "REFERENCE_TYPE_MASK",
"referenceId": 2,
"maskImageConfig": {
"maskMode": "MASK_MODE_BACKGROUND",
"dilation": MASK_DILATION
}
}
]
}
],
"parameters": {
"editConfig": {
"baseSteps": EDIT_STEPS
},
"editMode": "EDIT_MODE_BGSWAP",
"sampleCount": EDIT_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/imagen-3.0-capability-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/imagen-3.0-capability-001:predict" | Select-Object -Expand Content
{
"predictions": [
{
"bytesBase64Encoded": "BASE64_IMG_BYTES",
"mimeType": "image/png"
},
{
"mimeType": "image/png",
"bytesBase64Encoded": "BASE64_IMG_BYTES"
},
{
"bytesBase64Encoded": "BASE64_IMG_BYTES",
"mimeType": "image/png"
},
{
"bytesBase64Encoded": "BASE64_IMG_BYTES",
"mimeType": "image/png"
}
]
}
עריכה עם אזור מסכה מוגדר
אתם יכולים לבחור להסתיר את האזור שמוחלף, במקום לאפשר ל-Imagen לזהות את המסכה באופן אוטומטי.
המסוף
במסוף Google Cloud , עוברים לדף Vertex AI > Vertex AI Studio .
לוחצים על יצירת מדיה.
לוחצים על תמונה.
ברשימה משימה, בוחרים באפשרות עריכת הרקע של המוצר.
ברשימה מודל, בוחרים את מודל Imagen שרוצים להשתמש בו.
בקטע תמונת קלט לוחצים על הוספה ובוחרים את התמונה שרוצים לערוך כדי להעלות אותה.
בתיבת הנחיה, כותבים פרומפט שמתאר את השינוי שרוצים לעשות בתמונה.
כדי לציין מסכה, מבצעים אחת מהפעולות הבאות:
- להעלות מסכה משלכם:
- יוצרים מסכה במחשב.
- לוחצים על העלאה ייבוא מסכה ובוחרים מסכה להעלאה.
- מגדירים את המסכה: בסרגל הכלים לעריכה, משתמשים בכלי המסכה (תיבה, מכחול או masked_transitions, הכלי היפוך) כדי לציין את האזור או האזורים שרוצים להוסיף להם תוכן.
- להעלות מסכה משלכם:
לוחצים על Run.
REST
למידע נוסף על Imagen API, אפשר לעיין במקורות הבאים:
- Method:
endpoints.predict VisionGenerativeModelInstanceVisionGenerativeModelParams-
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- LOCATION: האזור של הפרויקט. לדוגמה,
us-central1,europe-west2אוasia-northeast3. רשימת האזורים הזמינים מופיעה במאמר מיקומים של AI גנרטיבי ב-Vertex AI. כשמשתמשים בנקודת קצה ל-API אזורית, האזור מכתובת ה-URL של נקודת הקצה קובע איפה הבקשה תעובד, והמערכת מתעלמת מהערךLOCATIONבנתיב המשאב אם יש התנגשות. - TEXT_PROMPT: פרומפט טקסטואלי שמנחה את המודל לגבי התמונות שהוא יוצר. חובה למלא את השדה הזה גם כשיוצרים וגם כשעורכים.
referenceId: מזהה המספר השלם של תמונת רפרנס. בדוגמה הזו, שני אובייקטי תמונות ההפניה הם מסוגים שונים, ולכן יש להם ערכים שונים שלreferenceId(1ו-2).- B64_BASE_IMAGE: תמונת הבסיס לעריכה או להגדלה. התמונה צריכה להיות מחרוזת בייטים בקידוד base64. מגבלת גודל: 10MB.
- B64_MASK_IMAGE: התמונה בשחור-לבן שרוצים להשתמש בה כשכבת מסכה כדי לערוך את התמונה המקורית. התמונה צריכה להיות מחרוזת בייטים בקידוד Base64. מגבלת גודל: 10MB.
- MASK_DILATION - float. אחוז רוחב התמונה להרחבת המסכה. מומלץ להשתמש בערך
0.00כדי להימנע מהארכת השימוש במוצר בחזית. מינימום: 0, מקסימום: 1. ברירת מחדל: 0.03. - EDIT_STEPS – מספר שלם. מספר שלבי הדגימה של מודל הבסיס. כדי לערוך תמונות של מוצרים, מתחילים בשלב
75. - EDIT_IMAGE_COUNT – מספר התמונות הערוכות. ערכים קבילים מסוג מספר שלם: 1-4. ערך ברירת המחדל: 4.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict
גוף בקשת JSON:
{ "instances": [ { "prompt": "TEXT_PROMPT": [ { "referenceType": "REFERENCE_TYPE_RAW", "referenceId": 1, "referenceImage": { "bytesBase64Encoded": "B64_BASE_IMAGE" } }, { "referenceType": "REFERENCE_TYPE_MASK", "referenceId": 2, "referenceImage": { "bytesBase64Encoded": "B64_MASK_IMAGE" }, "maskImageConfig": { "maskMode": "MASK_MODE_USER_PROVIDED", "dilation": MASK_DILATION } } ] } ], "parameters": { "editConfig": { "baseSteps": EDIT_STEPS }, "editMode": "EDIT_MODE_BGSWAP", "sampleCount": EDIT_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/imagen-3.0-capability-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/imagen-3.0-capability-001:predict" | Select-Object -Expand Content{ "predictions": [ { "bytesBase64Encoded": "BASE64_IMG_BYTES", "mimeType": "image/png" }, { "mimeType": "image/png", "bytesBase64Encoded": "BASE64_IMG_BYTES" }, { "bytesBase64Encoded": "BASE64_IMG_BYTES", "mimeType": "image/png" }, { "bytesBase64Encoded": "BASE64_IMG_BYTES", "mimeType": "image/png" } ] }
מגבלות
לפעמים המסכות לא שלמות, ולכן המודל עשוי לנסות להשלים את האובייקט בחזית אם חסרים חלקים קטנים מאוד בגבול. כאפקט לוואי נדיר, אם האובייקט בחזית כבר שלם, יכול להיות שהמודל ייצור תוספות קלות.
פתרון עקיף הוא לפלח את הפלט של המודל ואז לבצע מיזוג. בדוגמה הבאה מוצג קטע קוד ב-Python שמדגים פתרון עקיף:
blended = Image.composite(out_images[0].resize(image_expanded.size), image_expanded, mask_expanded)
המאמרים הבאים
כדאי לקרוא מאמרים על Imagen ועל מוצרים אחרים של AI גנרטיבי ב-Vertex AI:
- מדריך למפתחים לתחילת העבודה עם Imagen 3 ב-Vertex AI
- מודלים וכלים חדשים של מדיה גנרטיבית, שפותחו בעזרת יוצרים ובשבילם
- חדש ב-Gemini: תצורות Gem בהתאמה אישית ויצירת תמונות משופרת באמצעות Imagen 3
- Google DeepMind: Imagen 3 – המודל האיכותי ביותר שלנו ליצירת תמונות לפי טקסט