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

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

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

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

הצגת כרטיס המודל של 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.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. 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.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

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

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

    המסוף

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

    Python

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

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

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

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

      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 .

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

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

המסוף

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

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

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

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

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

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

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

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

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

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

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

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=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

בדוגמה הזו מפעילים את השיטה generate_images ב-ImageGenerationModel ושומרים את התמונות שנוצרו באופן מקומי. אחר כך תוכלו להשתמש בשיטה show() במחברת כדי להציג את התמונות שנוצרו. מידע נוסף על גרסאות המודלים והתכונות זמין במאמר מודלים של Imagen.

from google import genai
from google.genai.types import GenerateImagesConfig

client = genai.Client()

# TODO(developer): Update and un-comment below line
# output_file = "output-image.png"

image = client.models.generate_images(
    model="imagen-4.0-generate-001",
    prompt="A dog reading a newspaper",
    config=GenerateImagesConfig(
        image_size="2K",
    ),
)

image.generated_images[0].image.save(output_file)

print(f"Created output image using {len(image.generated_images[0].image.image_bytes)} bytes")
# Example response:
# Created output image using 1234567 bytes

REST

מידע נוסף על Imagen API:

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

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

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

    אפשר להשתמש במשתנים האופציונליים הבאים בהתאם לתרחיש השימוש. מוסיפים חלק מהפרמטרים הבאים או את כולם לאובייקט "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"
    }
    
    • 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. זה שינוי אופציונלי. האם להפעיל ציונים מעוגלים של אתיקה של בינה מלאכותית לרשימה של מאפייני בטיחות בתשובות לקלט ולפלט לא מסוננים. קטגוריות של מאפייני בטיחות: "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: השבתה של הכללת אנשים או פנים בתמונות שנוצרו.
    • 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/.

ה-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: