בדף הזה מוסבר איך להוסיף אובייקטים לתמונה. התהליך הזה נקרא גם תיקון תמונה. Imagen ב-Vertex AI מאפשר לכם לציין אזור מסכה כדי להוסיף אובייקטים לתמונה. אתם יכולים להעלות מסכה משלכם או לבקש מ-Imagen ליצור מסכה בשבילכם.
המודלים הבאים תומכים בהוספת אובייקטים לתמונה:
דוגמה להוספת תוכן
בעזרת תיקון תמונות, אתם יכולים להשתמש בתמונת בסיס, במסכת תמונה ובהנחיה טקסטואלית כדי להוסיף תוכן לתמונה קיימת.
קלטים
| תמונת הבסיס* לעריכה | האזור המוסתר מוגדר באמצעות כלים במסוף Google Cloud | הנחייה טקסטואלית |
|---|---|---|
|
|
strawberries |
* קרדיט על התמונה: Alex Lvrs ב-Unsplash.
פלט אחרי ציון אזור מיסוך ב Google Cloud מסוף
|
|
|
הצגת כרטיס המודל של 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 .
-
הוספה עם אזור מסכה מוגדר
אפשר להשתמש בדוגמאות הבאות כדי לשלוח בקשה לתיקון תמונה באמצעות מודל Imagen 3.
המסוף
במסוף 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 VisionGenerativeModelInstanceVisionGenerativeModelParamsVisionGenerativeModelResult
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
REGION: האזור שבו נמצא הפרויקט. מידע נוסף על אזורים נתמכים זמין במאמר בנושא מיקומי AI גנרטיבי ב-Vertex AI. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
TEXT_PROMPT: אופציונלי. הנחייה טקסטואלית שמנחה את התמונות שהמודל יוצר. כדי לקבל את התוצאות הטובות ביותר, כדאי להשתמש בתיאור של האזור המוסתר ולהימנע מהנחיות של מילה אחת. לדוגמה, כדאי להשתמש בתיאור "קורגי חמוד" במקום רק "קורגי". -
B64_BASE_IMAGE: תמונה בקידוד Base64 של התמונה שנערכת, בגודל של 10MB או פחות. מידע נוסף על קידוד base64 זמין במאמר קידוד ופענוח של קבצים ב-Base64. -
B64_MASK_IMAGE: תמונה של מסכה בשחור-לבן בקידוד base64, בגודל של 10MB או פחות. -
MASK_DILATION: אופציונלי. ערך מסוג float בין 0 ל-1, כולל, שמייצג את אחוז הרוחב של התמונה שבו יורחב המסכה. השימוש ב-dilationעוזר לפצות על מסכות לא מדויקות. מומלץ להגדיר ערך של0.01. -
EDIT_STEPS: אופציונלי. מספר שלם שמייצג את מספר שלבי הדגימה. ערך גבוה יותר ייתן איכות תמונה טובה יותר, וערך נמוך יותר ייתן זמן אחזור טוב יותר.מומלץ לנסות את השלבים
35כדי להתחיל. אם האיכות לא עומדת בדרישות שלכם, מומלץ להגדיל את הערך עד למגבלה העליונה של75. -
SAMPLE_COUNT: אופציונלי. מספר שלם שמתאר את מספר התמונות שרוצים ליצור. הטווח המקובל של הערכים הוא1עד4. ערך ברירת המחדל הוא4.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/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",
"referenceImage": {
"bytesBase64Encoded": "B64_MASK_IMAGE"
},
"maskImageConfig": {
"maskMode": "MASK_MODE_USER_PROVIDED",
"dilation": MASK_DILATION
}
}
]
}
],
"parameters": {
"editConfig": {
"baseSteps": EDIT_STEPS
},
"editMode": "EDIT_MODE_INPAINT_INSERTION",
"sampleCount": SAMPLE_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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict" | Select-Object -Expand Content
"sampleCount": 2. התגובה מחזירה שני אובייקטים של חיזוי, עם בייטים של התמונה שנוצרה בקידוד Base64.
{
"predictions": [
{
"bytesBase64Encoded": "BASE64_IMG_BYTES",
"mimeType": "image/png"
},
{
"mimeType": "image/png",
"bytesBase64Encoded": "BASE64_IMG_BYTES"
}
]
}
הוספה עם זיהוי אוטומטי של מסכה
אפשר להשתמש בדוגמאות הבאות כדי לציין תיקון תמונות להוספת תוכן. בדוגמאות האלה מציינים תמונת בסיס והנחייה טקסטואלית. Imagen מזהה ויוצר באופן אוטומטי אזור מסכה כדי לשנות את תמונת הבסיס.
המסוף
במסוף Google Cloud , עוברים לדף Vertex AI > Vertex AI Studio .
לוחצים על יצירת מדיה.
לוחצים על תמונה.
ברשימה משימה, בוחרים באפשרות הוספה של תיקון פגמים.
ברשימה מודל, בוחרים את מודל Imagen שרוצים להשתמש בו.
בקטע Input image (תמונת קלט), לוחצים על Add (הוספה) ובוחרים את התמונה שרוצים לערוך כדי להעלות אותה.
בתיבה הנחיה, כותבים הנחיה שמתארת את השינוי שרוצים לעשות בתמונה.
בסרגל הכלים לעריכה, לוחצים על background_replaceחילוץ מסכה.
בוחרים אחת מהאפשרויות לחילוץ המסכה:
אלמנטים ברקע: זיהוי האלמנטים ברקע ויצירת מסכה סביבם.
אלמנטים בחזית: מזהה את האובייקטים בחזית ויוצר מסכה סביבם.
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
מידע נוסף על Imagen API:
- Method:
endpoints.predict VisionGenerativeModelInstanceVisionGenerativeModelParamsVisionGenerativeModelResult
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- LOCATION: האזור של הפרויקט. לדוגמה,
us-central1,europe-west2אוasia-northeast3. רשימת האזורים הזמינים מופיעה במאמר מיקומי AI גנרטיבי ב-Vertex AI. כשמשתמשים בנקודת קצה אזורית של API, האזור מכתובת ה-URL של נקודת הקצה קובע איפה הבקשה תעובד, והערךLOCATIONבנתיב המשאב מתעלם אם יש התנגשות. - TEXT_PROMPT: הנחייה טקסטואלית קובעת אילו תמונות המודל יוצר. כשמשתמשים בהנחיה להוספת תיקון תמונה, מומלץ להשתמש בתיאור של האזור המוסתר כדי לקבל את התוצאות הטובות ביותר. אל תשתמשו בהנחיות שמורכבות ממילה אחת. לדוגמה, כדאי להשתמש ב-"a cute corgi" במקום ב-"corgi".
- B64_BASE_IMAGE: תמונת הבסיס לעריכה או להגדלה. התמונה צריכה להיות מחרוזת בייטים בקידוד base64. מגבלת גודל: 10MB.
- MASK_MODE – מחרוזת שמגדירה את סוג יצירת המסכה האוטומטית שבה נעשה שימוש במודל.
ערכים זמינים:
-
MASK_MODE_BACKGROUND: יצירת מסכה באופן אוטומטי באמצעות פילוח של הרקע. -
MASK_MODE_FOREGROUND: יוצר מסכה באופן אוטומטי באמצעות פילוח של חזית התמונה. -
MASK_MODE_SEMANTIC: יוצר באופן אוטומטי מסכה באמצעות פילוח סמנטי על סמך מחלקות הפילוח שצוינו במערךmaskImageConfig.maskClasses. לדוגמה:"maskImageConfig": { "maskMode": "MASK_MODE_SEMANTIC", "maskClasses": [175, 176], // bicycle, car "dilation": 0.01 }
-
- MASK_DILATION - float. אחוז רוחב התמונה שבו רוצים להרחיב את המסכה. מומלץ להגדיר ערך של
0.01כדי לפצות על מסכות קלט לא מושלמות. - EDIT_STEPS – מספר שלם. מספר שלבי הדגימה של מודל הבסיס. כדי להוסיף תוכן באמצעות מילוי חורים, מתחילים ב-
35שלבים. אם האיכות לא עומדת בדרישות שלכם, אפשר להגדיל את מספר השלבים עד למגבלה העליונה של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",
"dilation": MASK_DILATION
}
}
]
}
],
"parameters": {
"editConfig": {
"baseSteps": EDIT_STEPS
},
"editMode": "EDIT_MODE_INPAINT_INSERTION",
"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
"sampleCount": 2. התגובה מחזירה שני אובייקטים של חיזוי, עם בייטים של התמונה שנוצרה בקידוד Base64.
{
"predictions": [
{
"bytesBase64Encoded": "BASE64_IMG_BYTES",
"mimeType": "image/png"
},
{
"mimeType": "image/png",
"bytesBase64Encoded": "BASE64_IMG_BYTES"
}
]
}
מגבלות
בקטעים הבאים מוסבר על המגבלות של התכונה 'הסרת אובייקטים' ב-Imagen.
פיקסלים שעברו שינוי
המודל יוצר פיקסלים ברזולוציה שלו (לדוגמה, 1024x1024), שעשויה להיות שונה מהרזולוציה של תמונת הקלט. המשמעות היא שבתמונה שנוצרה יכולים להיות שינויים קטנים שלא היו בתמונה המקורית.
כדי לשמור על התמונה בצורה מושלמת, מומלץ למזג את התמונה שנוצרה עם תמונת הקלט באמצעות המסכה. בדרך כלל, אם הרזולוציה של תמונת הקלט היא 2K או יותר, צריך למזג את התמונה שנוצרה עם תמונת הקלט.
הוספת מגבלה
למרות שהאובייקט שמוסיפים בדרך כלל תואם לסגנון של תמונת הבסיס, יכול להיות שחלק ממילות המפתח יניבו תוצאות שנראות כמו קריקטורה ולא כמו תמונה פוטו-ריאליסטית.
לדוגמה, אם תבקשו ליצור "ג'ירפה צהובה", יכול להיות שתקבלו תמונה בסגנון קריקטורה כי ג'ירפות הן בדרך כלל חומות או חומות בהירות. יצירת תמונות פוטוריאליסטיות עם צבעים לא טבעיים יכולה להיות קשה.
המאמרים הבאים
כדאי לקרוא מאמרים על Imagen ועל מוצרים אחרים של AI גנרטיבי ב-Vertex AI:
- מדריך למפתחים לתחילת העבודה עם Imagen 3 ב-Vertex AI
- מודלים וכלים חדשים של מדיה גנרטיבית, שנוצרו עם יוצרים ועבור יוצרים
- חדש ב-Gemini: תצורות Gem מותאמות אישית ויצירת תמונות משופרת באמצעות Imagen 3
- Google DeepMind: Imagen 3 – המודל האיכותי ביותר שלנו ליצירת תמונות לפי טקסט