Risoluzione dei contenuti multimediali

Il parametro media_resolution controlla il modo in cui l'API Gemini elabora gli input multimediali come immagini, video, audio e documenti PDF determinando il numero massimo di token allocati per gli input multimediali, consentendoti di bilanciare la qualità della risposta rispetto a latenza e costi. Mentre gli input visivi e di documenti scalano l'allocazione dei token in base all'impostazione della risoluzione, gli input audio vengono tokenizzati a una velocità fissa al secondo a tutti i livelli di risoluzione. Per impostazioni, valori predefiniti e corrispondenza con i token diversi, consulta la sezione Conteggi dei token.

Puoi configurare la risoluzione dei contenuti multimediali in due modi:

Risoluzione dei contenuti multimediali per parte (solo Gemini 3)

Gemini 3 ti consente di impostare la risoluzione dei contenuti multimediali per i singoli oggetti multimediali all'interno della richiesta, offrendo un'ottimizzazione granulare dell'utilizzo dei token. Puoi combinare livelli di risoluzione in un'unica richiesta. Ad esempio, usa l'alta risoluzione per un diagramma complesso e la bassa risoluzione per un'immagine contestuale. Questa impostazione sovrascrive qualsiasi configurazione globale per una parte specifica. Per le impostazioni predefinite, consulta la sezione Conteggi token.

Python

from google import genai
from google.genai import types

# The media_resolution parameter for parts is available in the v1beta API version.
client = genai.Client(
  http_options={
      'api_version': 'v1beta',
  }
)

# Replace with your image data
with open('path/to/image1.jpg', 'rb') as f:
    image_bytes_1 = f.read()

# Create parts with different resolutions
image_part_high = types.Part.from_bytes(
    data=image_bytes_1,
    mime_type='image/jpeg',
    media_resolution=types.MediaResolution.MEDIA_RESOLUTION_HIGH
)

model_name = 'gemini-3.1-pro-preview'

response = client.models.generate_content(
    model=model_name,
    contents=["Describe these images:", image_part_high]
)
print(response.text)

JavaScript

// Example: Setting per-part media resolution in JavaScript
import { GoogleGenAI, MediaResolution, Part } from '@google/genai';
import * as fs from 'fs';
import { Buffer } from 'buffer'; // Node.js

const ai = new GoogleGenAI({ httpOptions: { apiVersion: 'v1beta' } });

// Helper function to convert local file to a Part object
function fileToGenerativePart(path, mimeType, mediaResolution) {
    return {
        inlineData: { data: Buffer.from(fs.readFileSync(path)).toString('base64'), mimeType },
        mediaResolution: { 'level': mediaResolution }
    };
}

async function run() {
    // Create parts with different resolutions
    const imagePartHigh = fileToGenerativePart('img.png', 'image/png', Part.MediaResolutionLevel.MEDIA_RESOLUTION_HIGH);
    const model_name = 'gemini-3.1-pro-preview';
    const response = await ai.models.generateContent({
        model: model_name,
        contents: ['Describe these images:', imagePartHigh]
        // Global config can still be set, but per-part settings will override
        // config: {
        //   mediaResolution: MediaResolution.MEDIA_RESOLUTION_MEDIUM
        // }
    });
    console.log(response.text);
}
run();

REST

# Replace with paths to your images
IMAGE_PATH="path/to/image.jpg"

# Base64 encode the images
BASE64_IMAGE1=$(base64 -w 0 "$IMAGE_PATH")

MODEL_ID="gemini-3.1-pro-preview"

echo '{
    "contents": [{
      "parts": [
        {"text": "Describe these images:"},
        {
          "inline_data": {
            "mime_type": "image/jpeg",
            "data": "'"$BASE64_IMAGE1"'",
          },
          "media_resolution": {"level": "MEDIA_RESOLUTION_HIGH"}
        }
      ]
    }]
  }' > request.json

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/${MODEL_ID}:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d @request.json

Risoluzione dei contenuti multimediali globali

Puoi impostare una risoluzione predefinita per tutte le parti multimediali di una richiesta utilizzando GenerationConfig. Questa funzionalità è supportata da tutti i modelli multimodali. Se una richiesta include sia impostazioni globali che per parte, l'impostazione per parte ha la precedenza per quell'elemento specifico.

Python

from google import genai
from google.genai import types

client = genai.Client()

# Prepare standard image part
with open('image.jpg', 'rb') as f:
    image_bytes = f.read()
image_part = types.Part.from_bytes(data=image_bytes, mime_type='image/jpeg')

# Set global configuration
config = types.GenerateContentConfig(
    media_resolution=types.MediaResolution.MEDIA_RESOLUTION_HIGH
)

response = client.models.generate_content(
    model='gemini-3.8-flash',
    contents=["Describe this image:", image_part],
    config=config
)
print(response.text)

JavaScript

import { GoogleGenAI, MediaResolution } from '@google/genai';
import * as fs from 'fs';

const ai = new GoogleGenAI({ });

async function run() {
   // ... (Image loading logic) ...

   const response = await ai.models.generateContent({
      model: 'gemini-3.8-flash',
      contents: ["Describe this image:", imagePart],
      config: {
         mediaResolution: MediaResolution.MEDIA_RESOLUTION_HIGH
      }
   });
   console.log(response.text);
}
run();

REST

# ... (Base64 encoding logic) ...

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.8-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [...],
    "generation_config": {
      "media_resolution": "MEDIA_RESOLUTION_HIGH"
    }
  }'

Valori di risoluzione disponibili

L'API Gemini definisce i seguenti livelli per la risoluzione dei contenuti multimediali:

  • MEDIA_RESOLUTION_UNSPECIFIED: l'impostazione predefinita. Il conteggio dei token per questo livello varia in modo significativo tra Gemini 3 e i modelli Gemini precedenti.
  • MEDIA_RESOLUTION_LOW: conteggio dei token inferiore, con conseguente elaborazione più rapida e costi inferiori, ma con meno dettagli.
  • MEDIA_RESOLUTION_MEDIUM: un equilibrio tra dettagli, costi e latenza.
  • MEDIA_RESOLUTION_HIGH: un conteggio dei token maggiore, che fornisce più dettagli con cui il modello può lavorare, a scapito di una maggiore latenza e costi più elevati.
  • MEDIA_RESOLUTION_ULTRA_HIGH (Solo per parte): numero massimo di token, richiesto per casi d'uso specifici come l'utilizzo del computer.

Tieni presente che MEDIA_RESOLUTION_HIGH offre prestazioni ottimali per la maggior parte dei casi d'uso.

Il numero esatto di token generati per ciascuno di questi livelli dipende sia dal tipo di media (immagine, video, audio, PDF) sia dalla versione del modello.

Conteggi dei token

Le tabelle riportate di seguito riepilogano i conteggi approssimativi dei token per ciascun valore media_resolution e tipo di media per famiglia di modelli.

Modelli Gemini 3

MediaResolution Image Video Audio PDF
MEDIA_RESOLUTION_UNSPECIFIED (valore predefinito) 1120 70 25 (al secondo) 560
MEDIA_RESOLUTION_LOW 280 70 25 (al secondo) 280 + testo integrato
MEDIA_RESOLUTION_MEDIUM 560 70 25 (al secondo) 560 + testo integrato
MEDIA_RESOLUTION_HIGH 1120 280 25 (al secondo) 1120 + Native Text
MEDIA_RESOLUTION_ULTRA_HIGH 2240 N/D N/D N/D

Modelli Gemini 2.5

MediaResolution Image Video Audio PDF (scansionato) PDF (nativo)
MEDIA_RESOLUTION_UNSPECIFIED (valore predefinito) 256 + Pan & Scan (~2048) 256 32 (al secondo) 256 + OCR 256 + Testo integrato
MEDIA_RESOLUTION_LOW 64 64 32 (al secondo) 64 + OCR 64 + testo integrato
MEDIA_RESOLUTION_MEDIUM 256 256 32 (al secondo) 256 + OCR 256 + Testo nativo
MEDIA_RESOLUTION_HIGH 256 + Pan & Scan 256 32 (al secondo) 256 + OCR 256 + Testo integrato

Scegliere la risoluzione giusta

  • Predefinito (UNSPECIFIED): inizia con il valore predefinito. È ottimizzato per un buon equilibrio tra qualità, latenza e costi per i casi d'uso più comuni.
  • LOW: utilizza questa opzione per gli scenari in cui costi e latenza sono fondamentali e i dettagli granulari sono meno importanti.
  • MEDIUM / HIGH: aumenta la risoluzione quando l'attività richiede la comprensione di dettagli complessi all'interno dei contenuti multimediali. Spesso è necessario per analisi visive complesse, lettura di grafici o comprensione di documenti densi.
  • ULTRA HIGH: disponibile solo per l'impostazione per parte. Consigliato per casi d'uso specifici, ad esempio l'utilizzo del computer o quando i test mostrano un miglioramento evidente rispetto a HIGH.
  • Controllo per parte (Gemini 3): ottimizza l'utilizzo dei token. Ad esempio, in un prompt con più immagini, utilizza HIGH per un diagramma complesso e LOW o MEDIUM per immagini contestuali più semplici.

Impostazioni consigliate

Di seguito sono elencate le impostazioni di risoluzione multimediale consigliate per ciascun tipo di media supportato.

Tipo di media Impostazione consigliata Token massimi Indicazioni per l'utilizzo
Immagini MEDIA_RESOLUTION_HIGH 1120 Consigliato per la maggior parte delle attività di analisi delle immagini per garantire la massima qualità.
PDF MEDIA_RESOLUTION_MEDIUM 560 Ottimale per la comprensione dei documenti; la qualità in genere satura a medium. L'aumento a high raramente migliora i risultati dell'OCR per i documenti standard.
Video (Generale) MEDIA_RESOLUTION_LOW (o MEDIA_RESOLUTION_MEDIUM) 70 (per fotogramma) Nota:per i video, le impostazioni low e medium vengono trattate in modo identico (70 token) per ottimizzare l'utilizzo del contesto. Questo è sufficiente per la maggior parte delle attività di riconoscimento e descrizione delle azioni.
Video (con molto testo) MEDIA_RESOLUTION_HIGH 280 (per fotogramma) Obbligatorio solo quando il caso d'uso prevede la lettura di testo denso (OCR) o piccoli dettagli all'interno dei fotogrammi video.
Audio MEDIA_RESOLUTION_UNSPECIFIED (valore predefinito) 25 (al secondo) per Gemini 3; 32 (al secondo) per Gemini 2.5 L'audio viene tokenizzato a una tariffa fissa al secondo in tutte le impostazioni di risoluzione supportate (unspecified, low, medium e high).

Esegui sempre test e valuta l'impatto di diverse impostazioni di risoluzione sulla tua applicazione specifica per trovare il miglior compromesso tra qualità, latenza e costo.

Relazione con le modalità di elaborazione dei video

I parametri media_resolution e di elaborazione controllano diversi aspetti dell'input video:

  • media_resolution controlla la risoluzione di ogni frame (numero di token per frame).
  • I controlli processing / media_processing determinano quali contenuti del video vengono caricati nel contesto.

Puoi impostarli entrambi sullo stesso ingresso video. Ad esempio, potresti utilizzare l'elaborazione con agenti con una risoluzione multimediale bassa per ridurre al minimo l'utilizzo totale di token per un video lungo.

Per informazioni dettagliate sulle modalità di elaborazione dei video, consulta la guida Comprensione dei video agentica.

Riepilogo della compatibilità delle versioni

  • L'enumerazione MediaResolution è disponibile per tutti i modelli che supportano l'input multimediale.
  • Il conteggio dei token associati a ogni livello di enumerazione varia tra i modelli Gemini 3 e le versioni precedenti di Gemini.
  • L'impostazione media_resolution sui singoli oggetti Part è esclusiva dei modelli Gemini 3.

Passaggi successivi