יצירת תמונות באמצעות הנחיות טקסט עם Imagen ב-Vertex AI

אתם יכולים להשתמש ב-Imagen ב-Vertex AI כדי ליצור תמונות חדשות באמצעות פרומפט טקסטואלי. הממשקים הנתמכים כוללים את מסוף Google Cloud ואת Vertex AI API.

המודלים הבאים תומכים ביצירת תמונות מ-AI מפרומפטים טקסטואליים:

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

צפייה בכרטיס המודל של Imagen for Generation

איך יוצרים תמונות (Vertex AI Studio)

ניסיון של Imagen ב-Colab

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the API

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the API

  8. מגדירים אימות לסביבה.

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.

    REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

יצירת תמונות עם טקסט

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

המסוף

1. במסוף Google Cloud , נכנסים לדף Vertex AI > Media Studio.

<a href="https://console.cloud.google.com/vertex-ai/studio/media/generate;tab=image" class="button button-primary"
target="console" track-name="consoleLink" track-type="task">Go to Media
Studio</a>
  1. לוחצים על Imagen. מוצג הדף ליצירת תמונות ב-Imagen Media Studio.

  2. אופציונלי: בחלונית הגדרות, מגדירים את ההגדרות הבאות:

    • מודל: בוחרים מודל מבין האפשרויות הזמינות.

      מידע נוסף על המודלים הזמינים זמין במאמר בנושא מודלים של Imagen

    • יחס גובה-רוחב: בוחרים יחס גובה-רוחב מבין האפשרויות הזמינות.

    • Number of results: מזיזים את פס ההזזה או מזינים ערך בין 1 ל-4.

    • רזולוציית הפלט: בוחרים רזולוציה מבין האפשרויות הזמינות.

  3. אופציונלי: בחלק Advanced options בוחרים Region כדי ליצור את התמונות באזור מסוים.

  4. בתיבה Write your prompt (כתיבת הפרומפט), כותבים את הפרומפט הטקסטואלי שמתאר את התמונות שרוצים ליצור. לדוגמה, סירה קטנה על המים בבוקר, איור בצבעי מים.

    מידע נוסף על כתיבת הנחיות יעילות זמין במדריך להנחיות ולמאפייני תמונות.

  5. לוחצים על יצירה.

סימן מים דיגיטלי נוסף באופן אוטומטי לתמונות שנוצרו. אי אפשר להשבית את סימן המים הדיגיטלי ליצירת תמונות באמצעות מסוף Google Cloud .

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

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

REST

מידע נוסף על Imagen API זמין במקורות הבאים:

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

  • ‫REGION: האזור שבו נמצא הפרויקט. מידע נוסף על אזורים נתמכים זמין במאמר מיקומי AI גנרטיבי ב-Vertex AI.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫MODEL_VERSION: גרסת מודל Imagen שבה ייעשה שימוש. מידע נוסף על המודלים הזמינים זמין במאמר בנושא מודלים של Imagen.

  • ‫TEXT_PROMPT: פרומפט טקסטואלי שמנחה את המודל לגבי התמונות שהוא יוצר. חובה למלא את השדה הזה גם כשיוצרים וגם כשעורכים.
  • ‫IMAGE_COUNT: מספר התמונות שרוצים ליצור. טווח הערכים הקבילים הוא 1 עד 4.
  • פרמטרים אופציונליים נוספים

    אתם יכולים להשתמש במשתנים האופציונליים הבאים בהתאם לתרחיש לדוגמה. מוסיפים חלק מהפרמטרים הבאים או את כולם לאובייקט "parameters": {}. זו רשימה חלקית של פרמטרים אופציונליים נפוצים. מידע נוסף על פרמטרים אופציונליים זמין במאמר הפניית Imagen API: יצירת תמונות.

    "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"
    }
    
    • ‫ADD_WATERMARK: boolean. זה שינוי אופציונלי. האם להפעיל סימן מים לתמונות שנוצרו על ידי AI. כל תמונה שנוצרת כשהשדה מוגדר ל-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. זה שינוי אופציונלי. אם להפעיל את קוד הסיבה לסינון של AI אחראי בתשובות עם קלט או פלט חסומים. ערך ברירת המחדל: 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/jpeg
      • image/gif
      • image/png
      • image/webp
      • image/bmp
      • image/tiff
      • image/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: השבתת האפשרות לכלול אנשים או פנים בתמונות שנוצרות על ידי AI.
    • SAFETY_SETTING: מחרוזת. זה שינוי אופציונלי. הגדרה שקובעת את ערכי הסף של מסנן הבטיחות לתמונות שנוצרו על ידי AI. ערכים זמינים:
      • ‫block_low_and_above: סף הבטיחות הגבוה ביותר, שמוביל לסינון של הכמות הגדולה ביותר של תמונות שנוצרו על ידי AI. הערך הקודם: block_most.
      • ‫block_medium_and_above (ברירת המחדל): סף בטיחות בינוני שמאזן בין סינון תוכן שעלול להיות פוגעני לבין סינון תוכן בטוח. הערך הקודם: block_some.
      • ‫block_only_high: סף בטיחות שמצמצם את מספר הבקשות שנחסמות בגלל מסנני הבטיחות. ההגדרה הזו עלולה להגדיל את כמות התוכן מעורר ההתנגדות שנוצר על ידי Imagen. הערך הקודם: block_few.
    • ‫SEED_NUMBER: מספר שלם. זה שינוי אופציונלי. כל מספר שלם לא שלילי שאתם מספקים כדי ליצור תמונות פלט דטרמיניסטיות. אם תספקו את אותו מספר seed, תמיד תקבלו את אותן תמונות פלט. אם המודל שבו אתם משתמשים תומך בסימון מים דיגיטלי, אתם צריכים להגדיר את "addWatermark": false לשימוש בשדה הזה. ערכי מספרים שלמים קבילים: 1 עד 2147483647.
    • ‫OUTPUT_STORAGE_URI: מחרוזת. זה שינוי אופציונלי. קטגוריה של Cloud Storage לאחסון תמונות הפלט. אם לא מספקים תמונה, התגובה כוללת בייטים של תמונה בקידוד Base64. ערך לדוגמה: gs://image-bucket/output/.

ה-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"
    }
  ]
}

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

מאמרים על Imagen ומוצרים אחרים של AI גנרטיבי ב-Vertex AI: