Risoluzione dei contenuti multimediali

Il parametro media_resolution controlla il modo in cui l'API Gemini elabora gli input multimediali come immagini, video e documenti PDF determinando il numero massimo di token allocati per gli input multimediali, consentendoti di bilanciare la qualità della risposta con la latenza e il costo. Per impostazioni, valori predefiniti e corrispondenze con i token diversi, consulta la sezione Conteggi 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, utilizza l'alta risoluzione per un diagramma complesso e la bassa risoluzione per un'immagine contestuale semplice. Questa impostazione sostituisce qualsiasi configurazione globale per una parte specifica. Per le impostazioni predefinite, consulta la sezione Conteggi dei token.

Python

from google import genai
from google.genai import types

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

# 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-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: 'v1alpha' } });

// 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-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-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/v1alpha/models/${MODEL_ID}:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d @request.json

Risoluzione globale dei contenuti multimediali

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 l'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-2.5-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-2.5-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-2.5-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: numero di 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 numero maggiore di token, che fornisce più dettagli con cui il modello può lavorare, a scapito di una maggiore latenza e costi più elevati.
  • (Disponibile a breve) MEDIA_RESOLUTION_ULTRA_HIGH: il numero più alto di token richiesto per casi d'uso specifici, come l'utilizzo del computer.

Il numero esatto di token generati per ciascuno di questi livelli dipende sia dal tipo di media (immagine, video, 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 PDF
MEDIA_RESOLUTION_UNSPECIFIED (valore predefinito) 1120 70 560
MEDIA_RESOLUTION_LOW 280 70 280 + Native Text
MEDIA_RESOLUTION_MEDIUM 560 70 560 + testo nativo
MEDIA_RESOLUTION_HIGH 1120 280 1120 + Native Text

Modelli Gemini 2.5

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

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.
  • Controllo per parte (Gemini 3): utilizza questa funzionalità per ottimizzare 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 Max Tokens 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 frame) 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.

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 costi.

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