יצירת תמונות מסרטון באמצעות Gemini

אתם יכולים להשתמש ב-Gemini כדי ליצור תמונות מסרטון, למשל כדי ליצור תמונה ממוזערת לסרטון. הממשקים הנתמכים כוללים את מסוף Google Cloud ואת Agent Platform API.

המודלים הבאים של Gemini תומכים ביצירת תמונות מסרטון:

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

יצירת תמונות מסרטון

כאן מוסבר איך ליצור תמונות מסרטון באמצעות Agent Studio או באמצעות ה-API.

במאמר הזה מפורטות שיטות מומלצות לכתיבת פרומפטים מולטי-מודאליים.

המסוף

כדי ליצור תמונות מסרטון באמצעות Gemini:

  1. בקטע Agent Platform במסוף Google Cloud , נכנסים לדף Agent Studio ‏> Image.

    כניסה ל-Vertex AI Studio

  2. בקטע הגדרות המודל, בוחרים אחד מהמודלים שמוצגים.

  3. באזור הטקסט Prompt, לוחצים על הכפתור add add ובוחרים את המקור של קובץ הווידאו:

    העלאה

    בוחרים את הקובץ שרוצים להעלות ולוחצים על פתיחה.

    לפי כתובת URL

    מזינים את כתובת ה-URL של הקובץ שרוצים להשתמש בו ולוחצים על הוספה.

    YouTube

    מזינים את כתובת ה-URL של הסרטון ב-YouTube שרוצים להשתמש בו ולוחצים על הוספה.

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

    Cloud Storage

    בוחרים את הקטגוריה ואז את הקובץ מהקטגוריה שרוצים לייבא, ולוחצים על Select.

    Google Drive

    1. בפעם הראשונה שבוחרים באפשרות הזו, צריך לבחור חשבון ולתת ל-Vertex AI Studio הרשאת גישה לחשבון. אפשר להעלות כמה קבצים בגודל כולל של עד 10MB. הגודל המקסימלי של קובץ בודד הוא 7MB.
    2. לוחצים על הקובץ שרוצים להוסיף.
    3. לוחצים על בחירה.

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

  4. באזור הטקסט Prompt, כותבים תיאור של התמונה שרוצים ליצור.

  5. לוחצים על הכפתור הנחיה ().

‫Gemini יוצר תמונה על סמך התיאור שלכם. התהליך הזה נמשך כמה שניות, אבל יכול להיות איטי יותר בהתאם לקיבולת.

Python

התקנה

pip install --upgrade google-genai

מידע נוסף זמין ב מאמרי העזרה של ה-SDK.

מגדירים משתני סביבה כדי להשתמש ב-Google 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

from google import genai
from google.genai.types import GenerateContentConfig, Modality, Part
from PIL import Image
from io import BytesIO

client = genai.Client()

# A video on 'The ABCs of agent building'
video = "https://www.youtube.com/watch?v=rjoMZyxncUI"

response = client.models.generate_content(
    model="gemini-3.1-flash-image",
    contents=[
        Part.from_uri(
            file_uri=video,
            mime_type="video/mp4"
        ), 
        "Generate an infographic of the topics covered in this video."
    ],
    config=GenerateContentConfig(response_modalities=[Modality.TEXT, Modality.IMAGE]),
)
for part in response.candidates[0].content.parts:
    if part.text:
        print(part.text)
    elif part.inline_data:
        image = Image.open(BytesIO((part.inline_data.data)))
        image.save("output_folder/video-image.png")

REST

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

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

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫FILE_URI: ה-URI או כתובת ה-URL של הקובץ שרוצים לכלול בהנחיה. הערכים הקבילים כוללים את הערכים הבאים:

    • URI של קטגוריה של Cloud Storage: האובייקט צריך להיות קריא באופן ציבורי או להיות באותו פרויקט ב- Google Cloud ששולח את הבקשה.
    • כתובת URL מסוג HTTP: כתובת ה-URL של הקובץ צריכה להיות ניתנת לקריאה באופן ציבורי. בכל בקשה אפשר לציין קובץ וידאו אחד, קובץ אודיו אחד ועד 10 קובצי תמונות. הגודל המקסימלי של קובצי אודיו, קובצי וידאו ומסמכים הוא 15MB.
    • כתובת ה-URL של הסרטון ב-YouTube: הסרטון ב-YouTube צריך להיות בבעלות החשבון שבו השתמשתם כדי להיכנס למסוף Google Cloud , או להיות גלוי לכולם. אפשר להוסיף רק כתובת URL אחת של סרטון ב-YouTube לכל בקשה.

    כשמציינים fileURI, צריך לציין גם את סוג המדיה (mimeType) של הקובץ. אם מופעל VPC Service Controls, אי אפשר לציין כתובת URL של קובץ מדיה בשביל fileURI.

    אם אין לכם קובץ וידאו ב-Cloud Storage, אתם יכולים להשתמש בקובץ הבא שזמין לכולם: gs://cloud-samples-data/video/animals.mp4 עם סוג MIME של video/mp4. כדי לצפות בסרטון הזה, פתחו את קובץ ה-MP4 לדוגמה.

  • ‫MIME_TYPE: סוג המדיה של הקובץ שצוין בשדות data או fileUri. הערכים הקבילים כוללים:

    לחצו כדי להרחיב את סוגי ה-MIME

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • image/webp
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
  • TEXT: ההוראות בטקסט שצריך לכלול בהנחיה. לדוגמה, What is in the video?

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF

לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.1-flash-image:generateContent"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:

$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://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.1-flash-image:generateContent" | Select-Object -Expand Content
זו דוגמה לתשובה:
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "inlineData": {
              "mimeType": "image/png",
              "data": "IMAGE_BASE64_BYTES"
            }
          }
        ]
      },
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 350,
    "candidatesTokenCount": 258,
    "totalTokenCount": 608
  }
}
שימו לב לפרטים הבאים בכתובת ה-URL של הדוגמה הזו:
  • משתמשים ב-method‏ generateContent כדי לבקש שהתשובה תוחזר אחרי שהיא נוצרת במלואה. כדי להפחית את תפיסת זמן האחזור בקרב קהל אנושי, אפשר להעביר בסטרימינג את התשובה בזמן שהיא נוצרת באמצעות השיטה streamGenerateContent.
  • המזהה של המודל המולטי-מודאלי נמצא בסוף כתובת ה-URL לפני ה-method (לדוגמה, gemini-3.5-flash). יכול להיות שהדוגמה הזו תומכת גם במודלים אחרים.
  • כשמשתמשים בנקודת קצה אזורית ל-API (לדוגמה, us-central1), האזור מכתובת ה-URL של נקודת הקצה קובע איפה הבקשה תעובד. המערכת מתעלמת מכל מיקום שמתנגש בנתיב המשאב.

מה השלב הבא?

בקישורים הבאים יש מידע נוסף על יצירת תמונות באמצעות Gemini: