Nano Banana 2 permite elegir entre minimal y high en los controles de razonamiento documentados de la API de Google. El valor predeterminado es minimal. Si una guía habla de activar o desactivar el modo Thinking, conviene traducir esa recomendación a estos parámetros antes de copiarla: Minimal no significa ausencia de razonamiento, y off no es uno de los valores documentados para este modelo. El identificador estable consultado el 8 de septiembre de 2026 es gemini-3.1-flash-image. Modelo de Google, control del razonamiento.
Para empezar, conserva Minimal y comprueba si obtienes una imagen que puedas utilizar. Prueba High cuando el resultado incumpla relaciones espaciales, instrucciones simultáneas o una composición exigente. La pregunta útil es si ese cambio reduce los intentos y la edición posterior lo suficiente para justificar su coste y tiempo de espera.
Qué puedes cambiar y qué significa cada opción
El nivel de razonamiento modifica el esfuerzo que el modelo dedica a preparar la respuesta. No sustituye a las instrucciones sobre resolución, proporción o contenido de la imagen. Tampoco garantiza que High produzca una imagen mejor en cada intento.
| Opción | Qué está documentado | Cómo utilizarla al empezar |
|---|---|---|
minimal | Es el nivel predeterminado de Nano Banana 2; puede seguir habiendo razonamiento. | Úsalo como punto de comparación para encargos sencillos y exploración de ideas. |
high | Permite aumentar el nivel de razonamiento. | Pruébalo cuando el encargo exige coordinar detalles que el resultado inicial no respeta. |
| High/Dynamic | Es una denominación presente en el anuncio del modelo. | Consulta el formato admitido por tu integración antes de trasladarla a una petición. |
Google empleó la expresión High/Dynamic en el anuncio para desarrolladores. Sin embargo, las guías específicas de la API consultadas documentan minimal y high: ese anuncio no establece dynamic como un tercer valor que puedas enviar. Tampoco conviene importar low, medium o thinkingBudget=0 de ejemplos destinados a otros modelos Gemini.
En una aplicación visual, el nombre de un botón no basta para identificar el parámetro enviado. Si ves «rápido», «Thinking» o «automático», busca la documentación de esa aplicación. La configuración que sigue corresponde a la API de Google; una interfaz o un intermediario puede exponer controles diferentes.
Localiza primero la API que utiliza tu proyecto
Hay dos formatos de petición que no deben mezclarse. Revisa el método que llama tu código o la URL a la que envía la solicitud.
| Si tu proyecto utiliza… | El nivel se configura en… | La imagen final se obtiene de… |
|---|---|---|
Interactions: /v1beta/interactions | generation_config.thinking_level | output_image.data, comprobando antes su existencia y tipo MIME. |
REST generateContent: :generateContent | generationConfig.thinkingConfig.thinkingLevel | Las partes de la respuesta; hay que distinguir los pensamientos de la imagen final. |
SDK de Python con generate_content | GenerateContentConfig(thinking_config=ThinkingConfig(...)) | Las partes que devuelve ese método. |
SDK de JavaScript con generateContent | config.thinkingConfig.thinkingLevel | Las partes que devuelve ese método. |
No basta con cambiar las mayúsculas o los guiones bajos: también cambia la estructura de la respuesta. Un ejemplo de Interactions que busca output_image no sirve sin adaptación para interpretar una respuesta de generateContent. Google mantiene ejemplos separados en su guía de Interactions y en la guía de generación con generateContent.

Una petición con Interactions que guarda la imagen
Este ejemplo usa Python y su biblioteca estándar. Lee la clave de GEMINI_API_KEY, solicita High y guarda los bytes de la imagen final con una extensión correspondiente a su tipo MIME. Cada ejecución envía una petición a la API y puede generar cargos. El ejemplo está basado en la documentación; no constituye una prueba de calidad ni de velocidad realizada para este artículo.
pythonimport base64 import json import os import time import urllib.request from pathlib import Path level = "high" # Cambia a "minimal" para la otra condición. payload = { "model": "gemini-3.1-flash-image", "input": ( "Crea una ilustración para explicar un kit de jardinería. " "Coloca una regadera a la izquierda de una maceta, " "unas tijeras a la derecha y un sobre de semillas delante. " "Fondo blanco, vista cenital, sin texto." ), "generation_config": {"thinking_level": level}, } request = urllib.request.Request( "https://generativelanguage.googleapis.com/v1beta/interactions", data=json.dumps(payload).encode("utf-8"), headers={ "Content-Type": "application/json", "x-goog-api-key": os.environ["GEMINI_API_KEY"], }, method="POST", ) started = time.perf_counter() with urllib.request.urlopen(request, timeout=300) as response: result = json.load(response) elapsed = time.perf_counter() - started image = result.get("output_image") or {} extensions = {"image/png": ".png", "image/jpeg": ".jpg", "image/webp": ".webp"} mime_type = image.get("mime_type") if mime_type not in extensions or not image.get("data"): raise RuntimeError("La respuesta no contiene una imagen final compatible.") raw = base64.b64decode(image["data"], validate=True) if not raw: raise RuntimeError("La imagen final está vacía.") output = Path(f"nano-banana-2-{level}{extensions[mime_type]}") output.write_bytes(raw) print(f"Imagen guardada: {output}; espera: {elapsed:.2f} s")
El tiempo impreso es la espera observada desde ese equipo hasta recibir la respuesta completa. No es una medida aislada del tiempo de razonamiento del modelo. Abre el archivo guardado para comprobar que es una imagen utilizable; recibir un HTTP 200 o una cadena en base64 no demuestra que el encargo esté resuelto.
Si ya trabajas con generateContent, conserva ese formato y añade el control dentro de su configuración. En REST, el fragmento relevante es:
json{ "generationConfig": { "responseModalities": ["IMAGE"], "thinkingConfig": { "thinkingLevel": "high" } } }
Al recorrer sus partes de respuesta, excluye las marcadas como thought de la entrega final. Si mantienes una conversación de edición con este formato, conserva y devuelve las firmas de pensamiento sin modificarlas, tal como indica la documentación de firmas de Google.
Cuándo compensa probar High
Un encargo como «un icono de una regadera sobre fondo blanco» ofrece pocas relaciones que comprobar. Un esquema que debe colocar cinco objetos, respetar sus posiciones, mantener una referencia visual y reservar un espacio concreto para un rótulo plantea más restricciones. En el segundo caso, tiene más sentido comprobar si High ayuda; la complejidad del encargo es una razón para probarlo, no una garantía de mejora.
Antes de comparar, convierte el encargo en criterios observables. Para el kit de jardinería del ejemplo serían: aparecen los cuatro objetos, la regadera está a la izquierda de la maceta, las tijeras a la derecha y el sobre delante. Añade los requisitos reales de entrega, como que no haya objetos recortados o que el estilo encaje con la página donde se publicará.
Después realiza una comparación controlada:
- Mantén el mismo texto, las mismas imágenes de referencia, resolución, proporción y configuración de búsqueda, si la utilizas.
- Cambia únicamente el nivel de razonamiento. Guarda por separado cada imagen y anota los ajustes efectivos.
- Registra la espera, el uso facturable y qué requisitos cumple cada resultado. Cuenta también los intentos fallidos y el trabajo de corrección.
- Repite la comparación con varios encargos habituales antes de cambiar el valor predeterminado de todo tu flujo.
Decide con los resultados completos. Si High tarda más en una petición, pero evita varias repeticiones, puede reducir el tiempo hasta la entrega. Si ambos niveles resuelven el encargo en un intento, el gasto y la espera adicionales pueden no aportar valor. Esta es una propuesta de evaluación; aquí no se han realizado llamadas ni mediciones que permitan afirmar cuál gana.

El coste de High no es un recargo fijo por imagen
En la tarifa estándar de Google consultada, los tokens de texto y razonamiento de salida cuestan 3 USD por millón. Los tokens de entrada de texto e imagen cuestan 0,50 USD por millón. La salida de imagen tiene su propia tarifa, y Google publica una equivalencia de 0,067 USD para una imagen de 1K. Esa última cifra corresponde a la salida de imagen, no al coste completo de la petición. Precios oficiales de Gemini API.
Como cálculo ilustrativo, 1.000 tokens adicionales de razonamiento a 3 USD por millón sumarían 0,003 USD. No significa que High consuma siempre 1.000 tokens más, ni que ese sea su sobrecoste habitual. Para obtenerlo necesitas el uso real de tus peticiones y la tarifa aplicable, incluidos los servicios adicionales que actives.
Conviene comparar dos cifras distintas:
- Coste de la petición: entrada, texto y razonamiento de salida, imagen y, cuando corresponda, herramientas.
- Coste por imagen aprovechable: gasto de todos los intentos de la comparación dividido entre las imágenes que cumplen tus requisitos. Si ninguna los cumple, no hay una imagen aprovechable a la que asignar ese promedio.
Anota el tiempo de edición por separado o asígnale un valor coherente si necesitas calcular el coste de producción completo. Para consultar otras resoluciones y modalidades, puedes continuar en la guía de precios de Nano Banana 2.
Dudas al configurar el razonamiento
¿Puedo desactivarlo por completo?
Las guías específicas de Nano Banana 2 documentan Minimal como el mínimo disponible y aclaran que no equivale a cero razonamiento. No hay base en esas guías para recomendar off o thinkingBudget=0 como forma de desactivarlo en este modelo.
¿Ocultar los pensamientos reduce la factura?
No. includeThoughts controla si se devuelven los pensamientos, no si se factura el razonamiento. Que no aparezca un resumen visible tampoco demuestra que el modelo no haya razonado. Consulta el uso facturable y entrega al usuario la imagen final, separada de las partes de pensamiento.
¿Por qué mi integración rechaza el nivel?
Comprueba el modelo, el método de API y la ubicación exacta del campo. Una petición de Interactions requiere generation_config.thinking_level; una petición REST de generateContent lo sitúa dentro de generationConfig.thinkingConfig. Si usas un intermediario, confirma en su documentación que admite ese parámetro para Nano Banana 2. La compatibilidad con otras funciones de Gemini no demuestra que transmita también este ajuste.
¿Tengo que activar High para todas las imágenes?
Empieza con Minimal y reserva la prueba de High para los tipos de encargo donde hay un problema concreto que resolver. Una vez medidos tus propios resultados, puedes elegir el nivel por clase de trabajo: exploración, composición final, edición con referencias o diagramas. Conserva la configuración que produzca entregas válidas con un coste y una espera aceptables.



