בדף הזה מוסבר איך להחליף את הרקע של תמונה. Imagen ב-Vertex AI מאפשר לכם להשתמש בפילוח אובייקטים אוטומטי כדי לשמור על התוכן הזה תוך כדי שינוי תוכן אחר בתמונה. עם Imagen 3 אתם יכולים גם לספק אזור מסכה משלכם כדי לקבל יותר שליטה בעריכה.
המודלים הבאים תומכים בהחלפת רקע של תמונות:
הצגת כרטיס המודל של Imagen לעריכה ולהתאמה אישית
דוגמה לעריכת תמונת מוצר
בדוגמה הבאה מודגש שיפור של תמונת מוצר על ידי שינוי הרקע של התמונה, תוך שמירה על מראה המוצר בתמונה.
לפני שמתחילים
- נכנסים לחשבון 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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. 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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
מגדירים אימות לסביבה.
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
Python
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
-
עריכה באמצעות מסכת רקע שזוהתה אוטומטית
כדי להפעיל את התכונה לעריכת תמונות מוצרים ולהשתמש בה עם זיהוי רקע אוטומטי, פועלים לפי ההוראות הבאות.
המסוף
במסוף Google Cloud , עוברים לדף Vertex AI > Vertex AI Studio .
לוחצים על יצירת מדיה.
לוחצים על תמונה.
ברשימה משימה, בוחרים באפשרות עריכת הרקע של המוצר.
ברשימה מודל, בוחרים את מודל Imagen שרוצים להשתמש בו.
בקטע Input image (תמונת קלט), לוחצים על Add (הוספה) ובוחרים את התמונה שרוצים לערוך כדי להעלות אותה.
בתיבה הנחיה, כותבים הנחיה שמתארת את השינוי שרוצים לעשות בתמונה.
בוחרים אחת מהאפשרויות הבאות לחילוץ מסכה:
- אלמנטים ברקע: מזהה את האלמנטים ברקע ויוצר מסכה סביבם.
- אלמנטים בחזית: מזהה את האובייקטים בחזית ויוצר מסכה סביבם.
- background_replace People: מזהה אנשים ויוצר מסכה סביבם.
לוחצים על Run.
Python
התקנה
pip install --upgrade google-genai
מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.
מגדירים משתני סביבה כדי להשתמש ב-Gen AI SDK עם Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_ENTERPRISE=True
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 שרוצים להשתמש בו.
בקטע Input image (תמונת קלט), לוחצים על Add (הוספה) ובוחרים את התמונה שרוצים לערוך כדי להעלות אותה.
בתיבה הנחיה, כותבים הנחיה שמתארת את השינוי שרוצים לעשות בתמונה.
כדי לציין מסכה, מבצעים אחת מהפעולות הבאות:
- להעלות מסכה משלכם:
- יוצרים מסכה במחשב.
- לוחצים על העלאה ייבוא מסכה ובוחרים מסכה להעלאה.
- מגדירים את המסכה: בסרגל הכלים לעריכה, משתמשים בכלי המסכה (תיבה, מכחול או masked_transitions, הכלי היפוך) כדי לציין את האזור או האזורים שרוצים להוסיף להם תוכן.
- להעלות מסכה משלכם:
לוחצים על Run.
Python
התקנה
pip install --upgrade google-genai
מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.
מגדירים משתני סביבה כדי להשתמש ב-Gen AI SDK עם Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_ENTERPRISE=True
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 – המודל האיכותי ביותר שלנו ליצירת תמונות לפי טקסט