איך יוצרים תמונות (Vertex AI Studio)
בדף הזה מוסבר איך להשתמש במספר seed ב-Imagen ב-Vertex AI כדי ליצור תמונות דטרמיניסטיות.
מספר ה-Seed הוא מספר שמוסיפים לבקשה כדי להפוך תמונות גנרטיביות לא דטרמיניסטיות לדטרמיניסטיות. דטרמיניסטי פירושו שבכל פעם שיוצרים תמונה באמצעות Imagen, מקבלים את אותה התוצאה.
לדוגמה, אתם יכולים להזין הנחיה, להגדיר את מספר התוצאות ל-1 ולהשתמש במספר התחלתי כדי לקבל את אותה תמונה בכל פעם שאתם משתמשים באותם ערכי קלט. אם תשלחו את אותה בקשה עם מספר התוצאות שמוגדר ל-8, תקבלו את אותן 8 תמונות.
שימוש בערך התחלתי ליצירת תמונות
צריך לבצע את הפעולות הבאות:
REST
מידע נוסף על Imagen API:
- Method:
endpoints.predict VisionGenerativeModelInstanceVisionGenerativeModelParamsVisionGenerativeModelResult
מספר ה-Seed הוא שדה אופציונלי באובייקט parameters של גוף בקשת JSON.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- REGION: האזור שבו נמצא הפרויקט. מידע נוסף על אזורים נתמכים זמין במאמר מיקומי AI גנרטיבי ב-Vertex AI.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
-
MODEL_VERSION: גרסת מודל Imagen שבה ייעשה שימוש. מידע נוסף על המודלים הזמינים זמין במאמר בנושא מודלים של Imagen.
- TEXT_PROMPT: הנחיית הטקסט שמנחה את המודל לגבי התמונות שהוא יוצר. חובה למלא את השדה הזה גם כשיוצרים וגם כשעורכים.
-
IMAGE_COUNT: מספר התמונות שרוצים ליצור. הטווח המקובל של הערכים הוא
1עד4. - ADD_WATERMARK: boolean. זה שינוי אופציונלי. האם להפעיל סימן מים לתמונות שנוצרו.
כל תמונה שנוצרת כשהשדה מוגדר לערך
trueמכילה סימן מים דיגיטלי של SynthID, שבעזרתו אפשר לאמת תמונה עם סימן מים. אם לא משמיטים את השדה הזה, המערכת משתמשת בערך ברירת המחדלtrue. כדי להשבית את התכונה הזו, צריך להגדיר את הערךfalse. אפשר להשתמש בשדהseedכדי לקבל פלט דטרמיניסטי רק אם השדה הזה מוגדר לערךfalse. - ASPECT_RATIO: מחרוזת. זה שינוי אופציונלי. פרמטר של מצב יצירה ששולט ביחס הגובה-רוחב. ערכי יחס נתמכים והשימוש המיועד שלהם:
-
1:1(ברירת מחדל, ריבוע) 3:4(מודעות, רשתות חברתיות)4:3(טלוויזיה, צילום)16:9(לרוחב)9:16(לאורך)
-
- ENABLE_PROMPT_REWRITING: boolean. זה שינוי אופציונלי. פרמטר לשימוש בתכונה של שכתוב הנחיה שמבוססת על LLM, כדי ליצור תמונות באיכות גבוהה יותר שמשקפות טוב יותר את הכוונה של ההנחיה המקורית. השבתת התכונה הזו עלולה להשפיע על איכות התמונה ועל מידת ההיענות להנחיה. ערך ברירת המחדל:
true. -
INCLUDE_RAI_REASON: boolean. זה שינוי אופציונלי. האם להפעיל את קוד הסיבה המסונן של אתיקה של בינה מלאכותית בתשובות עם קלט או פלט חסומים. ערך ברירת המחדל:
true. - INCLUDE_SAFETY_ATTRIBUTES: boolean. זה שינוי אופציונלי. האם להפעיל ציונים מעוגלים של AI אחראי לרשימה של מאפייני בטיחות בתשובות לקלט ולפלט לא מסוננים. קטגוריות של מאפייני בטיחות:
"Death, Harm & Tragedy","Firearms & Weapons","Hate","Health","Illicit Drugs","Politics","Porn","Religion & Belief","Toxic","Violence","Vulgarity","War & Conflict". ערך ברירת המחדל:false. - MIME_TYPE: מחרוזת. זה שינוי אופציונלי. סוג ה-MIME של תוכן התמונה. ערכים
זמינים:
image/jpegimage/gifimage/pngimage/webpimage/bmpimage/tiffimage/vnd.microsoft.icon
- COMPRESSION_QUALITY: מספר שלם. זה שינוי אופציונלי. ההגדרה רלוונטית רק לקובצי פלט מסוג JPEG. רמת הפירוט שהמודל שומר בתמונות שנוצרו בפורמט קובץ JPEG. ערכים:
0עד100, כאשר מספר גבוה יותר מציין דחיסה רבה יותר. ברירת מחדל:75. - PERSON_SETTING: מחרוזת. זה שינוי אופציונלי. הגדרת הבטיחות שקובעת את הסוג של
אנשים או פנים שהמודל מאפשר ליצור. ערך ברירת המחדל תלוי במודל. ערכים
זמינים:
-
allow_all: מאפשרת יצירת תמונות של אנשים, כולל קטינים. זוהי ברירת המחדל של מודלי הדור של Imagen 4, imagen-3.0-capability-001 ו-imagen-product-recontext-preview-06-30. -
allow_adult: מאפשר יצירה של מבוגרים בלבד, כולל ידוענים. זוהי ברירת המחדל לכל שאר המודלים. -
dont_allow: השבתה של הכללת אנשים או פנים בתמונות שנוצרו.
-
- SAFETY_SETTING: מחרוזת. זה שינוי אופציונלי. הגדרה שקובעת את ספי ההפעלה של מסנן הבטיחות לתמונות שנוצרו על ידי AI. ערכים זמינים:
-
block_low_and_above: סף הבטיחות הגבוה ביותר, שמוביל לסינון של הכמות הגדולה ביותר של תמונות שנוצרו על ידי AI. הערך הקודם:block_most. block_medium_and_above(ברירת מחדל): סף בטיחות בינוני שמאזן בין סינון של תוכן בטוח לבין סינון של תוכן שעלול להיות מזיק. הערך הקודם:block_some.-
block_only_high: סף בטיחות שמפחית את מספר הבקשות שנחסמו בגלל מסנני בטיחות. ההגדרה הזו עשויה להגדיל את כמות התוכן הבעייתי שנוצר על ידי Imagen. הערך הקודם:block_few.
-
- SEED_NUMBER: מספר שלם. זה שינוי אופציונלי. כל מספר שלם לא שלילי שאתם מספקים כדי ליצור תמונות פלט דטרמיניסטיות. אם תספקו את אותו מספר בסיס, תמיד תקבלו את אותן תמונות פלט. אם
המודל שבו אתם משתמשים תומך בסימון מים דיגיטלי, אתם צריכים להגדיר את
"addWatermark": falseלשימוש בשדה הזה. ערכים קבילים של מספרים שלמים:1עד2147483647. - OUTPUT_STORAGE_URI: מחרוזת. זה שינוי אופציונלי. הקטגוריה של Cloud Storage שבה יישמרו תמונות הפלט. אם לא מציינים ערך, התגובה מחזירה בייטים של תמונה בקידוד Base64. ערך לדוגמה:
gs://image-bucket/output/.
פרמטרים אופציונליים נוספים
אפשר להשתמש במשתנים האופציונליים הבאים בהתאם לתרחיש השימוש. מוסיפים חלק מהפרמטרים הבאים או את כולם לאובייקט "parameters": {}.
זו רשימה חלקית של פרמטרים אופציונליים נפוצים. מידע נוסף על פרמטרים אופציונליים זמין במאמר Imagen API reference: Generate images.
"parameters": {
"sampleCount": IMAGE_COUNT,
"addWatermark": ADD_WATERMARK,
"aspectRatio": "ASPECT_RATIO",
"enhancePrompt": ENABLE_PROMPT_REWRITING,
"includeRaiReason": INCLUDE_RAI_REASON,
"includeSafetyAttributes": INCLUDE_SAFETY_ATTRIBUTES,
"outputOptions": {
"mimeType": "MIME_TYPE",
"compressionQuality": COMPRESSION_QUALITY
},
"personGeneration": "PERSON_SETTING",
"safetySetting": "SAFETY_SETTING",
"seed": SEED_NUMBER,
"storageUri": "OUTPUT_STORAGE_URI"
}
ה-method של ה-HTTP וכתובת ה-URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/MODEL_VERSION:predict
גוף בקשת JSON:
{
"instances": [
{
"prompt": "TEXT_PROMPT"
}
],
"parameters": {
"sampleCount": 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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/MODEL_VERSION: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/MODEL_VERSION:predict" | Select-Object -Expand Content
"sampleCount":
2. התגובה מחזירה שני אובייקטים של חיזוי, עם הבייטים של התמונה שנוצרה בקידוד base64.
{ "predictions": [ { "bytesBase64Encoded": "BASE64_IMG_BYTES", "mimeType": "image/png" }, { "mimeType": "image/png", "bytesBase64Encoded": "BASE64_IMG_BYTES" } ] }
אם משתמשים במודל שתומך בשיפור הנחיות, התשובה כוללת שדה prompt נוסף עם ההנחיה המשופרת ששימשה ליצירה:
{
"predictions": [
{
"mimeType": "MIME_TYPE",
"prompt": "ENHANCED_PROMPT_1",
"bytesBase64Encoded": "BASE64_IMG_BYTES_1"
},
{
"mimeType": "MIME_TYPE",
"prompt": "ENHANCED_PROMPT_2",
"bytesBase64Encoded": "BASE64_IMG_BYTES_2"
}
]
}
מחליפים את מה שכתוב בשדות הבאים:
- SEED_NUMBER: מספר שלם. זה שינוי אופציונלי. כל מספר שלם לא שלילי שאתם מספקים כדי ליצור תמונות פלט דטרמיניסטיות. אם תספקו את אותו מספר בסיס, תמיד תקבלו את אותן תמונות פלט. אם
המודל שבו אתם משתמשים תומך בסימון מים דיגיטלי, אתם צריכים להגדיר את
"addWatermark": falseלשימוש בשדה הזה. ערכים קבילים של מספרים שלמים:1עד2147483647.
- SEED_NUMBER: מספר שלם. זה שינוי אופציונלי. כל מספר שלם לא שלילי שאתם מספקים כדי ליצור תמונות פלט דטרמיניסטיות. אם תספקו את אותו מספר בסיס, תמיד תקבלו את אותן תמונות פלט. אם
המודל שבו אתם משתמשים תומך בסימון מים דיגיטלי, אתם צריכים להגדיר את
{
"instances": [
...
],
"parameters": {
"sampleCount": IMAGE_COUNT,
"seed": SEED_NUMBER,
// required for model version 006 and greater only when using a seed number
"addWatermark": false
}
}
המאמרים הבאים
- שימוש בכלי לשכתוב הנחיות
- הגדרת השפה של הנחייה טקסטואלית
- הגדרת יחס גובה-רוחב
- השמטת תוכן באמצעות הנחיה שלילית