
Al editar imágenes con IA, una de las principales preocupaciones de muchos desarrolladores es: ¿Se puede modificar solo una parte local de la imagen sin afectar el resto? Este es el problema central que resuelve la tecnología de inpainting (reparación local/edición local de imágenes).
La buena noticia es que la serie de modelos Nano Banana sí es compatible con inpainting para edición local, y además ofrece capacidades de edición mask-free (sin máscara) más potentes que las soluciones tradicionales. Este artículo detalla 3 esquemas para lograr la edición local mediante API, ayudándote a elegir rápidamente la ruta técnica más adecuada.
Valor central: Después de leer este artículo, dominarás 3 formas de invocar la API de inpainting de Nano Banana, permitiéndote implementar funciones profesionales de edición local de imágenes con IA en tus propios proyectos.
Panorama de las capacidades de Inpainting de Nano Banana: 3 esquemas de edición local
Muchos desarrolladores tienen un malentendido común: creen que Nano Banana solo puede generar imágenes y no es compatible con inpainting. En realidad, Nano Banana no solo es compatible con inpainting, sino que también ofrece múltiples rutas de implementación.
| Esquema | Modelo | Principio | Precisión | Velocidad | Escenario de aplicación |
|---|---|---|---|---|---|
| Esquema 1: Edición con lenguaje natural sin máscara | Nano Banana 2 | Instrucción de texto + imagen original | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Edición rápida, reemplazo de fondo |
| Esquema 2: Modificación precisa basada en máscara | Nano Banana Pro Edit | Máscara + instrucción de texto + imagen original | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | Control preciso del área |
| Esquema 3: Edición iterativa con diálogo múltiple | Nano Banana 2 | Diálogo múltiple + contexto | ⭐⭐⭐⭐ | ⭐⭐⭐ | Edición compleja, optimización paso a paso |
Diferencias clave entre el Inpainting de Nano Banana y las soluciones tradicionales
Las herramientas tradicionales de inpainting (como Stable Diffusion Inpainting) requieren que los desarrolladores dibujen manualmente una máscara (mask) en blanco y negro para especificar el área a modificar. El avance central de Nano Banana radica en:
- Impulsado por comprensión semántica: El modelo puede entender instrucciones en lenguaje natural como "cambia el fondo por una playa", identificando automáticamente el área del fondo.
- Consciente del contexto: Al modificar un área local, automáticamente coincide con la iluminación, perspectiva y colores del entorno circundante.
- Sin necesidad de máscara: La mayoría de los escenarios de edición no requieren crear una máscara manualmente, reduciendo la barrera de entrada para el desarrollo.
🎯 Recomendación técnica: La capacidad de inpainting de Nano Banana se proporciona a través de una interfaz estándar compatible con OpenAI. Recomendamos realizar la invocación a través de la plataforma APIYI (apiyi.com), que permite gestionar de manera unificada las invocaciones de los dos modelos, Nano Banana 2 y Nano Banana Pro, facilitando las pruebas de cambio entre diferentes esquemas.
Opción 1: Inpainting con lenguaje natural sin máscara (recomendado para empezar)
Esta es una de las características más potentes del inpainting con Nano Banana: modificar áreas locales sin necesidad de una máscara, solo usando descripciones en lenguaje natural.
Principio central del Inpainting sin Máscara de Nano Banana
Nano Banana 2 (basado en Gemini 3.1 Flash Image) tiene capacidades de segmentación semántica integradas. El modelo:
- Analiza la instrucción de edición — Comprende qué parte de la imagen quieres modificar.
- Identifica automáticamente la región — Localiza los píxeles a modificar mediante comprensión semántica.
- Realiza inferencia contextual — Analiza la dirección de la luz, relaciones de perspectiva y relaciones espaciales 3D.
- Reemplazo preciso — Modifica el área objetivo manteniendo la coherencia del entorno circundante.
Ejemplo de código mínimo para Inpainting sin Máscara
import openai
import base64
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1" # Interfaz unificada de APIYI
)
response = client.chat.completions.create(
model="gemini-2.5-flash-image-preview",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Remove the person from this photo and fill the area with the surrounding background naturally"},
{"type": "image_url", "image_url": {"url": "https://example.com/your-photo.jpg"}}
]
}]
)
# Extraer la imagen editada
content = response.choices[0].message.content
print("Edición completada, extrayendo datos de la imagen...")
Plantillas de instrucciones de edición comunes para Nano Banana Inpainting
| Tipo de edición | Plantilla de instrucción (inglés) | Explicación en español |
|---|---|---|
| Eliminar objeto | Remove the [object] from the image and fill naturally |
Elimina el objeto especificado y rellena de forma natural. |
| Reemplazar fondo | Replace the background with [new scene] |
Cambia la escena de fondo. |
| Añadir elemento | Add a [object] to the [position] of the image |
Añade un elemento en una posición específica. |
| Modificar atributo | Change the [object]'s color from [A] to [B] |
Cambia el color de un objeto. |
| Desenfocar fondo | Blur the background while keeping the foreground sharp |
Desenfoca el fondo manteniendo el primer plano nítido. |
| Reparar imperfección | Remove the stain/scratch from the [area] |
Elimina manchas o arañazos de un área. |
| Ajustar pose | Change the person's pose to [description] |
Ajusta la postura de una persona. |
| Cambiar estilo | Convert the [area] to watercolor painting style |
Convierte un área a un estilo pictórico específico. |

Ver código completo para Inpainting sin Máscara (con guardado de imagen y manejo de errores)
#!/usr/bin/env python3
"""
Ejemplo completo de Inpainting sin Máscara con Nano Banana
Edición local de imágenes mediante instrucciones en lenguaje natural
"""
import openai
import base64
import re
from datetime import datetime
# Configuración
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.apiyi.com/v1"
client = openai.OpenAI(api_key=API_KEY, base_url=BASE_URL)
def inpaint_image(image_url: str, edit_instruction: str, output_path: str = None):
"""
Edita una imagen usando Inpainting sin Máscara
Args:
image_url: URL de la imagen original o data URI base64
edit_instruction: Instrucción de edición en inglés
output_path: Ruta del archivo de salida (opcional)
Returns:
bool: Éxito o fracaso de la operación
"""
print(f"📝 Instrucción de edición: {edit_instruction}")
print(f"🖼️ Imagen original: {image_url[:80]}...")
try:
response = client.chat.completions.create(
model="gemini-2.5-flash-image-preview",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": f"Generate an image: {edit_instruction}"},
{"type": "image_url", "image_url": {"url": image_url}}
]
}]
)
content = response.choices[0].message.content
# Extraer datos de imagen en base64
patterns = [
r'data:image/[^;]+;base64,([A-Za-z0-9+/=]+)',
r'([A-Za-z0-9+/=]{1000,})'
]
base64_data = None
for pattern in patterns:
match = re.search(pattern, content)
if match:
base64_data = match.group(1)
break
if not base64_data:
print(f"⚠️ No se encontraron datos de imagen, respuesta del modelo: {content[:200]}")
return False
# Guardar la imagen
if not output_path:
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
output_path = f"inpainted_{timestamp}.png"
image_bytes = base64.b64decode(base64_data)
with open(output_path, 'wb') as f:
f.write(image_bytes)
print(f"✅ ¡Edición completada! Guardada en: {output_path} ({len(image_bytes):,} bytes)")
return True
except Exception as e:
print(f"❌ Error en la edición: {e}")
return False
# Ejemplo de uso
if __name__ == "__main__":
# Ejemplo 1: Eliminar objeto
inpaint_image(
image_url="https://example.com/photo-with-person.jpg",
edit_instruction="Remove the person on the right side and fill with natural background",
output_path="result_remove_person.png"
)
# Ejemplo 2: Reemplazar fondo
inpaint_image(
image_url="https://example.com/portrait.jpg",
edit_instruction="Replace the background with a sunset beach scene, keep the person unchanged",
output_path="result_new_background.png"
)
# Ejemplo 3: Modificar atributo local
inpaint_image(
image_url="https://example.com/room.jpg",
edit_instruction="Change the wall color to light blue, keep furniture unchanged",
output_path="result_wall_color.png"
)
Opción 2: Inpainting Basado en Máscara (Uso Avanzado)
Cuando necesitas un control preciso a nivel de píxel sobre el área a modificar, puedes usar el modo de máscara de Nano Banana Pro Edit.
Cómo funciona el Inpainting Basado en Máscara
Este modo requiere que proporciones una imagen de máscara en blanco y negro. Las áreas blancas indican las partes que se modificarán, mientras que las negras permanecerán intactas.
| Parámetro | Descripción | Requisitos |
|---|---|---|
| Imagen Original | La imagen que quieres editar | PNG/JPEG, se recomienda no superar 4096×4096 |
| Imagen de Máscara | Imagen en blanco y negro que marca el área de edición | Mismo tamaño que la original, blanco = área a editar |
| Instrucción de Edición | Describe cómo rellenar el área blanca | Las instrucciones en inglés suelen dar mejores resultados |
Ejemplo de Código: Inpainting Basado en Máscara
import openai
client = openai.OpenAI(
api_key="TU_CLAVE_API",
base_url="https://api.apiyi.com/v1"
)
# Entrada múltiple: imagen original + máscara + instrucción de texto
response = client.chat.completions.create(
model="gemini-2.5-flash-image-preview",
messages=[{
"role": "user",
"content": [
{
"type": "text",
"text": "Genera una imagen: La primera imagen es la foto original. La segunda imagen es una máscara donde las áreas blancas indican las regiones a editar. Reemplaza el área enmascarada con una escena de jardín hermosa."
},
{"type": "image_url", "image_url": {"url": "https://example.com/original.jpg"}},
{"type": "image_url", "image_url": {"url": "https://example.com/mask.png"}}
]
}]
)
Cuándo elegir el Inpainting Basado en Máscara
- Necesitas controlar con precisión los bordes de la edición (por ejemplo, modificar solo una camiseta sin afectar la piel)
- El área de edición tiene una forma irregular difícil de describir con lenguaje natural
- Necesitas procesar por lotes múltiples imágenes con la misma área
- Escenarios profesionales donde la transición de bordes es crítica
💡 Consejo práctico: La forma más sencilla de crear una máscara es usar un pincel en Photoshop o GIMP para pintar de blanco las áreas a modificar y luego exportar como PNG. Si te parece tedioso hacer máscaras manualmente, el modo Mask-Free de la Opción 1 suele ser suficiente para la mayoría de los casos.
Opción 3: Inpainting en Conversación Multiturno (Optimización Iterativa)
Nano Banana 2 permite realizar ediciones en múltiples turnos dentro de una misma sesión, donde cada turno puede modificar el resultado del anterior. Esto es ideal para ajustes finos.
Flujo de Conversación para Inpainting Multiturno
Turno 1: "Cambia el fondo por una oficina" → Obtienes la imagen editada A
Turno 2: Imagen A + "Cambia la taza del escritorio por una laptop" → Obtienes la imagen editada B
Turno 3: Imagen B + "Aumenta la luz general, añade efecto de luz de ventana" → Obtienes la imagen final C
Implementación de Código para Inpainting Multiturno
import openai
client = openai.OpenAI(
api_key="TU_CLAVE_API",
base_url="https://api.apiyi.com/v1"
)
# Construir la conversación multiturno
messages = [
# Turno 1: Edición inicial
{
"role": "user",
"content": [
{"type": "text", "text": "Reemplaza el fondo con una escena de oficina moderna"},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
]
}
]
# Solicitud del Turno 1
response_1 = client.chat.completions.create(
model="gemini-2.5-flash-image-preview",
messages=messages
)
# Agregar el resultado del Turno 1 al contexto
messages.append({"role": "assistant", "content": response_1.choices[0].message.content})
# Turno 2: Edición basada en el turno anterior
messages.append({
"role": "user",
"content": [{"type": "text", "text": "Ahora añade una laptop en el escritorio y haz la iluminación más cálida"}]
})
response_2 = client.chat.completions.create(
model="gemini-2.5-flash-image-preview",
messages=messages
)

Comparación de diferentes versiones del modelo Nano Banana Inpainting
La elección del modelo Nano Banana depende de tus necesidades de inpainting:
| Dimensión de comparación | Nano Banana 2 | Nano Banana Pro | Explicación |
|---|---|---|---|
| ID del modelo | gemini-3.1-flash-image-preview |
gemini-3.0-pro-image |
– |
| Edición sin máscara (Mask-Free) | ✅ Compatible | ✅ Compatible | Ambos admiten edición con lenguaje natural |
| Precisión de edición | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Pro tiene una comprensión semántica más fina |
| Velocidad de generación | 3-8 segundos | 10-20 segundos | La arquitectura Flash es 3-5 veces más rápida |
| Resolución máxima | 4K (4096px) | 2K (2048px) | Banana 2 tiene mayor resolución |
| Edición en múltiples rondas | ✅ Compatible | ✅ Compatible | Ambos admiten conversación en múltiples turnos |
| Precio de la API | ~$0.02/llamada | ~$0.04/llamada | Banana 2 reduce el costo a la mitad |
| Escenario recomendado | Edición por lotes, iteración rápida | Retoque profesional, necesidades de alta precisión | Se pueden invocar simultáneamente a través de la plataforma APIYI apiyi.com |
Recomendaciones para elegir el modelo Nano Banana Inpainting
- Edición diaria, procesamiento por lotes: Elige Nano Banana 2 — Velocidad rápida, costo bajo, resolución 4K
- Retoque profesional, material comercial: Elige Nano Banana Pro — La comprensión semántica y reproducción de color más precisas
- No estás seguro de cuál usar: Primero prueba con Nano Banana 2, si no estás satisfecho, cambia a Pro
Diferencias entre Nano Banana Inpainting y la edición en la versión web de Gemini
Muchos usuarios, después de experimentar la función de edición de imágenes en la versión web de Gemini (gemini.google.com), preguntan: ¿Esta API también puede hacerlo?
La respuesta es sí, pero con diferencias:
| Dimensión | Versión web de Gemini | API Nano Banana |
|---|---|---|
| Método de interacción | Selección con ratón + descripción textual | Invocación pura de API (texto + imagen) |
| Creación de máscara | Herramienta de pincel integrada en la web | Necesita preparar la imagen de máscara o usar el modo sin máscara (mask-free) |
| Precisión de control | Selección visualizada, intuitiva | Control a nivel de código, puede automatizarse |
| Procesamiento por lotes | No compatible | ✅ Admite invocación por lotes |
| Marca de agua | Tiene marca de agua SynthID | Tiene marca de agua SynthID |
| Capacidad de integración | Solo uso web | Se puede integrar en cualquier aplicación |
| Precio | Gratuito (con límites) | Tarificación por uso |
Diferencia clave: La experiencia de edición de imágenes de la versión web de Gemini es más interactiva y visual, el usuario puede dibujar la selección directamente con el ratón. La ventaja central de la versión API es la automatización y escalabilidad — puedes procesar imágenes por lotes en el código e integrarlo en el flujo de tu producto.
🎯 Recomendación técnica: Si tu necesidad es integrar funciones de edición de imágenes con IA en tu propio producto, la API es la única opción. A través de la plataforma APIYI apiyi.com puedes obtener acceso a interfaces más estables y soporte técnico.
Mejores Prácticas para Nano Banana Inpainting
Técnicas para Optimizar las Instrucciones de Edición
Una buena indicación puede mejorar significativamente los resultados del inpainting:
| Técnica | Instrucción Pobre ❌ | Instrucción Buena ✅ |
|---|---|---|
| Descripción Específica | "Cambia el fondo" | "Reemplaza el fondo con una playa al atardecer, con luz cálida dorada" |
| Especificar Áreas a Conservar | "Cambia el fondo" | "Reemplaza el fondo manteniendo a la persona completamente inalterada" |
| Describir la Iluminación | "Añade una lámpara" | "Añade una iluminación cálida y suave desde la parte superior izquierda, proyectando sombras suaves" |
| Describir el Material | "Cambia el suelo" | "Reemplaza el suelo con un piso de madera de roble claro con veta visible" |
| Limitar el Alcance | "Cambia el color" | "Cambia solo el color de la carrocería del coche a azul medianoche, mantén las ventanas y neumáticos sin cambios" |
Recomendaciones para Optimizar el Rendimiento de Nano Banana Inpainting
- Preprocesamiento de la Imagen de Entrada — Se recomienda entre 1024×1024 y 2048×2048; un tamaño mayor aumenta el tiempo de procesamiento.
- Priorizar Instrucciones en Inglés — La precisión de comprensión de las instrucciones en inglés es notablemente superior a la del chino.
- Enfocarse en una Modificación por Vez — Divide las ediciones complejas en múltiples pasos, haciendo solo una cosa en cada uno.
- Añadir el Prefijo "Generate an image:" — Indica claramente al modelo que debe generar una imagen, no una respuesta de solo texto.
Preguntas Frecuentes
P1: ¿La API de Nano Banana realmente admite inpainting? ¿No es solo para la versión web?
Sí, la API de Nano Banana es totalmente compatible con el inpainting para ediciones locales. Tanto Nano Banana 2 (gemini-3.1-flash-image-preview) como Nano Banana Pro (gemini-3.0-pro-image) admiten la edición de imágenes a través de la API. La característica más potente es el inpainting sin máscara (mask-free): no necesitas crear una máscara, solo describe lo que quieres editar con lenguaje natural y el modelo identificará y modificará automáticamente el área objetivo. Puedes obtener una clave API rápidamente para comenzar a probar a través de la plataforma APIYI apiyi.com.
P2: ¿Qué funciona mejor, Inpainting sin Máscara o con Máscara?
Depende del escenario. Para necesidades comunes como reemplazar fondos, eliminar objetos o cambiar colores, el modo sin máscara suele ser lo suficientemente preciso y mucho más conveniente. Para escenarios que requieren límites extremadamente estrictos (por ejemplo, cambiar solo el estampado de una camiseta sin afectar la piel), el modo con máscara ofrece un control más preciso. Se recomienda probar primero el modo sin máscara y, si no estás satisfecho, usar una máscara. La plataforma APIYI apiyi.com admite la invocación de ambos modos y es muy fácil cambiar entre ellos.
P3: ¿El inpainting de Nano Banana puede igualar los efectos de Photoshop?
En muchos escenarios, ya se acerca mucho e incluso supera a la función de Relleno según el contenido (Content-Aware Fill) de Photoshop. La ventaja de Nano Banana es que comprende la semántica de la escena: por ejemplo, al eliminar a una persona, sabe cómo debería ser el edificio o el paisaje detrás, no solo rellena con texturas simples. Sin embargo, para retoques comerciales extremadamente finos, se recomienda usar Photoshop para los ajustes finales.
P4: ¿Por qué a veces mi instrucción de edición no funciona y el modelo genera una imagen completamente nueva?
Este es un problema común. Asegúrate de que tu instrucción exprese claramente "editar" y no "generar". Se recomienda añadir el prefijo "Generate an image:" a la instrucción y especificar claramente qué partes de la imagen original se deben conservar. Por ejemplo: "Generate an image: Edita la foto original - reemplaza solo el cielo por una noche estrellada, mantén todo lo demás exactamente igual". Si el problema persiste, puedes intentar añadir "Do not change the composition or layout" para restringir al modelo.
P5: ¿Cuál es el costo de la invocación de la API para Nano Banana Inpainting?
La edición de imágenes con Nano Banana 2 cuesta aproximadamente $0.02 por invocación, y con Nano Banana Pro, aproximadamente $0.04 por invocación. Al usar la plataforma APIYI apiyi.com para las invocaciones, puedes obtener precios más ventajosos, con un costo real de aproximadamente ¥0.14 por invocación (Nano Banana 2), lo que la hace adecuada para escenarios de edición de imágenes por lotes.
Resumen
La capacidad de inpainting (edición local) de Nano Banana es mucho más potente de lo que muchos desarrolladores imaginan. Las 3 soluciones tienen sus escenarios de aplicación:
- Edición con lenguaje natural sin máscara (Mask-Free) — La más conveniente, ideal para la mayoría de escenarios, se recomienda usar primero.
- Modificación precisa con máscara (Mask-Based) — La más precisa, adecuada para control de píxeles a nivel profesional.
- Edición iterativa en conversación multironda — La más flexible, perfecta para modificaciones complejas y progresivas.
Independientemente de la solución elegida, el núcleo consiste en enviar la imagen y las instrucciones de edición a través de la API estándar de Chat Completions. Se recomienda utilizar la plataforma APIYI (apiyi.com) para comenzar las pruebas rápidamente; podrás ejecutar tu primer ejemplo de inpainting en 5 minutos.
Referencias
-
Documentación oficial de Google AI – Generación de imágenes con Nano Banana
- Enlace:
ai.google.dev/gemini-api/docs/image-generation - Descripción: Documentación completa de la API de generación y edición de imágenes de Gemini.
- Enlace:
-
Blog de Google Developers – Gemini 2.5 Flash Image
- Enlace:
developers.googleblog.com/introducing-gemini-2-5-flash-image/ - Descripción: Explicación detallada de la arquitectura técnica y capacidades de Nano Banana.
- Enlace:
-
DataCamp – Guía completa de Gemini 2.5 Flash Image
- Enlace:
datacamp.com/tutorial/gemini-2-5-flash-image-guide - Descripción: Guía práctica con ejemplos de código completos.
- Enlace:
📝 Autor: Equipo de APIYI | Para intercambio técnico y acceso a la API, visita apiyi.com
