התאמה אישית מבוקרת

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

  1. התאמה אישית מבוקרת של Imagen 3 (תכונה ב-GA)

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

  2. התאמה אישית מבוקרת של Imagen 2 – אות מקור של קצה חכם או שרבוט (תכונת Preview)

המודלים הבאים תומכים בהתאמה אישית מבוקרת:

תרחישים לדוגמה

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

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

דוגמאות לתרחישי שימוש מיועדים

אלה תרחישי שימוש שבהם Imagen 3 Controlled Customization מאומן לבצע פעולות ומפיק תוצאות טובות:

  • תיצור תמונה לפי הפרומפט ותמונות השליטה של קצוות קאני.

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

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

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

אלה תרחישי שימוש שבהם לא בוצע אימון של Imagen 3 Controlled Customization, ולכן התוצאות שמתקבלות לא טובות:

  • ליצור תמונה באמצעות סגנון שמצוין בפרומפט.

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

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

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

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

  • תעצב תמונה של חיית מחמד ותהפוך אותה לציור. לשמור על הקומפוזיציה של התמונה או לציין אותה (לדוגמה, צבעי מים).

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

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

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

  3. Enable the Vertex AI API.

    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

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

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

    המסוף

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

    REST

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

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

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

כתיבת פרומפטים להתאמה אישית

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

תרחיש שימוש תמונות לדוגמה תבנית לפרומפט דוגמה
התאמה אישית מבוקרת מפת שרבוטים (1) תצור תמונה שתואמת לscribble map [1] כדי להתאים לתיאור: ${STYLE_PROMPT} ${PROMPT}. צור תמונה שתתאים לscribble map [1] כדי שתהיה זהה לתיאור: התמונה צריכה להיות בסגנון של ציור שמן אימפרסיוניסטי עם משיכות מכחול רפויות. התמונה צריכה להיות עם אווירה מוארת באופן טבעי ומשיכות מכחול בולטות. מבט מהצד על מכונית. המכונית חונה על משטח כביש רטוב ומבריק, ואורות העיר משתקפים בשלוליות.
התאמה אישית מבוקרת תמונה של שליטה ב-Canny (1) יצירת תמונה שתואמת לedge map [1] כדי שתתאים לתיאור: ${STYLE_PROMPT} ${PROMPT} צור תמונה שתתאים לedge map [1] בהתאם לתיאור הבא: התמונה צריכה להיות בסגנון של ציור שמן אימפרסיוניסטי, עם משיכות מכחול רפויות. התמונה צריכה להיות מוארת באופן טבעי, עם משיכות מכחול בולטות. מבט מהצד על מכונית. המכונית חונה על משטח כביש רטוב ומבריק, ואורות העיר משתקפים בשלוליות.
עיצוב תמונה של אדם עם קלט FaceMesh תמונת מושא הצילום (1-3)

תמונת שליטה של FaceMesh (1)
תצור תמונה של SUBJECT_DESCRIPTION [1] בתנוחה של CONTROL_IMAGE [2] בהתאם לתיאור: תמונה של SUBJECT_DESCRIPTION [1] ${PROMPT} תיצור תמונה של a woman with short hair [1] בתנוחה של control image [2] בהתאם לתיאור: דיוקן של a woman with short hair [1] בסגנון קריקטורה תלת-ממדית עם רקע מטושטש. דמות חמודה ומקסימה, עם פנים מחייכות, פונה למצלמה, גווני פסטל, איכות גבוהה, 4k, יצירת מופת, פרטים קטנים, מרקם עור, מיפוי מרקם, צללים רכים, תאורה רכה וריאליסטית, צבעים עזים
עיצוב תמונה של אדם עם קלט FaceMesh תמונת מושא הצילום (1-3)

תמונת שליטה של FaceMesh (1)
תצור תמונה של ${STYLE_PROMPT} בנושא SUBJECT_DESCRIPTION [1] בתנוחה של CONTROL_IMAGE [2] כדי שתתאים לתיאור: דיוקן של SUBJECT_DESCRIPTION [1] ${PROMPT} תיצור תמונה בסגנון סרטים מצוירים בתלת ממד של a woman with short hair [1] בתנוחה של control image [2] שתתאים לתיאור: פורטרט של a woman with short hair [1] בסגנון סרטים מצוירים בתלת ממד עם רקע מטושטש. דמות חמודה ומקסימה עם פנים מחייכות, פונה למצלמה, גווני פסטל, איכות גבוהה, 4k, יצירת מופת, פרטים קטנים, מרקם עור, מיפוי מרקם, צללים רכים, תאורה רכה ומציאותית, צבעים עזים

שליחת בקשה להתאמה אישית מבוקרת של Imagen 3

אפשר להשתמש בדוגמאות הבאות כדי לשלוח בקשה לשינוי מבוקר של Imagen 3:

REST

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

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

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • LOCATION: האזור של הפרויקט. לדוגמה, us-central1,‏ europe-west2 או asia-northeast3. רשימת האזורים הזמינים מופיעה במאמר מיקומים של AI גנרטיבי ב-Vertex AI. כשמשתמשים בנקודת קצה אזורית של API, האזור מכתובת ה-URL של נקודת הקצה קובע איפה הבקשה תעובד, והערך LOCATION בנתיב המשאב מתעלם אם יש התנגשות.
  • TEXT_PROMPT: הנחיית הטקסט קובעת אילו תמונות המודל יוצר. כדי להשתמש בהתאמה אישית מבוקרת של Imagen 3, צריך לכלול את referenceId של תמונת רפרנס הבקרה שסיפקתם בפורמט [$referenceId]. לדוגמה:
    • יצירת תמונה בהתאם למפה המשורטטת [1] כדי להתאים לתיאור: [image description].
  • BASE64_CONTROL_IMAGE: תמונת הבקרה הבסיסית (סקיצה). צריך לציין את התמונה כמחרוזת בייטים בקידוד base64.
    ‫For CONTROL_TYPE_SCRIBBLE: The expected scribble control image has black background and white scribble line. תמונה לדוגמה של אמצעי בקרה על שרבוטים
    בשביל CONTROL_TYPE_CANNY: תמונת הבקרה הצפויה של קצוות קאני היא עם רקע שחור וקצוות קאני לבנים. תמונה לדוגמה של אמצעי בקרה על קצוות חדים
  • CONTROL_TYPE: סוג אות הבקרה. שימוש ב-CONTROL_TYPE_CANNY לזיהוי קצוות. משתמשים ב-CONTROL_TYPE_SCRIBBLE כדי לשרטט.
  • enableControlImageComputation: מגדירים את הערך false אם מספקים תמונה משלכם לבקרה. במקרה כזה, B64_BASE_IMAGE צריך להיות תמונה של אות הבקרה. מגדירים את הערך true אם רוצים ש-Imagen יחשב את תמונת הבקרה מתוך תמונת רפרנס. במקרה הזה, B64_BASE_IMAGE צריך להיות תמונת ה-RGB הגולמית.
  • 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_CONTROL",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "BASE64_CONTROL_IMAGE"
          },
          "controlImageConfig": {
            "controlType": "CONTROL_TYPE",
            "enableControlImageComputation": false
          }
        }
      ]
    }
  ],
  "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://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"
    }
  ]
}

Python

שרבוט

from google import genai
from google.genai.types import (
    ControlReferenceConfig,
    ControlReferenceImage,
    EditImageConfig,
    Image,
)

client = genai.Client()

# TODO(developer): Update and un-comment below line
# output_gcs_uri = "gs://your-bucket/your-prefix"

# Create a reference image out of an existing scribble image signal
# using https://storage.googleapis.com/cloud-samples-data/generative-ai/image/car_scribble.png
control_reference_image = ControlReferenceImage(
    reference_id=1,
    reference_image=Image(gcs_uri="gs://cloud-samples-data/generative-ai/image/car_scribble.png"),
    config=ControlReferenceConfig(control_type="CONTROL_TYPE_SCRIBBLE"),
)

image = client.models.edit_image(
    model="imagen-3.0-capability-001",
    prompt="an oil painting showing the side of a red car[1]",
    reference_images=[control_reference_image],
    config=EditImageConfig(
        edit_mode="EDIT_MODE_CONTROLLED_EDITING",
        number_of_images=1,
        safety_filter_level="BLOCK_MEDIUM_AND_ABOVE",
        person_generation="ALLOW_ADULT",
        output_gcs_uri=output_gcs_uri,
    ),
)

# Example response:
# gs://your-bucket/your-prefix
print(image.generated_images[0].image.gcs_uri)

Canny edge

from google import genai
from google.genai.types import (
    ControlReferenceConfig,
    ControlReferenceImage,
    EditImageConfig,
    Image,
)

client = genai.Client()

# TODO(developer): Update and un-comment below line
# output_gcs_uri = "gs://your-bucket/your-prefix"

# Create a reference image out of an existing canny edge image signal
# using https://storage.googleapis.com/cloud-samples-data/generative-ai/image/car_canny.png
control_reference_image = ControlReferenceImage(
    reference_id=1,
    reference_image=Image(gcs_uri="gs://cloud-samples-data/generative-ai/image/car_canny.png"),
    config=ControlReferenceConfig(control_type="CONTROL_TYPE_CANNY"),
)

image = client.models.edit_image(
    model="imagen-3.0-capability-001",
    prompt="a watercolor painting of a red car[1] driving on a road",
    reference_images=[control_reference_image],
    config=EditImageConfig(
        edit_mode="EDIT_MODE_CONTROLLED_EDITING",
        number_of_images=1,
        safety_filter_level="BLOCK_MEDIUM_AND_ABOVE",
        person_generation="ALLOW_ADULT",
        output_gcs_uri=output_gcs_uri,
    ),
)

# Example response:
# gs://your-bucket/your-prefix
print(image.generated_images[0].image.gcs_uri)

שליחת בקשה להתאמה אישית מבוקרת של Imagen 2

תמונת הקלט פרמטרים אחרים התמונה שנוצרה
קלט שחמט
תמונת הקלט. מקור התמונה: Alec Cutter ב-Unsplash.

הנחיה: "גרסה של יצירת אמנות דיגיטלית"

פרומפט שלילי: "שחור לבן"

סוג תמונת ההנחיה: RGB רגיל

תנאי בקרה: זיהוי קצוות (canny edge)

קנה מידה של Imagen Control: 0.95

פלט מסוגנן
קלט שחמט
תמונת הקלט. מקור התמונה: Alec Cutter ב-Unsplash
(בוצע זיהוי קצוות).

הנחיה: "גרסה של יצירת אמנות דיגיטלית"

פרומפט שלילי: "שחור לבן"

סוג תמונת ההנחיה: קצה קאני

קנה מידה של Imagen Control: 0.95

פלט מסוגנן

אפשר להשתמש בדוגמאות הבאות כדי לשלוח בקשה להתאמה אישית מבוקרת של Imagen 2:

שימוש במוצר

כדי לראות את תקני השימוש והגבלות התוכן שקשורים ל-Imagen ב-Vertex AI, אפשר לעיין בהנחיות השימוש.

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

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

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

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