השמטת תוכן באמצעות הנחיה שלילית

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

בדף הזה מוסבר איך להשמיט תוכן מתמונות שנוצרו על ידי Imagen ב-Vertex AI.

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

‫Imagen יוצר את התמונות האלה עם פרומפט שלילי ובלי פרומפט שלילי:

פרומפט טקסטואלי בלבד

  • פרומפט טקסטואלי: "פיצה"

שלוש תמונות לדוגמה של פיצה

פרומפט טקסטואלי ופרומפט שלילי

  • פרומפט טקסטואלי: "פיצה"
  • הנחיה שלילית: "פפרוני"

שלוש דוגמאות לתמונות של פיצה בלי פפרוני

המודלים הבאים תומכים בהנחיות שליליות:

שימוש בפרומפט שלילי

כדי להשמיט תוכן מתמונות שנוצרו על ידי AI:

המסוף

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

    מעבר ל-Media Studio

  2. לוחצים על Imagen. מוצג הדף ליצירת תמונות ב-Imagen Media Studio.

  3. בחלונית Settings, משנים את האפשרויות הבאות:

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

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

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

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

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

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

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

REST

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

ההנחיה השלילית היא שדה אופציונלי באובייקט parameters של גוף בקשת JSON.

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

  • ‫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"
    }
  ]
}

  1. מחליפים את מה שכתוב בשדות הבאים:

    • ‫NEGATIVE_PROMPT: הנחיה שלילית שתעזור ליצור את התמונות. לדוגמה: ‫'animals' (הסרת בעלי חיים), 'blurry' (הבהרת התמונה), 'text' (הסרת טקסט) או ‫'cropped' (הסרת תמונות חתוכות).
    {
      "instances": [
        ...
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT,
        "negativePrompt": "NEGATIVE_PROMPT"
      }
    }
    

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