Guías de integración · 2026-10-10
Editar con imágenes de referencia, varias referencias y try-on en Nano Banana 2.1
Edita imágenes con google/gemini-nano-banana-2.1: sube la referencia a /v1/files y envíala a /v1/images/generations con file_ids, hasta 8 referencias.
Respuesta corta: sube la referencia a /v1/files y envíala con file_ids
LLMTR (llmtr.com) es una pasarela que da acceso a modelos de lenguaje alojados en Turquía y en proveedores globales a través de una única API compatible con OpenAI. Para editar una imagen con Nano Banana 2.1, primero subes la referencia a https://llmtr.com/v1/files, pones el id devuelto en el campo file_ids y envías la solicitud al endpoint /v1/images/generations con el modelo google/gemini-nano-banana-2.1. Una solicitud admite 8 imágenes de referencia en total; varias referencias y try-on usan el mismo flujo.
Google presenta Nano Banana 2.1 como un modelo de generación de imágenes y edición conversacional. LLMTR no tiene un endpoint de edición aparte: /v1/images/edits no está disponible para los modelos de Google, una solicitud enviada allí con este modelo devuelve 400 y la respuesta te remite al flujo de /v1/images/generations. Las referencias y el prompt que describe el cambio van en la misma solicitud.
Cómo editar una imagen de referencia con Nano Banana 2.1
Hay dos pasos. Primero sube la imagen como formulario multipart a /v1/files con los campos provider=google y purpose=vision_reference; la respuesta devuelve un id. Después pon ese id en la lista file_ids y explica en el prompt qué debe cambiar y qué debe mantenerse. El ejemplo de abajo lleva una foto de producto a una encimera de mármol y pide que la etiqueta quede igual.
Escribe el prompt como una nota de corrección: indica qué cambia y qué se conserva, por ejemplo 'cambia el fondo, conserva el producto y su etiqueta'. size acepta 1K, 2K o 4K, y aspect_ratio acepta 1:1, 3:4, 4:3, 9:16 o 16:9. n no se aplica en este modelo; para varias variaciones de la misma edición, repite la solicitud y reutiliza el id subido.
Dos comandos curl: suben una foto de producto a /v1/files y piden una edición 2K en 4:3 con el id devuelto.
curl https://llmtr.com/v1/files \
-H "Authorization: Bearer $LLMTR_API_KEY" \
-F "provider=google" \
-F "purpose=vision_reference" \
-F "file=@./product.jpg"
# -> {"id": "file_product_xxx", ...}
curl https://llmtr.com/v1/images/generations \
-H "Authorization: Bearer $LLMTR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemini-nano-banana-2.1",
"prompt": "Place this product on a marble kitchen counter. Keep the label, shape and colours exactly as in the reference.",
"file_ids": ["file_product_xxx"],
"size": "2K",
"aspect_ratio": "4:3"
}'
Varias referencias: elegir entre file_ids e image_urls
Para más de una referencia, pon varios ids en la lista file_ids; el producto, el entorno y la imagen de estilo pueden ir en la misma solicitud. Los campos file_id, file_ids, image_url e image_urls se pueden combinar, un valor repetido cuenta una vez y el límite total es de 8 imágenes. En el prompt, nombra las imágenes por orden: 'el producto de la primera imagen, el entorno de la segunda'.
Para una referencia pequeña y puntual, una data URL en base64 dentro de image_urls basta en una sola solicitud. Para imágenes grandes y flujos que reutilizan la misma referencia, /v1/files encaja mejor: el cuerpo JSON sigue siendo pequeño y el archivo se puede reutilizar durante 7 días.
| Aspecto | file_ids (subida con /v1/files) | image_urls (data URL) |
|---|---|---|
| Solicitudes | Dos: subida y generación | Una |
| Imágenes grandes | El cuerpo JSON sigue pequeño | Base64 agranda la imagen alrededor de un tercio |
| Reutilizar una referencia | Se sube una vez, el id sirve 7 días | Se reenvía en cada solicitud |
| Prueba puntual | Requiere dos pasos | Basta una solicitud |
| Almacenamiento | El archivo se borra a los 7 días | No se guarda |
| Límite | 8 imágenes entre todos los campos de referencia | 8 imágenes entre todos los campos de referencia |
Try-on: unir una persona y una prenda en una solicitud
El try-on une dos referencias con sentido: la foto de una persona y una prenda fotografiada aparte. Sube las dos imágenes con /v1/files y pon los ids en file_ids con la persona primero y la prenda después. En el prompt, pide que se mantengan la pose, la cara y la luz de la primera imagen y el estampado y los colores de la segunda.
El mismo enfoque sirve para colocar un producto en una escena o para montar un anuncio a partir de dos fotos de producto. El ejemplo en Python sube los dos archivos, envía el try-on como imagen 2K en 3:4 y guarda el resultado.
Ejemplo en Python que sube una foto de persona y una de chaqueta, envía el try-on con file_ids y guarda el resultado en try-on.png.
import base64
import os
import requests
BASE_URL = "https://llmtr.com/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["LLMTR_API_KEY"]}
def upload(path):
with open(path, "rb") as image_file:
response = requests.post(
BASE_URL + "/files",
headers=HEADERS,
data={"provider": "google", "purpose": "vision_reference"},
files={"file": image_file},
timeout=60,
)
response.raise_for_status()
return response.json()["id"]
person_id = upload("person.jpg")
garment_id = upload("garment.jpg")
response = requests.post(
BASE_URL + "/images/generations",
headers=HEADERS,
json={
"model": "google/gemini-nano-banana-2.1",
"prompt": (
"Dress the person in the first image with the jacket from the second image. "
"Keep the pose, face and lighting of the first image and the pattern and colours of the jacket."
),
"file_ids": [person_id, garment_id],
"size": "2K",
"aspect_ratio": "3:4",
},
timeout=120,
)
response.raise_for_status()
with open("try-on.png", "wb") as output:
output.write(base64.b64decode(response.json()["data"][0]["b64_json"]))
¿Cómo se facturan las solicitudes con referencias?
Las imágenes de referencia cuentan como tokens de entrada y se facturan al mismo precio que el prompt de texto, 1,50 $ por 1M de tokens. La imagen de salida se cobra según su tamaño; los equivalentes por imagen de Google son 0,0336 $ para 1K, 0,0504 $ para 2K y 0,113 $ para 4K. Si el modelo razona antes de editar, esos tokens se facturan como salida de texto a 7,50 $ por 1M de tokens.
La parte de entrada crece con el número de referencias: una solicitud con ocho referencias lleva más tokens de entrada que una con una sola. Cuando la misma entrada se repite, una parte puede leerse de la caché y facturarse a 0,15 $, pero no está garantizado. El importe real por clave aparece en la página de uso del Dashboard.
Primeros pasos y errores frecuentes
Paso 1: crea una cuenta en llmtr.com y recarga crédito prepago. Paso 2: crea una clave en Dashboard > API Keys y guárdala en la variable de entorno LLMTR_API_KEY. Paso 3: sube la referencia con /v1/files y envía la solicitud a /v1/images/generations con el id devuelto. La misma clave sirve para todos los modelos del catálogo.
Errores frecuentes: enviar la edición a /v1/images/edits (devuelve 400 con modelos de Google); usar un id de más de 7 días (el archivo ya no existe, súbelo de nuevo); adjuntar más de 8 referencias; enviar n para varias imágenes (no se aplica, repite la solicitud).
Editar una imagen de referencia con Nano Banana 2.1
Crea una clave API, sube la referencia con /v1/files y envía una solicitud a /v1/images/generations con file_ids y google/gemini-nano-banana-2.1.
- Clave API. Crea una cuenta en llmtr.com, recarga crédito y crea una clave en Dashboard > API Keys.
- Subir la referencia. Sube la imagen a https://llmtr.com/v1/files con provider=google y purpose=vision_reference y guarda el id devuelto.
- Solicitud de edición. Envía una solicitud a https://llmtr.com/v1/images/generations con el modelo, el prompt, file_ids, size y aspect_ratio; decodifica b64_json para guardar el resultado.
Frequently asked questions
¿Cuántas imágenes de referencia puedo enviar a Nano Banana 2.1?
Como máximo 8 imágenes por solicitud sumando los campos file_id, file_ids, image_url e image_urls. Un valor repetido cuenta una vez.
¿Nano Banana 2.1 funciona con /v1/images/edits?
No. /v1/images/edits no está disponible para los modelos de Google y devuelve 400. La edición se hace en /v1/images/generations pasando las referencias en file_ids.
¿Cuánto tiempo se guardan las imágenes de referencia subidas?
Los archivos subidos con /v1/files se borran automáticamente a los 7 días. Durante ese tiempo puedes reutilizar el mismo id en varias solicitudes.