Rozdzielczość multimediów

Parametr media_resolution określa, jak interfejs Gemini API przetwarza dane wejściowe multimediów, takie jak obrazy, filmy i dokumenty PDF, poprzez określenie maksymalnej liczby tokenów przydzielonych do danych wejściowych multimediów. Umożliwia to zrównoważenie jakości odpowiedzi z opóźnieniem i kosztem. Więcej informacji o różnych ustawieniach, wartościach domyślnych i ich odpowiednikach w tokenach znajdziesz w sekcji Liczba tokenów.

Rozdzielczość multimediów możesz skonfigurować na 2 sposoby:

  • Za część (tylko Gemini 3)

  • Globalnie w przypadku całego żądania generateContent (wszystkie modele multimodalne)

Rozdzielczość multimediów w poszczególnych częściach (tylko Gemini 3)

Gemini 3 umożliwia ustawienie rozdzielczości multimediów dla poszczególnych obiektów multimedialnych w ramach żądania, co pozwala na precyzyjną optymalizację wykorzystania tokenów. W jednym żądaniu możesz łączyć różne poziomy rozdzielczości. Na przykład używaj wysokiej rozdzielczości w przypadku złożonego diagramu, a niskiej w przypadku prostego obrazu kontekstowego. To ustawienie zastępuje globalną konfigurację konkretnej części. Domyślne ustawienia znajdziesz w sekcji Liczba tokenów.

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

Globalna rozdzielczość multimediów

Możesz ustawić domyślną rozdzielczość wszystkich komponentów multimedialnych w żądaniu za pomocą parametru GenerationConfig. Jest to obsługiwane przez wszystkie modele multimodalne. Jeśli żądanie zawiera zarówno ustawienia globalne, jak i ustawienia dotyczące poszczególnych części, w przypadku danego elementu pierwszeństwo mają ustawienia dotyczące poszczególnych części.

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"
    }
  }'

Dostępne wartości rozdzielczości

Interfejs Gemini API określa te poziomy rozdzielczości multimediów:

  • MEDIA_RESOLUTION_UNSPECIFIED: ustawienie domyślne. Liczba tokenów na tym poziomie znacznie różni się w przypadku Gemini 3 i wcześniejszych modeli Gemini.
  • MEDIA_RESOLUTION_LOW: mniejsza liczba tokenów, co skutkuje szybszym przetwarzaniem i niższymi kosztami, ale mniejszą szczegółowością.
  • MEDIA_RESOLUTION_MEDIUM: równowaga między szczegółowością, kosztem i opóźnieniem.
  • MEDIA_RESOLUTION_HIGH: większa liczba tokenów, która zapewnia więcej szczegółów, z którymi model może pracować, ale wiąże się z większym opóźnieniem i kosztem.
  • (Już wkrótce) MEDIA_RESOLUTION_ULTRA_HIGH: najwyższa liczba tokenów wymagana w przypadku konkretnych zastosowań, np. korzystania z komputera.

Dokładna liczba tokenów wygenerowanych na każdym z tych poziomów zależy zarówno od typu multimediów (obraz, film, PDF), jak i od wersji modelu.

Liczba tokenów

W tabelach poniżej znajdziesz podsumowanie przybliżonej liczby tokenów dla każdej wartości i każdego typu multimediów w poszczególnych rodzinach modeli.media_resolution

Modele Gemini 3

MediaResolution Obraz Film PDF
MEDIA_RESOLUTION_UNSPECIFIED (wartość domyślna) 1120 70 560
MEDIA_RESOLUTION_LOW 280 70 280 znaków + tekst natywny
MEDIA_RESOLUTION_MEDIUM 560 70 560 + tekst natywny
MEDIA_RESOLUTION_HIGH 1120 280 1120 + Native Text

Modele Gemini 2.5

MediaResolution Obraz Film PDF (zeskanowany) PDF (natywny)
MEDIA_RESOLUTION_UNSPECIFIED (wartość domyślna) 256 + Pan & Scan (~2048) 256 256 + OCR 256 znaków + tekst natywny
MEDIA_RESOLUTION_LOW 64 64 64 + OCR 64 + tekst natywny
MEDIA_RESOLUTION_MEDIUM 256 256 256 + OCR 256 znaków + tekst natywny
MEDIA_RESOLUTION_HIGH 256 + Pan & Scan 256 256 + OCR 256 znaków + tekst natywny

Wybór odpowiedniej rozdzielczości

  • Domyślna (UNSPECIFIED): zacznij od domyślnej. Jest on dostosowany do zapewnienia dobrej równowagi między jakością, opóźnieniem i kosztem w przypadku najczęstszych zastosowań.
  • LOW: używaj w sytuacjach, w których najważniejsze są koszt i opóźnienie, a szczegółowość ma mniejsze znaczenie.
  • MEDIUM / HIGH: zwiększ rozdzielczość, gdy zadanie wymaga zrozumienia skomplikowanych szczegółów w multimediach. Jest to często potrzebne w przypadku złożonej analizy wizualnej, odczytywania wykresów lub zrozumienia gęstych dokumentów.
  • Sterowanie poszczególnymi częściami (Gemini 3): używaj tej funkcji, aby optymalizować wykorzystanie tokenów. Na przykład w prompcie z wieloma obrazami użyj HIGH w przypadku złożonego diagramu, a LOW lub MEDIUM w przypadku prostszych obrazów kontekstowych.

Zalecane ustawienia

Poniżej znajdziesz listę zalecanych ustawień rozdzielczości multimediów dla każdego obsługiwanego typu multimediów.

Typ nośnika Zalecane ustawienie Maksymalna liczba tokenów Wytyczne dotyczące użytkowania
Obrazy MEDIA_RESOLUTION_HIGH 1120 Zalecane w przypadku większości zadań związanych z analizą obrazów, aby zapewnić maksymalną jakość.
Pliki PDF MEDIA_RESOLUTION_MEDIUM 560 Optymalne do analizy dokumentów; jakość zwykle osiąga maksymalny poziom przy wartości medium. Zwiększenie do high rzadko poprawia wyniki OCR w przypadku standardowych dokumentów.
Wideo (ogólne) MEDIA_RESOLUTION_LOW (lub MEDIA_RESOLUTION_MEDIUM) 70 (na klatkę) Uwaga: w przypadku filmów ustawienia lowmedium są traktowane identycznie (70 tokenów), aby zoptymalizować wykorzystanie kontekstu. Jest to wystarczające w przypadku większości zadań związanych z rozpoznawaniem i opisywaniem działań.
Film (z dużą ilością tekstu) MEDIA_RESOLUTION_HIGH 280 (na klatkę) Wymagane tylko wtedy, gdy przypadek użycia obejmuje odczytywanie gęstego tekstu (OCR) lub małych szczegółów w klatkach wideo.

Zawsze testuj i oceniaj wpływ różnych ustawień rozdzielczości na konkretną aplikację, aby znaleźć najlepszy kompromis między jakością, opóźnieniem i kosztem.

Podsumowanie zgodności wersji

  • Wyliczenie MediaResolution jest dostępne w przypadku wszystkich modeli obsługujących dane wejściowe multimediów.
  • Liczba tokenów powiązana z każdym poziomem wyliczenia różni się w przypadku modeli Gemini 3 i wcześniejszych wersji Gemini.
  • Ustawienie media_resolution w przypadku poszczególnych obiektów Part jest dostępne tylko w modelach Gemini 3.

Dalsze kroki