Resolución de medios

El parámetro media_resolution controla cómo la API de Gemini procesa las entradas de medios, como imágenes, videos y documentos PDF, ya que determina la cantidad máxima de tokens asignados para las entradas de medios, lo que te permite equilibrar la calidad de la respuesta con la latencia y el costo. Para conocer los diferentes parámetros de configuración, los valores predeterminados y cómo se corresponden con los tokens, consulta la sección Recuento de tokens.

Puedes configurar la resolución de medios de dos maneras:

  • Por parte (solo Gemini 3)

  • De forma global para una solicitud generateContent completa (todos los modelos multimodales)

Resolución de medios por parte (solo Gemini 3)

Gemini 3 te permite establecer la resolución de medios para objetos de medios individuales dentro de tu solicitud, lo que ofrece una optimización detallada del uso de tokens. Puedes combinar niveles de resolución en una sola solicitud. Por ejemplo, usar alta resolución para un diagrama complejo y baja resolución para una imagen contextual simple. Este parámetro de configuración anula cualquier configuración global para una parte específica. Para conocer la configuración predeterminada, consulta la sección Recuento de tokens.

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

Resolución de medios global

Puedes establecer una resolución predeterminada para todas las partes de medios en una solicitud con GenerationConfig. Esto es compatible con todos los modelos multimodales. Si una solicitud incluye parámetros de configuración globales y por parte, el parámetro de configuración por parte tiene prioridad para ese elemento específico.

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-flash-preview',
    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-flash-preview',
      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-flash-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [...],
    "generation_config": {
      "media_resolution": "MEDIA_RESOLUTION_HIGH"
    }
  }'

Valores de resolución disponibles

La API de Gemini define los siguientes niveles para la resolución de medios:

Ten en cuenta que MEDIA_RESOLUTION_HIGH proporciona el rendimiento óptimo para la mayoría de los casos de uso.

La cantidad exacta de tokens generados para cada uno de estos niveles depende del tipo de medio (imagen, video, PDF) y de la versión del modelo.

Recuento de tokens

En las siguientes tablas, se resumen los recuentos de tokens aproximados para cada valor media_resolution y tipo de medio por familia de modelos.

Modelos de Gemini 3

MediaResolution Imagen Video PDF
MEDIA_RESOLUTION_UNSPECIFIED (predeterminado) 1120 70 560
MEDIA_RESOLUTION_LOW 280 70 280 + texto nativo
MEDIA_RESOLUTION_MEDIUM 560 70 560 + texto nativo
MEDIA_RESOLUTION_HIGH 1120 280 1120 + texto nativo
MEDIA_RESOLUTION_ULTRA_HIGH 2240 N/A N/A

Modelos de Gemini 2.5

MediaResolution Imagen Video PDF (escaneado) PDF (nativo)
MEDIA_RESOLUTION_UNSPECIFIED (predeterminado) 256 + desplazamiento lateral y escaneo (~2048) 256 256 + OCR 256 + texto nativo
MEDIA_RESOLUTION_LOW 64 64 64 + OCR 64 + texto nativo
MEDIA_RESOLUTION_MEDIUM 256 256 256 + OCR 256 + texto nativo
MEDIA_RESOLUTION_HIGH 256 + desplazamiento lateral y escaneo 256 256 + OCR 256 + texto nativo

Cómo elegir la resolución correcta

  • Predeterminado (UNSPECIFIED): Comienza con el valor predeterminado. Está optimizado para un buen equilibrio entre calidad, latencia y costo para los casos de uso más comunes.
  • LOW: Úsalo en situaciones en las que el costo y la latencia son fundamentales, y los detalles precisos son menos importantes.
  • MEDIUM / HIGH: Aumenta la resolución cuando la tarea requiere comprender detalles complejos dentro de los medios. Esto suele ser necesario para el análisis visual complejo, la lectura de gráficos o la comprensión de documentos densos.
  • ULTRA HIGH : Solo está disponible para la configuración por parte. Se recomienda para casos de uso específicos, como el uso de computadoras o cuando las pruebas muestran una mejora clara en comparación con HIGH.
  • Control por parte (Gemini 3): Optimiza el uso de tokens. Por ejemplo, en una instrucción con varias imágenes, usa HIGH para un diagrama complejo y LOW o MEDIUM para imágenes contextuales más simples.

Configuración recomendada

A continuación, se enumeran los parámetros de configuración de resolución de medios recomendados para cada tipo de medio compatible.

Tipo de medio Configuración recomendada Tokens máximos Guía de uso
Imágenes MEDIA_RESOLUTION_HIGH 1120 Se recomienda para la mayoría de las tareas de análisis de imágenes para garantizar la máxima calidad.
PDFs MEDIA_RESOLUTION_MEDIUM 560 Es óptimo para la comprensión de documentos; la calidad suele saturarse en medium. Aumentar a high rara vez mejora los resultados de OCR para documentos estándar.
Video (general) MEDIA_RESOLUTION_LOW (o MEDIA_RESOLUTION_MEDIUM) 70 (por fotograma) Nota: En el caso de los videos, los parámetros de configuración low y medium se tratan de forma idéntica (70 tokens) para optimizar el uso del contexto. Esto es suficiente para la mayoría de las tareas de reconocimiento y descripción de acciones.
Video (con mucho texto) MEDIA_RESOLUTION_HIGH 280 (por fotograma) Solo se requiere cuando el caso de uso implica leer texto denso (OCR) o detalles pequeños dentro de los fotogramas de video.

Siempre prueba y evalúa el impacto de diferentes parámetros de configuración de resolución en tu aplicación específica para encontrar el mejor equilibrio entre calidad, latencia y costo.

Resumen de compatibilidad de versiones

  • La enumeración MediaResolution está disponible para todos los modelos que admiten entrada de medios.
  • Los recuentos de tokens asociados con cada nivel de enumeración difieren entre los modelos de Gemini 3 y las versiones anteriores de Gemini.
  • Establecer media_resolution en objetos Part individuales es exclusivo de los modelos de Gemini 3.

Próximos pasos