שיפור הרזולוציה של סרטונים

אתם יכולים להשתמש ב-Gemini Omni 1.2 Flash כדי לשדרג סרטונים מרזולוציות נמוכות (360p או 720p) לרזולוציות גבוהות (720p,‏ 1080p או 4K) באמצעות Agent Platform API. הגדלת רזולוציה של סרטון עצמאי מאפשרת לכם לחזור על הנחיות ברזולוציות נמוכות יותר, ולהגדיל את הרזולוציה רק של הסרטון הסופי שנבחר, מהשלב הקודם או מסרטון שנוצר קודם ומאוחסן ב-Cloud Storage.

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

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

רזולוציות ומפרטים נתמכים

התכונה "שיפור איכות של סרטונים עצמאיים" תומכת במעברים הבאים בין רזולוציות ובמגבלות הקלט הבאות:

  • סרטון קלט באיכות 360p: הגדלת הרזולוציה ל-720p או ל-1080p. אי אפשר לשדרג ישירות מ-360p ל-4k בבקשה אחת.
  • סרטון קלט ברזולוציה של 720p: הגדלת הרזולוציה ל-1080p או ל-4k. אי אפשר לשדרג מ-1080p ל-4k.
  • יחסי גובה-רוחב: 16:9 (לרוחב) או 9:16 (לאורך).
  • קצב פריימים: 24 פריימים לשנייה (נשמר בסרטון הפלט).
  • משך: עד 15 שניות.
  • שימוש בטוקנים ותמחור: שיפור רזולוציה של סרטון עצמאי עוקף את החשיבה הטקסטואלית, ותמיד לא נדרשים טוקנים של קלט (total_input_tokens: 0). טוקנים של פלט וידאו מחויבים באותו מחיר של טוקנים של פלט וידאו כמו כל שאר המשימות של Omni 1.2 Flash, על סמך צמד הרזולוציות של המקור והיעד (2,896 טוקנים של פלט וידאו לשנייה מ-360p ל-720p ומ-720p ל-1080p, 5,792 טוקנים של פלט וידאו לשנייה מ-360p ל-1080p, ו-11,584 טוקנים של פלט וידאו לשנייה מ-720p ל-4k).

דרישות לגבי הבקשה

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

  • מציינים את task: "upscale": צריך להגדיר את generation_config.video_config.task לערך "upscale". אם לא מציינים את task: "upscale", ה-API מפרש את הבקשה כפעולת עריכת סרטון ("edit").
  • צריך לציין יעד resolution: צריך לציין את היעד resolution ("720p",‏ "1080p" או "4k") ב-response_format. אם לא תציינו את היעד resolution, תוחזר שגיאה.
  • לספק מקור לסרטון: מספקים סרטון קלט ב-input ("type": "video") או מגדירים את previous_interaction_id כדי לשפר את האיכות של סרטון שנוצר בסבב הקודם. באינטראקציות עם כמה שלבים, רק השלב הקודם נלקח בחשבון כשמאתרים את הסרטון שרוצים לשפר.
  • פרמטרים אופציונליים: אתם יכולים לציין את generation_config.seed כדי לקבל פלט שניתן לשחזור, ולצרף תוויות של מטא-נתונים בהתאמה אישית (labels) כדי לארגן את הבקשות ולעקוב אחרי עלויות החיוב.

התנסות ב-Gemini Omni ב-Colab

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

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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. Enable the Agent Platform 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

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

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

    המסוף

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

    REST

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

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

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

שיפור האיכות של סרטונים באמצעות Omni 1.2 Flash

כדי לשפר את האיכות של סרטונים באמצעות Omni 1.2 Flash, בוחרים באחד ממצבי האינטראקציה הבאים:

REST

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

  • סינכרוני: בלי שמירת מצב (סרטון שהועלה): מגדירים את store לערך false כדי להגדיל את הרזולוציה של סרטון באיכות 360p או 720p מ-Cloud Storage בבקשה אחת, בלי לשמר את מצב האינטראקציה בשרת.
  • סינכרוני: עם שמירת מצב (הפנייה הקודמת): הפניה אל previous_interaction_id מהפנייה הקודמת עם שמירת המצב כדי להגדיל את הרזולוציה של סרטון שנוצר קודם ברזולוציה של 360p או 720p.
  • סינכרוני: סטרימינג עם שמירת מצב: מגדירים את store וגם את stream לערך true כדי להעביר בסטרימינג את עדכוני הסטטוס של האינטראקציה ואת סרטון הפלט.
  • אסינכרוני: מגדירים את background ל-true כדי להפעיל את שיפור הרזולוציה של הסרטון ברקע ולאחזר את התוצאה מאוחר יותר באמצעות מזהה האינטראקציה.

אינטראקציות אסינכרוניות ואינטראקציות שנשמרו נשמרות למשך עד 7 ימים.

מידע נוסף על השימוש במודלים של Gemini Omni עם Interactions API

סינכרוני: בלי שמירת מצב

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

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫MODEL_ID: מחרוזת שמייצגת את מזהה המודל שבו רוצים להשתמש. הערך הקביל הוא:
    • "gemini-omni-1.2-flash"
  • ‫CLOUD_STORAGE_VIDEO_URI: מחרוזת שמייצגת את ה-URI של Cloud Storage שמכיל את סרטון הקלט (360p או 720p, עד 15 שניות). לדוגמה: "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: מחרוזת שמייצגת סוג MIME של סרטון. אלה הערכים הקבילים:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • ‫CLOUD_STORAGE_OUTPUT_URI: אופציונלי: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שבה יישמר הסרטון המשודרג. אם לא מציינים את הפרמטר, בייטים של הסרטון מוחזרים בתגובה. לדוגמה: "gs://video-bucket/output/".
  • ‫OUTPUT_RESOLUTION: חובה. מחרוזת שמייצגת את רזולוציית הפלט הרצויה. הערכים הנתמכים תלויים ברזולוציה של סרטון הקלט:
    • לסרטוני קלט באיכות 360p:‏ "720p" או "1080p"
    • לסרטוני קלט של 720p:‏ "1080p" או "4k"

ה-method של ה-HTTP וכתובת ה-URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

גוף בקשת JSON:

{
  "model": "MODEL_ID",
  "store": false,
  "input": [
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "resolution": "OUTPUT_RESOLUTION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "upscale"
    }
  }
}

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
התשובה מכילה אינטראקציה עם סרטון הפלט המשודרג ואפס טוקנים של קלט.
{
  "id": "INTERACTION_ID",
  "model": "gemini-omni-1.2-flash",
  "status": "completed",
  "usage": {
    "total_tokens": 28960,
    "total_input_tokens": 0,
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28960
      }
    ],
    "total_output_tokens": 28960
  },
  "steps": [
    { 
      "type": "model_output",
      "content": [
        {
          "type": "video",
          "uri": "gs://some/output_path/123.mp4",
          "mime_type": "video/mp4" 
        }
      ]
    }
  ],
  "object": "interaction",
  "role": "model",
  "created": "2026-11-05T02:17:56Z",
  "updated": "2026-11-05T02:17:56Z"
}

סינכרוני: עם שמירת מצב (stateful)

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

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫MODEL_ID: מחרוזת שמייצגת את מזהה המודל שבו רוצים להשתמש. הערך הקביל הוא:
    • "gemini-omni-1.2-flash"
  • ‫PREVIOUS_INTERACTION_ID: מזהה האינטראקציה של הפנייה הקודמת עם שמירת מצב שיצרה סרטון באיכות 360p או 720p (עד 15 שניות).
  • ‫CLOUD_STORAGE_OUTPUT_URI: אופציונלי: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שבה יישמר הסרטון המשודרג. אם לא מציינים את הפרמטר, בייטים של הסרטון מוחזרים בתגובה. לדוגמה: "gs://video-bucket/output/".
  • ‫OUTPUT_RESOLUTION: חובה. מחרוזת שמייצגת את רזולוציית הפלט הרצויה. הערכים הנתמכים תלויים ברזולוציית הווידאו מהשלב הקודם:
    • לסרטונים באיכות 360p‏: "720p" או "1080p"
    • לסרטונים ברזולוציה של 720p: ‏"1080p" או "4k"

ה-method של ה-HTTP וכתובת ה-URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

גוף בקשת JSON:

{
  "model": "MODEL_ID",
  "previous_interaction_id": "PREVIOUS_INTERACTION_ID",
  "background": false,
  "store": true,
  "stream": false,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "Upsample video."
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "resolution": "OUTPUT_RESOLUTION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "upscale"
    }
  }
}

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
התשובה מכילה אינטראקציה עם סרטון הפלט המשודרג ואפס טוקנים של קלט.
{
  "id": "INTERACTION_ID",
  "previous_interaction_id": "PREVIOUS_INTERACTION_ID",
  "model": "gemini-omni-1.2-flash",
  "status": "completed",
  "usage": {
    "total_tokens": 28960,
    "total_input_tokens": 0,
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28960
      }
    ],
    "total_output_tokens": 28960
  },
  "steps": [
    { 
      "type": "model_output",
      "content": [
        {
          "type": "video",
          "uri": "gs://some/output_path/123.mp4",
          "mime_type": "video/mp4" 
        }
      ]
    }
  ],
  "object": "interaction",
  "role": "model",
  "created": "2026-11-05T02:17:56Z",
  "updated": "2026-11-05T02:17:56Z"
}
כדי לקבל את הסרטון המשודרג, משתמשים ב-INTERACTION_ID:

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

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫INTERACTION_ID: מזהה האינטראקציה מהבקשה האסינכרונית.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID

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

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID"

PowerShell

מריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID" | Select-Object -Expand Content
התגובה תהיה בפורמט דומה לזה:
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-1.2-flash",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "5 second, 9:16 video. Use the image as the first frame."
        },
        {
          "type": "image",
          "uri": "gs://some/path",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "type":"thought",
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ]
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "data":"VIDEO DATA",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction",
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z"
}

סינכרוני: סטרימינג עם שמירת מצב (stateful)

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

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫MODEL_ID: מחרוזת שמייצגת את מזהה המודל שבו רוצים להשתמש. הערך הקביל הוא:
    • "gemini-omni-1.2-flash"
  • ‫CLOUD_STORAGE_VIDEO_URI: מחרוזת שמייצגת את ה-URI של Cloud Storage שמכיל את סרטון הקלט (360p או 720p, עד 15 שניות). לדוגמה: "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: מחרוזת שמייצגת סוג MIME של סרטון. אלה הערכים הקבילים:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • ‫CLOUD_STORAGE_OUTPUT_URI: אופציונלי: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שבה יישמר הסרטון המשודרג. אם לא מציינים את הפרמטר, בייטים של הסרטון מוחזרים בתגובה. לדוגמה: "gs://video-bucket/output/".
  • ‫OUTPUT_RESOLUTION: חובה. מחרוזת שמייצגת את רזולוציית הפלט הרצויה. הערכים הנתמכים תלויים ברזולוציה של סרטון הקלט:
    • לסרטוני קלט באיכות 360p:‏ "720p" או "1080p"
    • לסרטוני קלט של 720p:‏ "1080p" או "4k"

ה-method של ה-HTTP וכתובת ה-URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

גוף בקשת JSON:

{
  "model": "MODEL_ID",
  "background": false,
  "store": true,
  "stream": true,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "video",
          "uri": "CLOUD_STORAGE_VIDEO_URI",
          "mime_type": "VIDEO_MIME"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "resolution": "OUTPUT_RESOLUTION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "upscale"
    }
  }
}

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
התגובה היא סטרימינג של אירועים שנשלחים מהשרת (SSE) ומכילים את סרטון הפלט המשודרג.
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-1.2-flash"},"event_type":"interaction.created"}

event: interaction.status_update
data: {"interaction_id":"INTERACTION_ID","status":"in_progress","event_type":"interaction.status_update"}

event: step.start
data: {"index":0,"step":{"type":"model_output"},"event_type":"step.start"}

event: step.delta
data: {"index":0,"delta":{"mime_type":"video/mp4","uri":"gs://some/output_path/123.mp4","type":"video"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.stop
data: {"index":0,"event_type":"step.stop"}

event: interaction.completed
data: {"interaction":{"id":"INTERACTION_ID","status":"completed","usage":{"total_tokens":28960,"total_input_tokens":0,"total_output_tokens":28960,"output_tokens_by_modality":[{"modality":"video","tokens":28960}]},"created":"2026-11-05T21:26:20Z","updated":"2026-11-05T21:26:20Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-1.2-flash"},"event_id":"EVENT_ID","event_type":"interaction.completed"}

event: done
data: [DONE]
כדי להעביר בסטרימינג את האינטראקציה השמורה ואת הסרטון המשודרג, משתמשים ב-INTERACTION_ID עם `?stream=true`:

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

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫INTERACTION_ID: מזהה האינטראקציה מהבקשה.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true

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

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true"

PowerShell

מריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true" | Select-Object -Expand Content
התגובה היא זרם של אירועים שנשלחים מהשרת (SSE) בפורמט שדומה לזה:
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-1.2-flash"},"event_type":"interaction.created"}

event: interaction.status_update
data: {"interaction_id":"INTERACTION_ID","status":"in_progress","event_type":"interaction.status_update"}

event: step.start
data: {"index":0,"step":{"type":"thought"},"event_type":"step.start"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"signature":"...","type":"thought_signature"},"event_type":"step.delta"}

event: step.stop
data: {"index":0,"event_type":"step.stop"}

event: step.start
data: {"index":1,"step":{"type":"model_output"},"event_type":"step.start"}

event: step.delta
data: {"index":1,"delta":{"mime_type":"video/mp4","uri":"gs://some/output_path/123.mp4","type":"video"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.stop
data: {"index":1,"event_type":"step.stop"}

event: interaction.completed
data: {"interaction":{"id":"INTERACTION_ID","status":"completed","usage":{"total_tokens":17664,"total_input_tokens":21,"input_tokens_by_modality":[{"modality":"text","tokens":21}],"total_output_tokens":17376,"output_tokens_by_modality":[{"modality":"video","tokens":17376}],"total_thought_tokens":267},"created":"2026-08-12T21:33:08Z","updated":"2026-08-12T21:33:08Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-1.2-flash"},"event_id":"EVENT_ID","event_type":"interaction.completed"}

event: done
data: [DONE]

אסינכרוני

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

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫MODEL_ID: מחרוזת שמייצגת את מזהה המודל שבו רוצים להשתמש. הערך הקביל הוא:
    • "gemini-omni-1.2-flash"
  • ‫CLOUD_STORAGE_VIDEO_URI: מחרוזת שמייצגת את ה-URI של Cloud Storage שמכיל את סרטון הקלט (360p או 720p, עד 15 שניות). לדוגמה: "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: מחרוזת שמייצגת סוג MIME של סרטון. אלה הערכים הקבילים:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • ‫CLOUD_STORAGE_OUTPUT_URI: אופציונלי: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שבה יישמר הסרטון המשודרג. אם לא מציינים את הפרמטר, בייטים של הסרטון מוחזרים בתגובה. לדוגמה: "gs://video-bucket/output/".
  • ‫OUTPUT_RESOLUTION: חובה. מחרוזת שמייצגת את רזולוציית הפלט הרצויה. הערכים הנתמכים תלויים ברזולוציה של סרטון הקלט:
    • לסרטוני קלט באיכות 360p:‏ "720p" או "1080p"
    • לסרטוני קלט של 720p:‏ "1080p" או "4k"

ה-method של ה-HTTP וכתובת ה-URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

גוף בקשת JSON:

{
  "model": "MODEL_ID",
  "background": true,
  "input": [
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "resolution": "OUTPUT_RESOLUTION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "upscale"
    }
  }
}

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
התשובה מכילה מזהה אינטראקציה, שמשמש לאחזור הסרטון המשודרג.
{
  "id": "INTERACTION_ID",
  "status": "in_progress",
  "object": "interaction"
}
אחר כך, משתמשים ב-INTERACTION_ID כדי לקבל את הסרטון המשודרג:

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

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫INTERACTION_ID: מזהה האינטראקציה מהבקשה האסינכרונית.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID

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

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID"

PowerShell

מריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID" | Select-Object -Expand Content
התגובה תהיה בפורמט דומה לזה:
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-1.2-flash",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "5 second, 9:16 video. Use the image as the first frame."
        },
        {
          "type": "image",
          "uri": "gs://some/path",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "type":"thought",
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ]
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "data":"VIDEO DATA",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction",
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z"
}

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