Genera e modifica video con Gemini Omni Flash

Gemini Omni Flash (gemini-omni-flash-preview) è un modello multimodale ad alte prestazioni progettato per la generazione, la modifica e il controllo cinematografico di video ad alta velocità. Gemini Omni si basa sulle seguenti funzionalità principali che lo distinguono dai modelli video precedenti:

  • Multimodalità nativa: elabora testo, immagini, audio e video contemporaneamente, offrendoti un output più coeso, coerente e controllabile.
  • Modifica conversazionale:attivata dall'API Interactions, ti consente di perfezionare e modificare in modo iterativo i tuoi video tramite conversazioni in linguaggio naturale. Descrivi cosa vuoi cambiare e il modello applica la modifica preservando le parti del video che vuoi conservare.
  • Conoscenza del mondo: Gemini Omni combina la comprensione della fisica con la conoscenza di storia, scienza e contesto culturale di Gemini, colmando il divario tra fotorealismo e narrazione significativa.

Generazione di video da testo

Genera un video da un prompt di testo. Il modello genera un video con audio in base alla descrizione testuale. Scrivi prompt con dettagli come la descrizione della scena, il movimento della videocamera, l'illuminazione e l'atmosfera per ottenere risultati ottimali.

Python

import base64
from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-omni-flash-preview",
    input="A marble rolling fast on a chain reaction style track, continuous smooth shot."
)
with open("marble.mp4", "wb") as f:
    f.write(base64.b64decode(interaction.output_video.data))

JavaScript

import { GoogleGenAI } from '@google/genai';
import * as fs from 'fs';
const ai = new GoogleGenAI({});

const interaction = await ai.interactions.create({  
  model: 'gemini-omni-flash-preview',  
  input: 'A marble rolling fast on a chain reaction style track, continuous smooth shot.',
});

if (interaction.output_video?.data) {
  fs.writeFileSync('marble.mp4', Buffer.from(interaction.output_video.data, 'base64'));
}

REST

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?key=$API_KEY" \
-H "Content-Type: application/json" \
-d '{
 "model": "gemini-omni-flash-preview",
 "input": "A marble rolling fast on a chain reaction style track, continuous smooth shot."
}'

Schema di risposta REST

Il campo di convenienza interaction.output_video è solo SDK. Ottieni l'output video dall'array steps quando utilizzi direttamente l'API REST.

Struttura JSON REST non elaborato:

{
  "steps": [
    { "type": "user_input", "content": [{"type": "text", "text": "..."}] },
    { "type": "thought", "content": [{"text": "...", "type": "thought"}] },
    {
      "type": "model_output",
      "content": [
        {
          "type": "video",
          "mime_type": "video/mp4",
          "data": "AAAAIGZ0eXBpc29t..." // Base64 encoded video data
        }
      ]
    }
  ],
  "id": "v1_...",
  "status": "completed",
  "model": "gemini-omni-flash-preview",
  "object": "interaction"
}

Controllare le proporzioni

Imposta aspect_ratio su "9:16" per creare video verticali. Orizzontale (16:9) è l'impostazione predefinita.

Python

import base64
from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-omni-flash-preview",
    input="A futuristic city with neon lights and flying cars, cyberpunk style",
    response_format={
        "type": "video",  # optional
        "aspect_ratio": "9:16"  # Supported values: "9:16", "16:9"
    }
)
with open("example.mp4", "wb") as f:
    f.write(base64.b64decode(interaction.output_video.data))

JavaScript

import { GoogleGenAI } from '@google/genai';
import * as fs from 'fs';
const ai = new GoogleGenAI({});

const interaction = await ai.interactions.create({
  model: 'gemini-omni-flash-preview',
  input: 'A futuristic city with neon lights and flying cars, cyberpunk style',
  response_format: {
    type: 'video', // optional
    aspect_ratio: '9:16' // Supported values: '9:16', '16:9'
  },
});

if (interaction.output_video?.data) {
  fs.writeFileSync('example.mp4', Buffer.from(interaction.output_video.data, 'base64'));
}

REST

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?key=$API_KEY" \
-H "Content-Type: application/json" \
-d '{
 "model": "gemini-omni-flash-preview",
 "input": "A futuristic city with neon lights and flying cars, cyberpunk style",
 "response_format": {
   "type": "video",
   "aspect_ratio": "9:16"
 }
}'

Generazione di video da immagini

Puoi fornire un'immagine di riferimento con il prompt testuale. A seconda del prompt, il modello deciderà come utilizzare l'immagine. Questa funzionalità è utile per dare vita a scatti di prodotti, illustrazioni o fotografie.

L'esempio seguente mostra come utilizzare l'immagine di riferimento di un disegno di un pesce che salta fuori dall'acqua:

Disegno di un pesce che salta fuori dall'acqua

Con il seguente prompt:

turn this into realistic footage, using the drawing only as a guide for movement, do not show the drawing in the final video

Per generare un video realistico del disegno.

Python

import base64
from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-omni-flash-preview",
    input=[
        {"type": "image", "data": base64_image, "mime_type": "image/jpeg"},
        {"type": "text", "text": "turn this into realistic footage, using the drawing only as a guide for movement, do not show the drawing in the final video"}
    ],
)
with open("clownfish.mp4", "wb") as f:
    f.write(base64.b64decode(interaction.output_video.data))

JavaScript

import { GoogleGenAI } from '@google/genai';
import * as fs from 'fs';
const ai = new GoogleGenAI({});

const interaction = await ai