Saltar al contenido principal

Nano Banana API: clave, documentación y tutorial con código

Nano Banana se usa con la Gemini API: crea la clave en AI Studio y llama a gemini-nano-banana-2.1. Nano Banana 2 está obsoleto, aunque sin fecha de cierre.

LaoZhang AI TeamPublicadoActualizado 21 min de lectura
En esta página
Portada de la API de Nano Banana con tres pasos: clave en AI Studio con facturación, SDK 2.3.0 o superior y primera imagen con gemini-3.1-flash-image

La API oficial de Nano Banana no es un producto aparte: son los modelos de generación de imágenes de la Gemini API de Google. Para usarla creas una clave en Google AI Studio, instalas el SDK google-genai (Python) o @google/genai (JavaScript) y envías la petición a gemini-nano-banana-2.1, el modelo que la documentación de Google recomienda para todo proyecto nuevo. La salida de imágenes por API se paga desde la primera: no tiene nivel gratuito.

Qué cambió el 8 de octubre de 2026. Nano Banana 2.1 (gemini-nano-banana-2.1) es estable desde el 6 de octubre y sustituye a Nano Banana 2 (gemini-3.1-flash-image) como modelo por defecto en todo el código de esta página. Google ha declarado Nano Banana 2 obsoleto en la Gemini API, sin fecha de cierre anunciada, y los destinos de migración de los IDs retirados apuntan ya a 2.1. Si partes de código de 2025 o de principios de 2026, revisa primero la tabla de migración: los IDs terminados en -preview dejaron de responder el 25 de junio de 2026.

Los fragmentos de código siguen los ejemplos de la guía de generación de imágenes de la Gemini API a 8 de octubre de 2026 y no se han ejecutado contra la API de Google. La única ejecución real disponible son ocho llamadas a gemini-nano-banana-2.1 hechas ese mismo día a través de la API de LaoZhang, en formato generateContent; sus resultados aparecen solo donde cambian una decisión (tamaño 512, píxeles reales, tokens de razonamiento, coste).

Qué es exactamente la API de Nano Banana

Google define Nano Banana como el nombre de las capacidades nativas de generación de imágenes de Gemini. En la página de generación de imágenes eso se concreta en cinco modelos:

Nombre comercialModel IDCómo lo describe GoogleEstado en la Gemini API
Nano Banana 2.1gemini-nano-banana-2.1Actualización de Nano Banana 2 y principal modelo de alta eficiencia para generar y editar en conversación: mejor calidad visual, texto más legible y más coherencia entre turnosEstable desde el 6 de octubre de 2026; el recomendado para proyectos nuevos
Nano Banana 2 Litegemini-3.1-flash-lite-imageEl más rápido y barato; no está optimizado para varias imágenes de referencia ni para edición por turnosEstable
Nano Banana Progemini-3-pro-imagePara las tareas visuales más complejas: localización avanzada, coherencia de marca, control creativo finoEstable
Nano Banana 2gemini-3.1-flash-imageLa generación anterior; Google recomienda 2.1 para todo proyecto nuevoObsoleto, sin fecha de cierre anunciada
Nano Bananagemini-2.5-flash-imageLa primera generación, ya heredadaObsoleto; las páginas de Google dan dos fechas de cierre distintas (ver migración)

Todas las imágenes que generan llevan la marca de agua invisible SynthID.

Hay varias webs con "Nano Banana API" en el nombre que publican su propia documentación REST, con tokens, precios y formato de petición propios. No son la API de Google, y lo que cuenten sobre límites o funciones solo vale para su servicio. Si una guía te pide registrarte fuera de Google para conseguir "la clave de Nano Banana", estás ante uno de esos intermediarios.

Dentro de la Gemini API hay dos formas de llamar a estos modelos:

  • Interactions API: el endpoint /v1beta/interactions. Google lo recomienda para todo desarrollo nuevo, guarda el historial en el servidor para los cambios por turnos y devuelve la respuesta como una lista de pasos (steps). La página de generación de imágenes solo muestra código de Interactions.
  • generateContent: el endpoint clásico /v1beta/models/{modelo}:generateContent. Según la guía de migración a Interactions, sigue plenamente soportado; es lo que verás en casi todo el código anterior a 2026.

Las novedades de 2.1 frente a Nano Banana 2, con precio y pruebas de llamada, están en Nano Banana 2.1: novedades, precio y prueba real por API.

Qué modelo elegir y qué apartado de la documentación abrir

La regla corta: empieza con gemini-nano-banana-2.1. Baja a Lite cuando 1K te basta, no usas imágenes de referencia ni cambios por turnos y quieres la respuesta más rápida y barata: a 1K la salida cuesta lo mismo en los dos (0,0336 $), pero Lite cobra menos por la entrada y por el razonamiento. Sube a Pro cuando el texto dentro de la imagen tiene que salir exactamente como lo escribiste, cuando produces piezas profesionales con marca o cuando quieres una respuesta que mezcle texto e ilustraciones.

Lo del texto exacto tiene una prueba detrás: con los mismos 9 prompts a 1K y una tirada por prompt, Pro respetó el texto pedido y 2.1 cambió la redacción en 3 de las tareas de texto. Los detalles están en Nano Banana 2.1 vs Pro vs GPT Image 2.5: mismo prompt, 9 pruebas, y la elección completa por tarea en Nano Banana 2 Lite vs 2 vs 2.1 vs Pro: elige por tarea.

La página de generación de imágenes es larga. Esta tabla te lleva del trabajo que quieres hacer al apartado que lo explica (entre paréntesis, el título en inglés de la página original):

Lo que quieres hacerApartado de la documentaciónModelo
Primera imagen a partir de textoGeneración de imágenes (Image generation, text-to-image)Nano Banana 2.1; Lite si 1K basta y el volumen manda
Retocar una foto tuyaEdición de imágenes (Image editing)Nano Banana 2.1
Pedir cambios sobre la imagen anteriorEdición de varios turnos (Multi-turn image editing)Nano Banana 2.1 o Pro; Lite no está pensado para esto
Juntar varias personas u objetos en una escenaHasta 14 imágenes de referencia (Use up to 14 reference images)Nano Banana 2.1; Pro si además necesitas referencias de estilo
Infografías con datos actualesFundamentación con la Búsqueda de Google (Grounding with Google Search)Nano Banana 2.1 o Pro; Lite no lo admite
Elegir tamaño y relación de aspectoImágenes de hasta 4K y Configuraciones opcionalesNano Banana 2.1 o Pro para 2K y 4K; Lite solo 1K
Portada o miniatura a partir de un vídeoVídeo a imagen (Video-to-image generation)Nano Banana 2.1 o Lite
Guía o cuento con texto e ilustraciones en la misma respuestaTexto e imágenes intercalados (Interleaved text and images)Pro
Miles de imágenes que pueden esperarGenerar imágenes por lotes (Generate images in batch)Cualquiera; entrega en hasta 24 horas

Las diferencias que de verdad cambian la elección, según esa misma página y la de precios de la API de Gemini a 8 de octubre de 2026:

Nano Banana 2.1Nano Banana 2 LiteNano Banana ProNano Banana 2 (obsoleto)
Resoluciones1K, 2K y 4K (sin 512 px)Solo 1K1K, 2K y 4K512 px, 1K, 2K y 4K
Imágenes de referenciaHasta 14: 10 de objetos y 4 de personajesHasta 14 de objetos; sin plazas de personaje ni de estiloHasta 6 de objetos, 5 de personajes y 3 de estilo (14 en total)Hasta 10 de objetos y 4 de personajes
Búsqueda de GoogleWeb e imágenes (Image Search)NoWebWeb e imágenes
Vídeo como entradaSíSíNoSí
Nivel de razonamiento (thinking_level)minimal, medium (por defecto) o highminimal (por defecto) o highSiempre razona; sin thinking_level documentadominimal (por defecto) o high
Precio estándar por imagen0,0336 $ (1K) · 0,0504 $ (2K) · 0,113 $ (4K)0,0336 $ (1K)0,134 $ (1K–2K) · 0,24 $ (4K)0,045 $ (512 px) a 0,151 $ (4K)

El gráfico siguiente resume la comparativa a 29 de septiembre de 2026, antes de que saliera 2.1. Lo que dice de Lite y de Pro sigue vigente; el «Empieza aquí» que marca Nano Banana 2 corresponde hoy a Nano Banana 2.1.

Comparativa de Nano Banana 2 Lite, Nano Banana 2 y Nano Banana Pro en resolución, imágenes de referencia, búsqueda de Google, vídeo de entrada y precio por imagen

Si tu caso es Pro con plantillas JSON o YAML, texto denso o PDF, sigue en la API de Nano Banana Pro: petición JSON, YAML y guardado de imágenes.

Paso 1: crear la clave API en Google AI Studio

Abre la sección API Keys de Google AI Studio. Si eres nuevo, AI Studio crea un proyecto de Google Cloud y una clave por defecto en cuanto aceptas los términos del servicio. Si ya tienes cuenta de Google Cloud, no crea nada: primero importas tus proyectos con Import projects y después generas la clave dentro del que quieras usar.

Tres cosas de la documentación de claves de la Gemini API que explican la mayoría de sustos:

  • Las claves nuevas son claves de autorización. Desde el 28 de mayo de 2026, toda clave creada en AI Studio es una auth key: va ligada a una cuenta de servicio y, por defecto, solo sirve para la Gemini API. La API rechaza las claves estándar sin restricciones; las estándar con restricciones explícitas siguen funcionando. Si tienes una clave antigua marcada como Unrestricted, restríngela a la Gemini API desde AI Studio (Add restrictions → Restrict to Gemini API only) o crea una nueva.
  • Las claves inactivas se bloquean. Desde el 7 de mayo de 2026, las claves sin restricciones que llevan mucho tiempo sin uso aparecen con la etiqueta Blocked y ya no sirven.
  • Todo cuelga del proyecto, no de la clave. La facturación y los límites de uso de la Gemini API se aplican por proyecto: dos claves del mismo proyecto comparten cuota, y crear otra clave no te da más.

Para generar imágenes el proyecto necesita facturación activa, porque la salida de imagen de todos los modelos Nano Banana figura como "no disponible" en el nivel gratuito. La interfaz de AI Studio no cuesta nada mientras no vincules una clave de pago, pero generar imágenes con Nano Banana es una de las funciones de pago. Lo que sí puedes hacer gratis con Nano Banana en España, fuera de la API, está en ¿Se puede usar Nano Banana gratis? Qué ofrece Google en España.

Guarda la clave en una variable de entorno y nunca en el código. Los SDK leen GEMINI_API_KEY o GOOGLE_API_KEY; si existen las dos, gana GOOGLE_API_KEY.

bash
export GEMINI_API_KEY="tu_clave_de_ai_studio"

Paso 2: instalar el SDK

La Interactions API necesita la versión 2.3.0 o posterior de cualquiera de los dos SDK:

bash
# Python
pip install -U "google-genai>=2.3.0"

# JavaScript / TypeScript
npm install @google/genai@latest

Con pip show google-genai o npm ls @google/genai compruebas qué versión tienes. Si el proyecto importa el paquete antiguo google.generativeai, ese código no tiene interactions: cámbialo por from google import genai.

Paso 3: tu primera imagen con gemini-nano-banana-2.1

Las tres versiones hacen lo mismo: piden una imagen a gemini-nano-banana-2.1 y la guardan en un archivo. Google cita el español (es-MX) entre los idiomas con mejor rendimiento, así que puedes escribir el prompt en español.

Python

python
import base64
from google import genai

client = genai.Client()  # lee GEMINI_API_KEY del entorno

interaction = client.interactions.create(
    model="gemini-nano-banana-2.1",
    input="Un plato de nano plátanos en un restaurante elegante decorado con constelaciones",
)

with open("imagen.png", "wb") as f:
    f.write(base64.b64decode(interaction.output_image.data))

JavaScript (guárdalo como .mjs o usa "type": "module" en package.json para poder usar await en el nivel superior)

javascript
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";

const ai = new GoogleGenAI({}); // lee GEMINI_API_KEY del entorno

const interaction = await ai.interactions.create({
  model: "gemini-nano-banana-2.1",
  input: "Un plato de nano plátanos en un restaurante elegante decorado con constelaciones",
});

const image = interaction.output_image;
if (image) {
  fs.writeFileSync("imagen.png", Buffer.from(image.data, "base64"));
}

REST con curl (el segundo comando necesita jq para extraer la imagen del JSON)

bash
curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-nano-banana-2.1",
    "input": "Un plato de nano plátanos en un restaurante elegante decorado con constelaciones"
  }' > respuesta.json

jq -r '.steps[] | select(.type=="model_output") | .content[] | select(.type=="image") | .data' respuesta.json \
  | tail -n 1 | base64 --decode > imagen.png

Qué vuelve y cómo leerlo:

  • Por defecto el modelo responde con texto e imagen. output_image te da el último bloque de imagen y output_text el texto; si solo quieres la imagen, pide un formato de imagen en response_format (lo ves en el apartado de tamaño).
  • El archivo puede ser JPEG aunque lo guardes como .png: en las ocho llamadas de prueba a 2.1 del 8 de octubre de 2026 la imagen llegó siempre en JPEG sin haber pedido formato. Si tu aplicación necesita uno concreto, fíjalo con mime_type en response_format.
  • En REST, la respuesta de POST trae solo los pasos generados por el modelo, dentro de steps. El campo id identifica la interacción y lo necesitarás para pedir cambios.
  • Si la llamada responde 200 pero no aparece ninguna imagen, el diagnóstico está en Nano Banana no genera imagen en la API: diagnóstico y arreglo.

Editar, iterar y combinar imágenes

Editar una imagen tuya

Para editar, input pasa de ser un texto a una lista de bloques: uno de texto con la instrucción y uno o varios de imagen en base64 con su tipo MIME.

python
import base64
from google import genai

client = genai.Client()

with open("mi_gato.png", "rb") as f:
    foto = base64.b64encode(f.read()).decode("utf-8")

interaction = client.interactions.create(
    model="gemini-nano-banana-2.1",
    input=[
        {"type": "text", "text": "Pon a mi gato comiendo en un restaurante elegante bajo la constelación de Géminis"},
        {"type": "image", "data": foto, "mime_type": "image/png"},
    ],
)

with open("gato_editado.png", "wb") as f:
    f.write(base64.b64decode(interaction.output_image.data))

Asegúrate de tener derechos sobre las imágenes que subes. Para archivos grandes, la documentación de comprensión de imágenes explica cómo subirlos con la Files API en lugar de incrustarlos.

Pedir cambios sobre la imagen anterior

Con Interactions no reenvías la imagen ni el historial: pasas previous_interaction_id con el id de la respuesta anterior y el servidor recupera el contexto. La coherencia de personajes entre turnos es una de las mejoras que Google atribuye a 2.1 frente a Nano Banana 2.

python
segunda = client.interactions.create(
    model="gemini-nano-banana-2.1",
    input="Traduce los textos de esta infografía al español. No cambies nada más.",
    previous_interaction_id=interaction.id,
    response_format={"type": "image", "aspect_ratio": "16:9", "image_size": "2K"},
)

En REST, tomas el id del JSON anterior:

bash
PREVIOUS_INTERACTION_ID=$(jq -r '.id' respuesta.json)

curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-nano-banana-2.1",
    "input": "Traduce los textos de esta infografía al español. No cambies nada más.",
    "previous_interaction_id": "'"$PREVIOUS_INTERACTION_ID"'",
    "response_format": {"type": "image", "aspect_ratio": "16:9", "image_size": "2K"}
  }' > respuesta2.json

Esto funciona porque Interactions guarda cada interacción por defecto (store=true): 55 días en el nivel de pago y 1 día en el gratuito, según la descripción general de la Interactions API. Si envías store=false por privacidad, ya no puedes encadenar con previous_interaction_id y tendrás que reenviar la imagen tú. Recuerda también que Lite no está optimizado para esta edición secuencial.

Combinar varias imágenes de referencia

Para una foto de grupo o un producto dentro de una escena, añade un bloque de imagen por cada referencia. 2.1 admite hasta 14: como máximo 10 de objetos y 4 de personajes; los topes de los demás modelos están en la tabla de capacidades de arriba.

python
import base64
from pathlib import Path
from google import genai

client = genai.Client()

entrada = [{"type": "text", "text": "Foto de grupo en la oficina con estas personas poniendo caras divertidas"}]
for ruta in ["ana.png", "luis.png", "marta.png"]:
    entrada.append({
        "type": "image",
        "data": base64.b64encode(Path(ruta).read_bytes()).decode("utf-8"),
        "mime_type": "image/png",
    })

interaction = client.interactions.create(
    model="gemini-nano-banana-2.1",
    input=entrada,
    response_format={"type": "image", "aspect_ratio": "5:4", "image_size": "2K"},
)

Path("grupo.png").write_bytes(base64.b64decode(interaction.output_image.data))

Para redactar mejor esas instrucciones, tienes ejemplos por tipo de tarea en Cómo escribir prompts para Nano Banana: guía práctica y 50 plantillas verificables.

Tamaño, relación de aspecto y formato de salida

Todo se controla con response_format:

python
response_format={
    "type": "image",           # solo imagen, sin texto
    "mime_type": "image/jpeg", # opcional
    "aspect_ratio": "16:9",
    "image_size": "2K",
}
  • La K va en mayúscula. 1K, 2K y 4K funcionan; 1k se rechaza.
  • Sin image_size recibes 1K. Nano Banana 2.1 y Pro llegan a 2K y 4K; Lite solo genera 1K.
  • No envíes 512 a 2.1. Google indica que 2.1 no admite 512 px; ese tamaño solo existe en Nano Banana 2, ya obsoleto. A través de la API de LaoZhang, la misma petición con 512 devolvió un error 400 el 7 de octubre de 2026 y, al día siguiente, una imagen de 1024×1024 cobrada como cualquier otra. Si necesitas imágenes pequeñas, genera a 1K y reduce tú. Para el valor exacto de 512 en Nano Banana 2 consulta la referencia de generateContent: la guía de Google lo escribe con una errata.
  • Relación de aspecto: 2.1 admite 14: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 y las panorámicas 1:4, 4:1, 1:8 y 8:1, cuyos defectos de mosaico a 2K y 4K corrige 2.1 según Google. Lite admite las diez primeras. Sin indicarla, la salida toma el tamaño de la imagen de entrada o sale en 1:1.
  • Píxeles reales: en las llamadas de prueba a 2.1, 16:9 dio 2752×1536 a 2K y 5504×3072 a 4K (8,6 MB en JPEG), los mismos valores que la tabla "Aspect ratios and image size" de Google.
  • Texto e imagen a la vez: pasa una lista, response_format=[{"type": "text"}, {"type": "image"}].

Búsqueda de Google, razonamiento, vídeo y lotes

Fundamentación con la Búsqueda de Google (grounding). Con tools=[{"type": "google_search"}] el modelo consulta la web antes de dibujar: útil para una previsión del tiempo o un resultado deportivo convertidos en gráfico. Nano Banana 2.1 (y el anterior Nano Banana 2) añaden la búsqueda de imágenes con "search_types": ["web_search", "image_search"]; si la usas, tienes que mostrar en tu interfaz las search_suggestions que llegan en el paso google_search_result. Esa búsqueda de imágenes no utiliza fotos reales de personas. Lite no admite grounding. En precio, los modelos Gemini 3.x comparten 5.000 búsquedas gratis al mes; después cuestan 14 $ por cada 1.000.

Razonamiento (thinking). Los modelos de imagen Gemini 3 razonan siempre antes de dibujar y la API no permite desactivarlo. Pueden generar hasta dos imágenes intermedias de prueba, que no se cobran, aunque los tokens de razonamiento sí. En 2.1 eliges entre minimal, medium (el valor por defecto) y high; en Lite y en Nano Banana 2 solo hay minimal (por defecto) y high. Se pasa así:

python
interaction = client.interactions.create(
    model="gemini-nano-banana-2.1",
    input="Una ciudad futurista dentro de una botella de cristal gigante flotando en el espacio",
    generation_config={"thinking_level": "high"},
)

minimal no significa cero razonamiento: en las ocho llamadas de prueba a 2.1, todas informaron de entre 510 y 1.107 tokens de razonamiento, también las que iban con minimal. En una pareja a 2K, high tardó 34,8 s frente a los 24,7 s de minimal. Para calcular cuánto suma: 1.000 tokens de razonamiento × 7,50 $ por millón = 0,0075 $ por imagen. Sube a high cuando un prompt complejo sale mal compuesto, no por defecto.

Texto e imágenes intercalados. Pro puede devolver una guía o un cuento con texto e ilustraciones en la misma respuesta. Ahí output_image solo te da la última imagen, así que recorres los pasos:

python
for step in interaction.steps:
    if step.type == "model_output":
        for n, bloque in enumerate(step.content):
            if bloque.type == "text":
                print(bloque.text)
            elif bloque.type == "image":
                with open(f"ilustracion_{n}.png", "wb") as f:
                    f.write(base64.b64decode(bloque.data))

Vídeo como entrada. Nano Banana 2.1, Nano Banana 2 y Lite aceptan un vídeo (URL de YouTube o archivo subido con la Files API) para crear, por ejemplo, un póster o una miniatura; Pro no. Ningún modelo acepta audio.

Lotes (Batch API). Todas estas funciones se pueden lanzar como trabajo por lotes: más margen de cuota a cambio de esperar hasta 24 horas, y la salida cuesta la mitad (0,0168 $ por imagen 1K de 2.1 frente a 0,0336 $).

Código antiguo: qué se ha roto y cómo migrarlo

Si un tutorial que seguiste ya no funciona, casi siempre es por uno de estos cambios, publicados en la página de retiradas de modelos de la Gemini API y en la de claves. Los destinos son los que figuran en la tabla de retiradas a 8 de octubre de 2026:

FechaQué cambióQué hacer
14 de noviembre de 2025Se apagó gemini-2.0-flash-preview-image-generationCambiar a gemini-nano-banana-2.1
15 de enero de 2026Se apagó gemini-2.5-flash-image-previewCambiar a gemini-nano-banana-2.1
7 de mayo de 2026Bloqueo de claves sin restricciones inactivasCrear una clave nueva o usar una restringida
28 de mayo de 2026Las claves nuevas pasan a ser auth keys; se rechazan las estándar sin restriccionesRestringir la clave a la Gemini API o crear otra
8 de junio de 2026Interactions elimina el esquema antiguo: outputs pasa a steps y response_mime_type desaparece a favor de response_formatSustituir interaction.outputs[-1] por output_image / output_text o por el recorrido de steps
25 de junio de 2026Se apagaron gemini-3.1-flash-image-preview y gemini-3-pro-image-previewgemini-3.1-flash-image-preview → gemini-nano-banana-2.1; gemini-3-pro-image-preview → gemini-3-pro-image
17 de agosto de 2026Se apagaron los modelos Imagen 4 (imagen-4.0-generate-001, -ultra- y -fast-)Cambiar a gemini-nano-banana-2.1
6 de octubre de 2026gemini-3.1-flash-image (Nano Banana 2) pasa a obsoleto, sin fecha de cierre anunciadaCambiar a gemini-nano-banana-2.1 cuando puedas (detalles abajo)
2 de octubre de 2026 o 15 de marzo de 2027Cierre de gemini-2.5-flash-image: las dos páginas de Google no coincidenMigrar ya a Lite o a 2.1 (detalles abajo)

Los IDs -preview dan error en cualquier sitio donde sigan escritos, también en nodos de ComfyUI o plantillas copiadas de un tutorial. Ojo con el atajo de quitar el sufijo: gemini-3.1-flash-image-preview sin -preview te deja en Nano Banana 2, que ya está obsoleto; el destino que da Google es 2.1.

El gráfico resume el calendario a 29 de septiembre de 2026. Desde entonces, los destinos de las filas de gemini-2.0-flash-preview-image-generation y gemini-2.5-flash-image-preview han pasado a gemini-nano-banana-2.1, se ha añadido la retirada de Nano Banana 2 y la fecha del 2 de octubre ha dejado de ser la única.

Cronología de cambios en la Gemini API entre noviembre de 2025 y octubre de 2026, con los IDs de modelo apagados, los cambios de claves y la acción para migrar en cada caso

Pasar de Nano Banana 2 a Nano Banana 2.1

No hay plazo: Google ha declarado gemini-3.1-flash-image obsoleto sin fecha de cierre, y una fecha del 29 de octubre de 2026 que llegó a aparecer el día del lanzamiento ya no figura. Aun así, todo proyecto nuevo debería nacer en 2.1, y en uno existente el cambio de ID suele bastar. Antes de cambiarlo, revisa tres cosas:

  • 512 px. 2.1 no lo tiene. Si generabas miniaturas a 512, pasa a 1K (0,0336 $ en 2.1, menos que los 0,045 $ de 512 en Nano Banana 2) y reduce el tamaño tú.
  • Razonamiento por defecto. En Nano Banana 2 era minimal; en 2.1 es medium. Si te importa la latencia, fija thinking_level en vez de heredar el valor por defecto.
  • Parámetros de muestreo en Vertex AI. Allí Google documenta que 2.1 devuelve un error de API si la petición lleva seed, temperature, topP, topK o logprobs. Si tu código de Nano Banana 2 fija alguno y corre en Vertex, quítalo; el resto de diferencias de esa plataforma están en Nano Banana en Vertex AI: modelos vigentes, costes y errores.

En precio, 2.1 sale más barato que Nano Banana 2 a 1K, 2K y 4K (0,0336 $, 0,0504 $ y 0,113 $ frente a 0,067 $, 0,101 $ y 0,151 $), aunque su entrada y su razonamiento cuestan más por token. El cálculo con casos concretos está en Nano Banana 2 API: precio por imagen y cuánto ahorras con 2.1.

Si todavía usas gemini-2.5-flash-image

Google se contradice: la tabla de retiradas de la Gemini API fija el cierre el 15 de marzo de 2027, con Lite como sustituto, mientras que la página de precios sigue avisando de que se apagará el 2 de octubre de 2026 y propone Nano Banana 2 o Lite. No des por hecho que seguirá respondiendo; migra ya y decide por el uso. Si lo tenías para imágenes rápidas y baratas a 1K sin referencias, Lite cuesta 0,0336 $ por imagen frente a los 0,039 $ de 2.5. Si editabas, combinabas fotos (2.5 rendía mejor con hasta 3 de entrada) o necesitas más de 1K, ve a 2.1, que a 1K cuesta lo mismo que Lite.

Si mantienes código con generateContent

No tienes por qué reescribirlo: generateContent sigue soportado y basta con cambiar el ID del modelo. Así queda la misma petición con los campos actuales de la referencia de generateContent:

python
from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="gemini-nano-banana-2.1",
    contents="Un plato de nano plátanos en un restaurante elegante decorado con constelaciones",
    config=types.GenerateContentConfig(
        response_modalities=["TEXT", "IMAGE"],
        image_config=types.ImageConfig(aspect_ratio="16:9", image_size="2K"),
    ),
)

for part in response.candidates[0].content.parts:
    if part.inline_data:
        with open("imagen.png", "wb") as f:
            f.write(part.inline_data.data)  # en el SDK de Python ya son bytes
bash
curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-nano-banana-2.1:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "Un plato de nano plátanos en un restaurante elegante"}]}],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"],
      "imageConfig": {"aspectRatio": "16:9", "imageSize": "2K"}
    }
  }'

En REST la imagen llega en base64 dentro de candidates[].content.parts[].inlineData. Este formato, con imageSize y aspectRatio en imageConfig, es el que usaron las llamadas de prueba a 2.1 del 8 de octubre, aunque contra el endpoint de LaoZhang y no contra el de Google. Las equivalencias con Interactions, por si decides migrar:

generateContentInteractions
client.models.generate_content(...)client.interactions.create(...)
contentsinput
responseModalities + imageConfig (aspectRatio, imageSize)response_format (type, aspect_ratio, image_size)
candidates[].content.parts[].inlineDataoutput_image o steps[].content[]
Reenvías tú el historial en contentsprevious_interaction_id y el servidor guarda el contexto

Migrar compensa sobre todo si haces edición por turnos o quieres el historial en el servidor. Si tu código corre en Google Cloud, la diferencia entre ambas plataformas está en Gemini API o Vertex AI: cómo elegir, comparar costes y migrar.

Precio y límites que afectan a tu primera integración

Precios por imagen de salida en el nivel de pago de la Gemini API, en dólares tal como los publica Google (8 de octubre de 2026):

ModeloEstándarBatchEntrada / razonamiento por millón de tokens
Nano Banana 2.10,0336 $ (1K) · 0,0504 $ (2K) · 0,113 $ (4K)0,0168 $ · 0,0252 $ · 0,0567 $1,50 $ / 7,50 $
Nano Banana 2 Lite0,0336 $ (1K)0,0168 $0,25 $ / 1,50 $
Nano Banana Pro0,134 $ (1K–2K) · 0,24 $ (4K)0,067 $ · 0,12 $2,00 $ / 12,00 $
Nano Banana 2 (obsoleto)0,045 $ (512 px) · 0,067 $ (1K) · 0,101 $ (2K) · 0,151 $ (4K)0,022 $ · 0,034 $ · 0,050 $ · 0,076 $0,50 $ / 3,00 $
Nano Banana (2.5, obsoleto)0,039 $——

Si en los primeros días viste 0,0756 $ para 2.1 a 4K, Google lo ha cambiado: a 8 de octubre la página de precios marca 0,113 $ (3.780 tokens de imagen).

Sobre los límites, lo que más confunde al empezar:

  • Se aplican por proyecto y dependen del nivel de uso, que Google calcula con el gasto acumulado de la cuenta de facturación vinculada: Tier 1 al vincular una cuenta de facturación activa, Tier 2 tras 100 $ pagados y 3 días desde el primer pago, Tier 3 tras 1.000 $ y 30 días. Para los modelos de imagen cuenta también un límite de imágenes por minuto (IPM).
  • Hay un tope de gasto por cada 10 minutos según el nivel (10 $ en Tier 1, 50 $ en Tier 2, 200 $ en Tier 3). Superarlo devuelve 429 RESOURCE_EXHAUSTED.
  • Las cifras de solicitudes por minuto e imágenes por minuto de tu proyecto solo aparecen en AI Studio. La página de límites, actualizada por última vez el 2 de septiembre de 2026, todavía no tiene fila de cuota de Batch para 2.1.

El cálculo de coste por caso está en Precio de Nano Banana API: Lite, Nano Banana 2, Pro, gratis y rutas; las cuotas en Límites de Nano Banana 2: cuota en Gemini, AI Mode y la API; qué límite saltó cuando recibes un 429 en Error 429 de Gemini en imágenes: qué límite saltó y qué hacer; y los errores 503 o de petición denegada en Nano Banana API no funciona: arregla 429, 503, sin imagen y request denied.

Pagar por llamada en lugar de por token: laozhang.ai

Si prefieres no gestionar facturación ni niveles de Google, laozhang.ai da acceso a los mismos IDs con su propia clave y una tarifa fija por llamada: según su página de Nano Banana 2.1 en la documentación de LaoZhang API, 0,045 $ por llamada a gemini-nano-banana-2.1 con cualquier tamaño y nivel de razonamiento (0,055 $ en Nano Banana 2, 0,025 $ en Lite y 0,09 $ en Pro). En las ocho llamadas de prueba del 8 de octubre cada una se cobró exactamente 0,045 $.

Aviso: laozhang.ai es un servicio propio. Sus precios son nuestra tarifa, no una comparación independiente.

Dónde compensa se ve con los tokens que devolvieron esas mismas llamadas, aplicando las tarifas estándar de Google (entrada × 1,50 $ + imagen × 30 $ + texto y razonamiento × 7,50 $, por millón de tokens):

  • 1K: 42 de entrada, 1.120 de imagen y 1.248 de texto y razonamiento ≈ 0,043 $ en Google, frente a 0,045 $ fijos.
  • 4K: 42 de entrada, 3.780 de imagen y 772 de texto y razonamiento ≈ 0,119 $ en Google, frente a 0,045 $ fijos.

Es decir, a 1K el precio es prácticamente el mismo y a 2K o 4K la tarifa fija sale más barata. El cálculo supone que el intermediario transmite sin cambios los datos de uso de Google, algo que no se ha contrastado con una factura de Google. Es un proveedor externo: el formato de petición, las funciones disponibles y el cobro los fija él, no Google. La comparación de coste por imagen entregada está en Nano Banana API: Google y laozhang.ai, coste y entrega de imágenes. Y si quieres generar imágenes desde tu editor, mira Nano Banana en Claude Code: skill o MCP con modelos vigentes.

Preguntas frecuentes

¿Cómo consigo una clave API de Nano Banana?

Creando una clave de la Gemini API en Google AI Studio: no existe una clave específica de Nano Banana. Desde el 28 de mayo de 2026 las claves nuevas son claves de autorización limitadas a la Gemini API. Para generar imágenes, el proyecto al que pertenece la clave necesita facturación activa.

¿Se puede usar la API de Nano Banana gratis?

No para generar imágenes: la página de precios marca la salida de imagen de todos los modelos Nano Banana como "no disponible" en el nivel gratuito. Sin pagar solo tienes la app de Gemini, que no se integra en tu aplicación. Allí Nano Banana 2 es el modelo gratuito; la página de producto de Gemini dice que los planes Google AI Pro, Plus y Ultra usan 2.1, mientras que su centro de ayuda todavía describe Nano Banana 2 y no publica un número de imágenes al día. El detalle para España está en ¿Se puede usar Nano Banana gratis? Qué ofrece Google en España.

¿Qué modelo uso si no sé cuál elegir?

gemini-nano-banana-2.1 (Nano Banana 2.1). Cubre de 1K a 4K, admite edición por turnos, hasta 14 referencias, búsqueda web y de imágenes, y a 1K cuesta lo mismo que Lite. Cambia a Lite si 1K basta y quieres la opción más rápida y barata, y a Pro si el texto de la imagen tiene que salir exacto, si produces piezas profesionales o si necesitas texto e imágenes intercalados.

¿Nano Banana 2 deja de funcionar en la API?

No hay fecha: a 8 de octubre de 2026, gemini-3.1-flash-image está obsoleto en la Gemini API sin fecha de cierre anunciada, y Google recomienda migrar a gemini-nano-banana-2.1. En Vertex AI su retirada figura para el 28 de mayo de 2027 o más tarde. Si dependes de imágenes de 512 px, es lo único que pierdes al migrar.

¿Sigue funcionando generateContent para generar imágenes?

Sí. Google lo mantiene plenamente soportado y recomienda Interactions solo para desarrollo nuevo. Lo que sí debes cambiar son los IDs de modelo retirados: cualquier -preview, gemini-2.5-flash-image y, sin prisa pero sin olvidarlo, gemini-3.1-flash-image.

¿Por qué falla el código de un tutorial de 2025?

Por tres motivos habituales: usa un ID -preview ya apagado, usa una clave estándar sin restricciones que la API rechaza, o lee interaction.outputs, un campo que desapareció el 8 de junio de 2026. La tabla de migración de arriba indica qué cambiar en cada caso; para los IDs de Flash, el destino actual es gemini-nano-banana-2.1.

¿Dónde está la documentación oficial en español?

En ai.google.dev, página "Generación de imágenes con Nano Banana"; el selector de idioma de la web permite verla en español. Allí están todos los ejemplos en Python, JavaScript, Java, Go y REST. Para un recorrido sin código por la app, Flow y la API, tienes Cómo generar imágenes con Gemini: app, Flow y API paso a paso.

Fuentes9

Páginas externas que cita esta guía, en el orden en que aparecen. Última actualización: 8 oct 2026.

  1. 1.guía de generación de imágenes de la Gemini APIai.google.dev/gemini-api/docs/image-generation
  2. 2.guía de migración a Interactionsai.google.dev/gemini-api/docs/migrate-to-interactions
  3. 3.precios de la API de Geminiai.google.dev/gemini-api/docs/pricing
  4. 4.Google AI Studioaistudio.google.com
  5. 5.documentación de claves de la Gemini APIai.google.dev/gemini-api/docs/api-key
  6. 6.límites de uso de la Gemini APIai.google.dev/gemini-api/docs/rate-limits
  7. 7.descripción general de la Interactions APIai.google.dev/gemini-api/docs/interactions-overview
  8. 8.referencia de generateContentai.google.dev/api/generate-content
  9. 9.retiradas de modelos de la Gemini APIai.google.dev/gemini-api/docs/deprecations