עריכת תמונות

מודל Imagen מאפשר לערוך תמונות תוך שניות באמצעות הנחיות טקסט, מסכות ותמונות קיימות.

הצגת כרטיס המודל של Imagen לעריכה ולהתאמה אישית

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

‫Imagen API תומך במודלים הבאים:

  • imagen-3.0-capability-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/imagen-3.0-capability-001:predict \

-d '{
  "instances": [
    {
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_RAW",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": string
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_MASK",
          "referenceId": 2,
          "referenceImage": {
            "bytesBase64Encoded": string
          },
          "maskImageConfig": {
            "maskMode": "MASK_MODE_USER_PROVIDED"
          }
        }
      ],
      "prompt": string
    }
  ],
  "parameters": {
    "addWatermark": boolean,
    "baseSteps": integer,
    "editMode": string,
    "guidanceScale": integer,
    "includeRaiReason": boolean,
    "includeSafetyAttributes": boolean,
    "language": string,
    "negativePrompt": string,
    "outputOptions": {
      "mimeType": string,
      "compressionQuality": integer
    },
    "personGeneration": string,
    "safetySetting": string,
    "sampleCount": integer,
    "seed": integer,
    "storageUri": string
  }
}'

מכונות

מכונות
prompt

string

זה שינוי אופציונלי. הנחיית הטקסט לתמונה. אם לא מציינים prompt, המודל ממלא את התוכן לפי ההקשר של התמונה.

referenceImages

רשימה של ReferenceImage אובייקטים.

חובה. בעריכה של מסכה, צריך לציין בדיוק שתי תמונות לדוגמה, אחת עם REFERENCE_TYPE_RAW ואחת עם REFERENCE_TYPE_MASK.

אובייקט referenceImages

אובייקט referenceImages מתאר את נכסי התמונות שצריך לערוך ב-Imagen.

פרמטרים
referenceType

string

חובה. סוג התמונה לדוגמה. אחת מהאפשרויות הבאות:

  • REFERENCE_TYPE_RAW: תמונת הבסיס לעריכה.
  • REFERENCE_TYPE_MASK: תמונת המסכה, שבה ערכים שאינם אפס מציינים איפה לערוך את תמונת הבסיס.
referenceId

integer

חובה. מזהה ייחודי של תמונה לדוגמה. לא משמש לעריכה מוסתרת.

referenceImage.bytesBase64Encoded

string

חובה. בייטים של תמונה בקידוד Base64. אפשר להשתמש בקובצי PNG,‏ JPEG,‏ GIF ו-BMP. הגודל המקסימלי הוא 20MB אחרי קידוד מחדש ל-PNG. אם מספקים תמונת מסכה, המידות שלה צריכות להיות זהות למידות של תמונת הבסיס.

maskImageConfig.maskMode

string

חובה אם הערך של referenceType הוא REFERENCE_TYPE_MASK. הערך חייב להיות אחד מהערכים הבאים:

  • MASK_MODE_USER_PROVIDED: שימוש במסכה מתוך referenceImage.bytesBase64Encoded.
  • MASK_MODE_BACKGROUND: שימוש במסכה שנוצרה באופן אוטומטי מפילוח הרקע.
  • MASK_MODE_FOREGROUND: שימוש במסכה שנוצרה באופן אוטומטי מפילוח של חזית התמונה.
  • MASK_MODE_SEMANTIC: שימוש במסכה שנוצרה אוטומטית מפילוח סמנטי עם מחלקת המסכה שצוינה.
maskImageConfig.dilation

float

זה שינוי אופציונלי. טווח: [0, 1]. אחוז מרוחב התמונה שמשמש להרחבת המסכה. הפעולה הזו יכולה לעזור לפצות על מסכות לא מדויקות. כדי לקבל את התוצאות הטובות ביותר, מומלץ להשתמש בהגדרות הבאות maskImageConfig.maskMode עם הערכים שמופיעים כאן:

  • EDIT_MODE_INPAINT_INSERTION: 0.01
  • EDIT_MODE_INPAINT_REMOVAL: ‏0.01
  • EDIT_MODE_BGSWAP: 0.0
  • EDIT_MODE_OUTPAINT: 0.01-0.03
maskImageConfig.maskClasses

list[integer]

זה שינוי אופציונלי. הסתרת מחלקות במצב MASK_MODE_SEMANTIC.

פרמטרים

פרמטרים
addWatermark

bool

זה שינוי אופציונלי. הוספת סימן מים בלתי נראה לתמונות שנוצרו.

ערך ברירת המחדל הוא true.

baseSteps

integer

זה שינוי אופציונלי. מספר שלבי הדגימה. ערך גבוה יותר מצביע על איכות תמונה טובה יותר, וערך נמוך יותר מצביע על זמן אחזור טוב יותר. ברירת המחדל היא 75.

כדי להקטין את זמן האחזור כשמדובר באזורים קטנים יותר של המסכה או במצבי הסרה או הוספה, אפשר להשתמש ב-16 - 35 שלבים כדי לקבל רמת איכות דומה.

editMode

string

נדרש לעריכת המסכה.

סוג enum עם אחד מהערכים הבאים:

  • EDIT_MODE_INPAINT_REMOVAL: הסרת אובייקטים ומילוי רקע התמונה באזור המסכה.
  • EDIT_MODE_INPAINT_INSERTION: הוספת אובייקטים מהנחיה נתונה.
  • EDIT_MODE_BGSWAP: הוספת תוכן לרקע באזור המסכה, תוך שמירה על תוכן האובייקט באזור ללא המסכה. שימושי לעריכת מוצרים.
  • EDIT_MODE_OUTPAINT: הרחבת התמונה לאזור המסכה. בניגוד ל-EDIT_MODE_BGSWAP, הפעולה הזו תיצור השלמה של אובייקטים חלקיים בגבול התמונה.
guidanceScale

integer

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

הטווח המקובל: 0 עד 500

ברירת מחדל: 60 למצב הוספה, 75 לשינוי הרקע, להסרה ולהרחבת התמונה.

includeRaiReason

boolean

זה שינוי אופציונלי. האם לכלול סיבת בטיחות לתמונות שסוננו בתשובה. ערך ברירת המחדל הוא false.

includeSafetyAttributes

boolean

זה שינוי אופציונלי. האם לדווח על ציוני הבטיחות של כל תמונה בתגובה. ערך ברירת המחדל הוא false.

language

string

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

  • "auto": זיהוי אוטומטי. אם Imagen מזהה שפה נתמכת, ההנחיה וההנחיה השלילית האופציונלית מתורגמות לאנגלית. אם השפה שזוהתה לא נתמכת, Imagen משתמש בטקסט הקלט כלשונו, מה שעלול להוביל לפלט לא צפוי. לא מוחזר קוד שגיאה.
  • "en": אנגלית (אם לא מציינים ערך, זהו ערך ברירת המחדל)
  • "zh" או "zh-CN": סינית (פשוטה)
  • "zh-TW": סינית (מסורתית)
  • "hi": הינדית
  • "ja": יפנית
  • "ko": קוריאנית
  • "pt": פורטוגזית
  • "es": ספרדית

language נתמך רק על ידי imagen-3.0-capability-001.

negativePrompt

string

זה שינוי אופציונלי. תיאור של מה שאתם רוצים למנוע בתמונות שייווצרו.

outputOptions

outputOptions

זה שינוי אופציונלי. מתאר את פורמט תמונת הפלט באובייקט outputOptions.

personGeneration

string

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

  • "dont_allow": מניעת הכללה של אנשים או פנים בתמונות.
  • "allow_adult": מאפשרים יצירה של תוכן למבוגרים בלבד.
  • "allow_all": מאפשרת יצירה של אנשים בכל הגילאים.

בעריכה מבוססת-מסכה, ברירת המחדל של personGeneration היא allow_adult. כדי לערוך בלי מסכה, personGeneration מוגדר כברירת מחדל ל-allow_adult.

sampleCount

integer

זה שינוי אופציונלי. מספר התמונות שרוצים ליצור. ערך ברירת המחדל הוא 4.

seed

Uint32

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

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".

safetySetting נתמך רק על ידי imagen-3.0-capability-001.

storageUri

string

זה שינוי אופציונלי. ה-URI של Cloud Storage שבו יישמרו התמונות שנוצרו.

אובייקט של אפשרויות פלט

אובייקט outputOptions מתאר את פלט התמונה.

פרמטרים
outputOptions.mimeType

string

זה שינוי אופציונלי. פורמט התמונה שבו צריך לשמור את הפלט. הערכים הבאים נתמכים:

  • "image/png": שמירה כתמונה בפורמט PNG
  • "image/jpeg": שמירה כתמונה בפורמט JPEG

ערך ברירת המחדל הוא "image/png".

outputOptions.compressionQuality

integer

זה שינוי אופציונלי. רמת הדחיסה אם סוג הפלט הוא "image/jpeg". הערכים הקבילים הם 0 עד 100. ערך ברירת המחדל הוא 75.

דוגמה לבקשה

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • REGION: האזור שבו נמצא הפרויקט. מידע נוסף על אזורים נתמכים זמין במאמר בנושא מיקומי AI גנרטיבי ב-Vertex AI.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • TEXT_PROMPT: אופציונלי. הנחיית טקסט שמנחה את התמונות שהמודל יוצר. כדי לקבל את התוצאות הטובות ביותר, כדאי להשתמש בתיאור של האזור המוסתר ולהימנע מהנחיות שמורכבות ממילה אחת. לדוגמה, במקום "קורגי" כדאי להשתמש בביטוי "קורגי חמוד".
  • B64_BASE_IMAGE: תמונה בקידוד base64 של התמונה שנערכת, בגודל של 10MB או פחות. מידע נוסף על קידוד base64 זמין במאמר קידוד ופענוח של קבצים ב-Base64.
  • B64_MASK_IMAGE: תמונה של מסכה בשחור-לבן בקידוד base64, בגודל של 10MB או פחות.
  • MASK_DILATION: אופציונלי. ערך מספרי עשרוני בין 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"
    }
  ]
}

מזהי כיתות

אפשר להשתמש במזהי המחלקה של האובייקטים הבאים כדי ליצור באופן אוטומטי מסכת תמונה שמבוססת על אובייקטים ספציפיים.

מזהה סיווג (class_id) אובייקט
0 תיק גב
1 מטרייה
2 תיק
3 לקשור
4 מזוודה
5 case
6 ציפור
7 cat
8 כלב
9 סוס
10 sheep
11 פרה
12 פיל
13 דוב
14 זברה
15 ג'ירפה
16 בעל חיים (אחר)
17 מיקרוגל
18 רדיאטור
19 תנור
20 טוסטר
21 מיכל אגירה
22 סרט נע
23 sink
24 מקרר
25 מכונת כביסה ומייבש
26 מעריץ
27 מדיח כלים
28 שירותים
29 אמבטיה
30 מקלחת
31 מנהרה
32 גשר
33 מזח
34 אוהל
35 מבנה
36 פונקציית התקרה
37 מחשב נייד
38 מקלדת
39 עכבר
40 מרחוק
41 טלפון סלולרי
42 טלוויזיה
43 קומה
44 לאחסן נתונים במחסן ביניים (Stage)
45 בננה
46 apple
47 כריך
48 כתום
49 ברוקולי
50 גזר
51 נקניקייה
52 פיצה
53 סופגנייה
54 עוגה
55 פירות (אחרים)
56 אוכל (אחר)
57 כיסא (אחר)
58 כורסה
59 כיסא מסתובב
60 שרפרף
61 רישיון
62 ספה
63 פח אשפה
64 צמח בעציץ
65 שידת לילה
66 מיטה
67 טבלה
68 שולחן ביליארד
69 חבית
70 שולחן
71 הדום
72 ארון בגדים
73 עריסה
74 סל
75 שידת מגירות
76 מדף ספרים
77 מונה (אחר)
78 דלפק בחדר אמבטיה
79 אי למטבח
80 דלת
81 אור (אחר)
82 מנורה
83 מנורת קיר
84 נברשת
85 שיקוף
86 לוח אינטראקטיבי
87 מדף
88 מדרגות
89 מדרגות נעות
90 ארון
91 קמין
92 כיריים
93 מכונת ארקייד
94 חצץ
95 פלטפורמה
96 מגרש משחקים
97 רכבת
98 כביש
99 שלג
100 ריצוף מדרכה
101 מסלול המראה
102 פני השטח
103 ספר
104 קופסה
105 שעון
106 אגרטל
107 מספריים
108 צעצוע (אחר)
109 דובי
110 מייבש שיער
111 מברשת שיניים
112 ציור
113 פוסטר
114 לוח מודעות
115 בקבוק
116 גָבִיעַ
117 יין
118 סכין
119 נקודת חיבור
120 כף
121 קערה
122 מגש
123 קולט אדים
124 צלחת
125 אדם
126 נוסע/ת (אחר)
127 רוכב אופניים
128 אופנוען
129 מאמר
130 פנס רחוב
131 מחסום דרך
132 תיבת דואר
133 מצלמת CCTV
134 קופסת צומת
135 תמרור
136 רמזור
137 ברז כיבוי
138 מדחן
139 ספסל
140 מתקן לאופניים
141 לוח מודעות
142 שמיים
143 מוט
144 גדר
145 מעקה מדרגות
146 מעקה בטיחות
147 גבעה הררית
148 רוק
149 פריזבי
150 מגלשי סקי
151 סנובורד
152 כדור ספורט
153 עפיפון
154 מחבט בייסבול
155 כפפת בייסבול
156 סקייטבורד
157 גלשן
158 מחבט טניס
159 net
160 base
161 פסל
162 עמודה
163 מזרקה
164 סוכך
165 apparel
166 באנר
167 אפשרות בשורת הפקודה (flag)
168 שמיכה
169 וילון (אחר)
170 וילון אמבטיה
171 pillow
172 מגבת
173 שטיחון
174 צמחייה
175 אופניים
176 מכונית
177 autorickshaw
178 אופנוע
179 מטוס
180 אוטובוס
181 רכבת
182 truck
183 טריילר
184 סירה
185 אובייקט איטי עם גלגלים
186 אגם נהר
187 ים
188 מים (אחר)
189 בריכת שחייה
190 מפל
191 קיר
192 חלון
193 תריס

המאמרים הבאים