# Nano Banana en Claude Code: skill o MCP con modelos vigentes

> Claude Code no dibuja: llama a Nano Banana con una skill o un servidor MCP. Usa gemini-3.1-flash-image, activa la facturación y cuenta 0,067 $ por imagen 1K.

- URL: https://blog.laozhang.ai/es/posts/nano-banana-claude-code
- Published: 2026-09-24
- Updated: 2026-09-24
- Author: LaoZhang AI Team (https://blog.laozhang.ai/es/about)
- Category: Claude Code
- Tags: Claude Code, Nano Banana, Gemini API, Skills, MCP

---
## Qué hace falta para que Claude Code cree imágenes con Nano Banana

Claude no genera imágenes raster por sí mismo: escribe código, SVG y texto, pero no píxeles (lo explica con más detalle [¿Puede Claude generar imágenes?](https://blog.laozhang.ai/es/posts/can-claude-generate-images)). Lo que sí puede hacer Claude Code es ejecutar algo que llame a la Gemini API, donde está Nano Banana, y guardar el PNG resultante en tu proyecto. Para que eso funcione a 24 de septiembre de 2026 necesitas tres cosas:

1. **Un ID de modelo que siga encendido.** En la Gemini API son `gemini-3.1-flash-image` (Nano Banana 2), `gemini-3-pro-image` (Nano Banana Pro) y `gemini-3.1-flash-lite-image` (Nano Banana 2 Lite). Los ID `-preview` de Nano Banana 2 y Pro se apagaron el 25 de junio de 2026, y `gemini-2.5-flash-image` se apaga el 2 de octubre de 2026 ([calendario de bajas de la Gemini API](https://ai.google.dev/gemini-api/docs/deprecations)).
2. **Una clave de Google AI Studio con la facturación activada.** Estos tres modelos no tienen nivel gratuito en la API ([precios de la Gemini API](https://ai.google.dev/gemini-api/docs/pricing)). La clave va en una variable de entorno, nunca pegada en la conversación.
3. **Un puente entre Claude y la API:** una skill que ejecuta un script, o un servidor MCP que expone una herramienta. Las dos rutas están más abajo, con los comandos completos.

Si seguiste un vídeo o un repositorio de principios de 2026 y ahora Claude te contesta con un error en lugar de una imagen, lo más probable es que tu configuración apunte a uno de los ID apagados. La tabla de la sección siguiente te dice cuál y qué cambiar.

## Skill o servidor MCP: cómo elegir

Las dos rutas terminan en la misma llamada a Google, pero cambian quién controla los parámetros y qué tienes que mantener.

| | Skill con script | Servidor MCP (extensión `nanobanana` de Google) |
| --- | --- | --- |
| Cómo lo usa Claude | Lee `SKILL.md` y ejecuta un comando en la terminal | Llama a una herramienta (`generate_image`, `edit_image`…) |
| Qué instalas | Python y el paquete `google-genai` | Node.js 20 o superior, clonar y compilar el servidor |
| Proporción y resolución | Las eliges tú (`--aspect 16:9`, `--size 2K`) | La herramienta no expone esos parámetros |
| Dónde guarda | En la ruta que indiques (`public/images/hero.png`) | En `nanobanana-output/`, dentro del directorio desde el que arranca el servidor |
| Modelo por defecto | El que escribas en el script | `gemini-3.1-flash-image-preview`, ya apagado, salvo que definas `NANOBANANA_MODEL` |
| Compartir con el equipo | Se versiona en `.claude/skills/` del repositorio | `.mcp.json` en la raíz del proyecto |

Elige la **skill** si quieres cabeceras de blog, miniaturas o recursos web con un formato concreto y guardados donde los espera tu proyecto: controlas modelo, proporción y ruta, y el código es tuyo. Elige el **servidor MCP** si ya usabas la extensión de Gemini CLI y te interesan sus herramientas específicas (restaurar fotos, iconos, patrones, diagramas, secuencias de hasta 8 variaciones) más que el formato exacto.

![Las dos rutas desde Claude Code hasta el PNG: la skill ejecuta generate.py con proporción y tamaño y guarda donde indiques; el servidor MCP necesita NANOBANANA_MODEL y guarda en nanobanana-output/; debajo, dónde funciona cada entorno](https://blog.laozhang.ai/posts/es/nano-banana-claude-code/img/skill-o-mcp-ruta.webp)

Hay dos atajos más. Pegar la clave en el chat para que Claude la guarde en un archivo, como propone la [guía de Ryan Doser con OpenRouter](https://ryandoser.com/nano-banana-claude-code/), funciona, pero deja la clave en el historial de la sesión. Y los servidores MCP alojados por terceros o las skills de catálogos reciben tus prompts, tus imágenes de referencia y, a menudo, tu clave: es una decisión de confianza sobre ese proveedor, no un detalle de instalación.

## Por qué tu configuración de Nano Banana dejó de generar imágenes

Si tu configuración fija o hereda un ID que ya no existe en la Gemini API, Claude recibe un error donde esperaba una imagen. Estos son los casos habituales, con su estado a 24 de septiembre de 2026:

| Configuración | Modelo que usa | Estado | Cambio mínimo |
| --- | --- | --- | --- |
| Extensión `gemini-cli-extensions/nanobanana` sin `NANOBANANA_MODEL` | `gemini-3.1-flash-image-preview` (valor por defecto en el código) | Apagado desde el 25 de junio de 2026 | `NANOBANANA_MODEL=gemini-3.1-flash-image` |
| Skill `cc-nano-banana` siguiendo su README | El README dice `gemini-2.5-flash-image`, pero la skill llama a la extensión anterior, que sin variable usa el ID preview | Preview apagado; `gemini-2.5-flash-image` se apaga el 2 de octubre de 2026 | `NANOBANANA_MODEL=gemini-3.1-flash-image` exportada antes de abrir `claude` |
| Cualquiera de las dos con `NANOBANANA_MODEL=gemini-3-pro-image-preview` (sugerido en ambos README para más calidad) | Nano Banana Pro preview | Apagado desde el 25 de junio de 2026 | `NANOBANANA_MODEL=gemini-3-pro-image` |
| Cualquier ruta con `gemini-2.5-flash-image` | Nano Banana original | Responde hasta el 2 de octubre de 2026 | `gemini-3.1-flash-lite-image`, la sustitución que recomienda Google, o `gemini-3.1-flash-image` |
| Script propio con `gemini-2.5-flash-image-preview` | Primera preview | Apagado desde el 15 de enero de 2026 | Cualquiera de los tres ID vigentes |

Fuentes: el código de la extensión ([`imageGenerator.ts`](https://github.com/gemini-cli-extensions/nanobanana), con el último cambio en `main` del 7 de marzo de 2026), el [README de cc-nano-banana](https://github.com/kkoppenhaver/cc-nano-banana) y el calendario de bajas de Google. Que la instalación por defecto de la extensión falle es una deducción de ese código: la variable acepta cualquier cadena sin validarla y, si no existe, usa el ID preview. El texto exacto del error que verás depende de la respuesta de Google; lo relevante es que la herramienta devuelve un fallo en lugar de un archivo.

![Correspondencia entre los ID de Nano Banana apagados o a punto de apagarse en la Gemini API y el ID vigente que los sustituye, con el cambio mínimo de NANOBANANA_MODEL](https://blog.laozhang.ai/posts/es/nano-banana-claude-code/img/ids-modelo-vigentes.webp)

Para localizar un ID retirado en tu máquina sin revisar archivo por archivo:

```bash
echo "$NANOBANANA_MODEL"
grep -n "image-preview\|2.5-flash-image" ~/.zshrc ~/.bashrc ~/.claude.json .mcp.json 2>/dev/null
grep -rn "image-preview\|2.5-flash-image" .claude/ ~/.claude/skills/ 2>/dev/null
```

Si aparece algún resultado, sustituye el ID por uno vigente en ese mismo sitio, abre una terminal nueva y vuelve a lanzar `claude` para que tome el entorno actualizado. Estas fechas son de la Gemini API; en Vertex AI el calendario es distinto (lo tienes en [Nano Banana en Vertex AI: modelos vigentes, costes y errores](https://blog.laozhang.ai/es/posts/vertex-ai-nano-banana-api)).

## Ruta recomendada: una skill con script de Python

Una skill de Claude Code es una carpeta con un `SKILL.md` (metadatos en YAML más instrucciones) que puede incluir scripts. Si la guardas en `.claude/skills/` dentro del repositorio, se carga en las sesiones de ese proyecto y la compartes con tu equipo al hacer commit; en `~/.claude/skills/` queda disponible en todos tus proyectos de ese ordenador ([documentación de skills](https://code.claude.com/docs/en/skills)).

### Estructura y dependencias

```text
.claude/skills/nano-banana/
├── SKILL.md
└── scripts/
    └── generate.py
```

Instala el SDK de Google en el Python que vaya a usar Claude y deja la clave en tu perfil de shell:

```bash
python3 -m pip install google-genai
echo 'export GEMINI_API_KEY="tu-clave-de-ai-studio"' >> ~/.zshrc
```

Si prefieres un entorno virtual, crea uno y escribe en `SKILL.md` la ruta de su intérprete (`.venv/bin/python`) en lugar de `python3`. Abre una terminal nueva antes de lanzar `claude` para que la variable exista en la sesión.

### El script generate.py

El script admite los tres ID vigentes y nada más, lee la clave de `GEMINI_API_KEY`, pide a la API solo imagen (`response_modalities=["IMAGE"]`) y fija proporción y resolución con `image_config`. Con `--input` añade imágenes de referencia para editar o componer:

```python
#!/usr/bin/env python3
"""Genera o edita una imagen con Nano Banana a través de la Gemini API.

Uso:
  python3 generate.py "prompt" --out images/hero.png [--model gemini-3.1-flash-image]
                      [--aspect 16:9] [--size 2K] [--input ref.png ...]
La clave se lee de GEMINI_API_KEY (nunca de la línea de comandos).
"""
import argparse
import os
import pathlib
import sys

from google import genai
from google.genai import types

MODELS = {
    "gemini-3.1-flash-lite-image",  # Nano Banana 2 Lite, solo 1K
    "gemini-3.1-flash-image",       # Nano Banana 2, 512/1K/2K/4K
    "gemini-3-pro-image",           # Nano Banana Pro, 1K/2K/4K
}

def main() -> int:
    p = argparse.ArgumentParser()
    p.add_argument("prompt")
    p.add_argument("--out", required=True)
    p.add_argument("--model", default="gemini-3.1-flash-image")
    p.add_argument("--aspect", default="1:1")
    p.add_argument("--size", default="1K")
    p.add_argument("--input", action="append", default=[])
    a = p.parse_args()

    if a.model not in MODELS:
        print(f"Unknown or retired model id: {a.model}. Use one of {sorted(MODELS)}", file=sys.stderr)
        return 2
    if not os.environ.get("GEMINI_API_KEY"):
        print("GEMINI_API_KEY is not set", file=sys.stderr)
        return 2

    contents = [a.prompt]
    for path in a.input:
        data = pathlib.Path(path).read_bytes()
        mime = "image/png" if path.lower().endswith(".png") else "image/jpeg"
        contents.append(types.Part.from_bytes(data=data, mime_type=mime))

    # Opcional: pasarela compatible con la Gemini API, p. ej. GEMINI_BASE_URL=https://api.laozhang.ai
    base_url = os.environ.get("GEMINI_BASE_URL")
    client = genai.Client(http_options=types.HttpOptions(base_url=base_url)) if base_url else genai.Client()
    resp = client.models.generate_content(
        model=a.model,
        contents=contents,
        config=types.GenerateContentConfig(
            response_modalities=["IMAGE"],
            image_config=types.ImageConfig(aspect_ratio=a.aspect, image_size=a.size),
        ),
    )

    for cand in resp.candidates or []:
        for part in (cand.content.parts if cand.content else []) or []:
            if part.inline_data and part.inline_data.data:
                out = pathlib.Path(a.out)
                out.parent.mkdir(parents=True, exist_ok=True)
                out.write_bytes(part.inline_data.data)
                print(f"saved {out} ({len(part.inline_data.data)} bytes)")
                return 0

    fb = getattr(resp, "prompt_feedback", None)
    reason = resp.candidates[0].finish_reason if resp.candidates else None
    print(f"No image returned. blockReason={getattr(fb, 'block_reason', None)} finishReason={reason}", file=sys.stderr)
    return 1

if __name__ == "__main__":
    sys.exit(main())
```

La lista cerrada de modelos es deliberada: si alguien escribe un ID retirado, el script lo rechaza antes de gastar una petición y el mensaje le dice qué usar. Cuando Google publique otro ID, añadirlo es cambiar una línea.

### SKILL.md: cuándo y cómo lo usa Claude

La `description` es lo que Claude lee para decidir si carga la skill, así que debe nombrar las peticiones que la activan. El cuerpo fija las reglas que no quieres repetir en cada prompt:

```markdown
---
name: nano-banana
description: Genera o edita imágenes raster (cabeceras de blog, miniaturas, iconos, fotos de producto) con Nano Banana mediante la Gemini API y las guarda en el proyecto. Úsala cuando el usuario pida crear, generar o editar una imagen PNG o JPG. No la uses para SVG ni para diagramas que se puedan escribir en código.
---

# Nano Banana

Ejecuta desde la raíz del proyecto:

python3 .claude/skills/nano-banana/scripts/generate.py "<prompt detallado>" --out <ruta/archivo.png> [--model <id>] [--aspect 16:9] [--size 2K] [--input <referencia.png>]

Reglas:
- Modelo por defecto: gemini-3.1-flash-image.
- gemini-3.1-flash-lite-image solo si el usuario pide rapidez o volumen, siempre con --size 1K y sin varias referencias.
- gemini-3-pro-image solo si el usuario lo pide o el encargo exige coherencia de marca estricta.
- Guarda en la carpeta de imágenes del proyecto con un nombre descriptivo. No sobrescribas un archivo existente sin preguntar.
- No pidas la clave API ni la escribas en comandos o archivos: el script la lee de GEMINI_API_KEY.
- Código de salida 2: muestra el mensaje y detente. Código 1 ("No image returned"): resume blockReason y finishReason y propón reformular el prompt.
- Antes de generar más de 5 imágenes en una misma tarea, di cuántas son y el coste aproximado.
```

Si guardas la skill en `~/.claude/skills/` en vez de en el proyecto, cambia la ruta del comando por `~/.claude/skills/nano-banana/scripts/generate.py`. El nombre de la carpeta se convierte además en comando: `/nano-banana` la invoca directamente.

### Primera prueba y códigos de salida

Con Claude Code abierto en tu proyecto, pide algo concreto: «Genera una cabecera 16:9 en 2K para el artículo sobre facturación electrónica y guárdala en public/images/facturacion-hero.png». Claude debería ejecutar el script con `--aspect 16:9 --size 2K` y responder con la línea `saved …`.

El script todavía no se ha probado generando una imagen real; lo comprobado son sus respuestas de error: sin `GEMINI_API_KEY` sale con código 2 y el mensaje `GEMINI_API_KEY is not set`; con `gemini-3-pro-image-preview` sale con código 2 y lista los tres ID válidos; con una clave falsa y un ID vigente, la petición llega a `generativelanguage.googleapis.com` y vuelve `400 INVALID_ARGUMENT` con `API_KEY_INVALID`. Si ves ese último error con tu clave real, revisa que la hayas copiado entera y que el proyecto de AI Studio tenga la facturación activa. Si la API responde sin imagen, el diagnóstico sigue en [Nano Banana no genera imagen en la API: diagnóstico y arreglo](https://blog.laozhang.ai/es/posts/nano-banana-2-200-ok-no-image).

Para editar, pasa la foto original con `--input` y describe el cambio en el prompt. Nano Banana 2 y Pro admiten hasta 14 imágenes de referencia en una misma petición; Lite no está optimizado para varias referencias ni para ediciones encadenadas ([documentación de generación de imágenes](https://ai.google.dev/gemini-api/docs/image-generation)). Para redactar mejores instrucciones, [Cómo escribir prompts para Nano Banana](https://blog.laozhang.ai/es/posts/how-to-prompt-nano-banana) tiene plantillas por tipo de encargo.

## Ruta MCP: la extensión nanobanana de Google en Claude Code

La extensión `nanobanana` de Gemini CLI es, por dentro, un servidor MCP por stdio. No necesitas Gemini CLI para usarla desde Claude Code: basta con compilar el servidor y registrarlo. El repositorio no incluye el código compilado (`mcp-server/dist/`), pero según su `package.json`, `npm install` en la raíz instala las dependencias y compila `mcp-server/dist/index.js` en un solo paso. Usa Node.js 20 o superior: el `package.json` acepta desde la 18, pero el README pide la 20.

```bash
git clone https://github.com/gemini-cli-extensions/nanobanana ~/mcp/nanobanana
cd ~/mcp/nanobanana && npm install
```

Después lo registras con la clave y, sobre todo, con un modelo vigente. Pon `--transport stdio` entre las opciones `--env` y el nombre del servidor: si el nombre va justo detrás de `--env`, la CLI lo interpreta como otra variable ([documentación de MCP en Claude Code](https://code.claude.com/docs/en/mcp)):

```bash
claude mcp add \
  --env NANOBANANA_API_KEY="$GEMINI_API_KEY" \
  --env NANOBANANA_MODEL=gemini-3.1-flash-image \
  --transport stdio nanobanana \
  -- node ~/mcp/nanobanana/mcp-server/dist/index.js
```

Sin `--scope`, el servidor se guarda en ámbito local: solo tú lo ves y solo en ese proyecto, dentro de `~/.claude.json`, que no forma parte del repositorio. El valor de la clave queda escrito en ese archivo. Con `--scope user` lo tendrás en todos tus proyectos. Comprueba la conexión con `claude mcp list` (debe aparecer `✔ Connected`) o con `/mcp` dentro de la sesión.

Para compartirlo con el equipo, `.mcp.json` admite variables de entorno con la sintaxis `${VAR}`, de modo que cada persona usa su propia clave y ninguna acaba en Git:

```json
{
  "mcpServers": {
    "nanobanana": {
      "command": "node",
      "args": ["${HOME}/mcp/nanobanana/mcp-server/dist/index.js"],
      "env": {
        "NANOBANANA_API_KEY": "${GEMINI_API_KEY}",
        "NANOBANANA_MODEL": "gemini-3.1-flash-image"
      }
    }
  }
}
```

Claude Code pide aprobación la primera vez que encuentra servidores de un `.mcp.json` en una sesión interactiva. Si ya tenías servidores configurados en Claude Desktop, `claude mcp add-from-claude-desktop` los importa (solo en macOS y WSL), pero revisa que ninguno arrastre un ID preview.

Lo que cambia frente a la skill: `generate_image` acepta prompt, número de variaciones (1 a 8), estilos, semilla y formato de salida, pero no proporción ni resolución; guarda los archivos en `nanobanana-output/` bajo el directorio de trabajo del servidor (cuando lo lanza Claude Code, normalmente la carpeta del proyecto; si no aparecen ahí, búscala con `find ~ -type d -name nanobanana-output`) y devuelve a Claude las rutas, no la imagen. Eso último importa: Claude Code avisa cuando la salida de una herramienta MCP supera 10.000 tokens y la corta en 25.000 por defecto, límite que también se aplica a los datos de imagen (`MAX_MCP_OUTPUT_TOKENS`). Un servidor MCP que devuelva la imagen codificada dentro de la respuesta puede chocar con ese tope; uno que guarde en disco, no. Si lo que buscas es comparar este servidor con otros, [Los mejores MCP para Claude Code que conviene instalar primero en 2026](https://blog.laozhang.ai/es/posts/claude-code-best-mcp-servers) recoge los habituales.

## La clave API, fuera de la conversación

La extensión busca la clave en este orden y usa la primera que encuentre: `NANOBANANA_API_KEY`, `NANOBANANA_GEMINI_API_KEY`, `NANOBANANA_GOOGLE_API_KEY`, `GEMINI_API_KEY` y `GOOGLE_API_KEY`. Si tienes una clave antigua en `NANOBANANA_GEMINI_API_KEY` (la variable que indica cc-nano-banana) y una nueva en `GEMINI_API_KEY`, se usará la antigua; ese orden explica muchos «he cambiado la clave y sigue fallando».

Las tres formas razonables de guardar la clave son, de más simple a más compartible: una variable en tu perfil de shell (la skill la lee de ahí), la opción `--env` en ámbito local (queda en `~/.claude.json`, fuera del repositorio) y `${GEMINI_API_KEY}` dentro de `.mcp.json` (cada persona pone su valor). Lo que conviene evitar es pegarla en el chat: queda en el historial de la sesión y, si Claude la guarda en un archivo como `APIs.env` dentro del proyecto, añade ese archivo a `.gitignore` antes de tu próximo commit.

## Cuánto cuesta cada imagen y por qué necesitas facturación

En la Gemini API, Nano Banana 2, Nano Banana 2 Lite y Nano Banana Pro aparecen como «Not available» en el nivel gratuito: sin facturación activada, la clave no genera imágenes con estos modelos. Precios del nivel de pago estándar, en dólares y por imagen de salida, a 24 de septiembre de 2026:

| Modelo | ID | 512 px | 1K | 2K | 4K |
| --- | --- | --- | --- | --- | --- |
| Nano Banana 2 Lite | `gemini-3.1-flash-lite-image` | — | 0,0336 $ | — | — |
| Nano Banana 2 | `gemini-3.1-flash-image` | 0,045 $ | 0,067 $ | 0,101 $ | 0,151 $ |
| Nano Banana Pro | `gemini-3-pro-image` | — | 0,134 $ | 0,134 $ | 0,24 $ |

Cada imagen de referencia que envías suma unos 0,0011 $ con Pro, y el texto del prompt es un coste menor. Para hacer tu cuenta, multiplica imágenes por precio unitario. Veinte cabeceras 16:9 en 2K con Nano Banana 2 son 20 × 0,101 $ = 2,02 $; las mismas con Pro, 20 × 0,134 $ = 2,68 $; en 1K con Lite, 20 × 0,0336 $ ≈ 0,67 $. Con la ruta MCP, cada variación se cobra como una imagen, así que pedir 8 variaciones multiplica por 8. En el nivel de pago, Google indica que tus datos no se usan para mejorar sus productos, algo a tener en cuenta si trabajas con material de clientes. El desglose completo, con modo Batch incluido, está en [Precio de Nano Banana API: Lite, Nano Banana 2, Pro, gratis y rutas](https://blog.laozhang.ai/es/posts/nano-banana-api-pricing-free-vs-pro), y para decidir qué modelo encaja con cada encargo, en [Nano Banana 2 Lite vs 2 vs Pro: elige por tarea](https://blog.laozhang.ai/es/posts/nano-banana-pro-vs-nano-banana-2).

Si no puedes activar la facturación de Google, el script admite un endpoint compatible mediante `GEMINI_BASE_URL`. [laozhang.ai](https://laozhang.ai/) sirve los mismos tres ID con el formato nativo de Gemini (`/v1beta/models/{modelo}:generateContent`) a precio fijo por llamada, sin depender de la resolución: 0,025 $ Lite, 0,055 $ Nano Banana 2 y 0,09 $ Pro. Para usarlo, pon `GEMINI_BASE_URL=https://api.laozhang.ai` y la clave de ese servicio en `GEMINI_API_KEY`; con una clave falsa, el script llega a su pasarela y recibe `401 Invalid token`, así que la conexión está bien formada, pero la generación real por esa vía no está probada con este script. Ten en cuenta que es un tercero: no se aplican los términos de datos ni el SLA de Google, y no sirve para esquivar restricciones regionales.

## Dónde no funciona: claude.ai, Cowork y sesiones en la nube

Todo lo anterior necesita un proceso local que ejecute el script o el servidor MCP, y eso delimita dónde funciona:

- **Claude Code en tu terminal**: funcionan las dos rutas.
- **Pestaña Code de la app de escritorio, en sesión local**: usa los mismos servidores MCP configurados en `~/.claude.json` y `.mcp.json`.
- **Chat de claude.ai**: no ejecuta scripts de tu ordenador ni lanza servidores locales; ahí Claude puede describir o escribir SVG, no llamar a Nano Banana por ti.
- **Cowork y sesiones en la nube (incluidas las rutinas)**: no leen `~/.claude/skills/`. Cowork carga las skills activadas en tu cuenta de claude.ai (Customize, en la barra lateral de la app de escritorio). Las sesiones en la nube cargan además las skills versionadas en `.claude/skills/` del repositorio, pero el script también necesita allí `google-genai` y la variable `GEMINI_API_KEY`; si ese entorno no los tiene, fallará con el código 2 descrito arriba.

Si todavía no tienes Claude Code instalado, empieza por [Cómo instalar Claude Code](https://blog.laozhang.ai/es/posts/claude-code-install); y si esta skill te ha servido de modelo, [Las mejores skills de Claude Code para instalar primero en 2026](https://blog.laozhang.ai/es/posts/claude-code-best-skills) tiene otras que siguen el mismo patrón.

## Preguntas frecuentes

**¿Necesito instalar Gemini CLI para usar Nano Banana en Claude Code?**
No. La skill con script solo necesita Python y `google-genai`, y el servidor MCP de la extensión se ejecuta con Node.js sin Gemini CLI. Gemini CLI solo hace falta si usas `cc-nano-banana`, que delega en él.

**¿Sirve la clave gratuita de Google AI Studio?**
Puedes crear la clave sin pagar, pero Nano Banana 2, 2 Lite y Pro no tienen nivel gratuito en la API: hasta que actives la facturación en el proyecto, las peticiones de imagen no saldrán adelante.

**¿Las imágenes llevan marca de agua?**
Sí. Según la documentación de Google, todas las imágenes que generan estos modelos incluyen una marca de agua SynthID, también las que Claude guarda en tu proyecto.

**¿Qué pasa con mi configuración de `gemini-2.5-flash-image` después del 2 de octubre de 2026?**
Dejará de responder en la Gemini API. Google recomienda pasar a `gemini-3.1-flash-lite-image`, que además es más barato (0,0336 $ por imagen 1K frente a 0,039 $); si necesitas 2K, 4K o varias referencias, usa `gemini-3.1-flash-image`.
