> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Instrucciones de integración de Nano Banana Images API

> Nano Banana Image Generation API guide - Ace Data Cloud

Este artículo presenta la integración y el uso de Nano Banana Images API. Esta interfaz admite dos capacidades: **generación de imágenes (generate)** y **edición de imágenes (edit)**.

## Proceso de solicitud

Para utilizar Nano Banana Images API, primero obtenga su API Token en la [consola de Ace Data Cloud](https://platform.acedata.cloud/console/applications) y consérvelo como respaldo.

![](https://cdn.acedata.cloud/dvc3cg.jpg)

Si aún no ha iniciado sesión o no se ha registrado, será redirigido automáticamente a la página de inicio de sesión para invitarle a registrarse e iniciar sesión; al completarlo, regresará automáticamente a la página actual.

**Un solo API Token puede invocar todos los servicios de la plataforma, sin necesidad de solicitar uno por separado para cada servicio.** La primera solicitud incluirá crédito gratuito para que pueda probarlo sin coste; cuando el crédito sea insuficiente, puede recargar saldo general en la [consola](https://platform.acedata.cloud/console/coin).

> 📘 Documentación completa: [Nano Banana Images API →](https://platform.acedata.cloud/documents/nano-banana-images)

## Descripción general de la interfaz

* **Base URL**：`https://api.acedata.cloud`
* **Endpoint**：`POST /nano-banana/images`
* **Método de autenticación**：Incluir `authorization: Bearer {token}` en el HTTP Header
* **Encabezados de solicitud**：
  * `accept: application/json`
  * `content-type: application/json`
* **Acciones (action)**：
  * `generate`：Genera imágenes según indicaciones de texto
  * `edit`：Edita basándose en imágenes proporcionadas
* **Modelos (model)**（opcionales）：
  * `nano-banana`（predeterminado）：Basado en Gemini 2.5 Flash Image, rápido y de bajo coste
  * `nano-banana-2-lite`：Basado en Gemini 3.1 Flash Lite Image, solo admite 1K y genera rápidamente
  * `nano-banana-2`：Basado en Gemini 3.1 Flash Image Preview, calidad de nivel Pro + velocidad Flash
  * `nano-banana-pro`：Basado en Gemini 3 Pro Image Preview, máxima calidad
  * `nano-banana:official`、`nano-banana-2-lite:official`、`nano-banana-2:official`、`nano-banana-pro:official`：Versiones de canal oficial de los modelos correspondientes, con mejor calidad de imagen y estabilidad, y distinta facturación
* **Callback asíncrono**：Opcional; recibe notificaciones de finalización de tareas y resultados mediante `callback_url`
* **Cantidad de imágenes**：Opcional; especifique de 1 a 4 mediante `count`, 1 por defecto; cada imagen se completa mediante una llamada de generación independiente; los fallos técnicos habituales o los rechazos de seguridad del proveedor solo afectan a la llamada correspondiente, las demás imágenes exitosas se devuelven normalmente y se facturan según la cantidad real de imágenes generadas correctamente

## Inicio rápido: generar imágenes（`action=generate`）

**Parámetros mínimos requeridos**：`action`、`prompt`
Cuando solo desee generar una imagen directamente a partir de una indicación, establezca `action` en `generate` y proporcione un `prompt` claro.

### Ejemplo de solicitud（cURL）

```bash theme={null}
curl -X POST 'https://api.acedata.cloud/nano-banana/images' \
  -H 'authorization: Bearer {token}' \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -d '{
    "action": "generate",
    "model": "nano-banana-pro",
    "prompt": "A photorealistic close-up portrait of an elderly Japanese ceramicist with deep, sun-etched wrinkles and a warm, knowing smile. He is carefully inspecting a freshly glazed tea bowl. The setting is his rustic, sun-drenched workshop. The scene is illuminated by soft, golden hour light streaming through a window, highlighting the fine texture of the clay. Captured with an 85mm portrait lens, resulting in a soft, blurred background (bokeh). The overall mood is serene and masterful. Vertical portrait orientation.",
    "count": 1
  }'
```

### Ejemplo de solicitud（Python）

```python theme={null}
import requests

url = "https://api.acedata.cloud/nano-banana/images"
headers = {
    "authorization": "Bearer {token}",
    "accept": "application/json",
    "content-type": "application/json",
}
payload = {
    "action": "generate",
    "model": "nano-banana-pro",
    "prompt": (
        "A photorealistic close-up portrait of an elderly Japanese ceramicist "
        "with deep, sun-etched wrinkles and a warm, knowing smile. He is carefully "
        "inspecting a freshly glazed tea bowl. The setting is his rustic, sun-drenched "
        "workshop. The scene is illuminated by soft, golden hour light streaming through "
        "a window, highlighting the fine texture of the clay. Captured with an 85mm "
        "portrait lens, resulting in a soft, blurred background (bokeh). The overall mood "
        "is serene and masterful. Vertical portrait orientation."
    ),
    "count": 1
}
resp = requests.post(url, json=payload, headers=headers)
print(resp.json())
```

### Ejemplo de respuesta exitosa

```json theme={null}
{
  "success": true,
  "task_id": "70e6931b-6e34-43db-9e36-8765e2809d04",
  "trace_id": "60df8d38-f265-4986-aec7-75c9220bced2",
  "data": [
    {
      "prompt": "A photorealistic close-up portrait of an elderly Japanese ceramicist with deep, sun-etched wrinkles and a warm, knowing smile. He is carefully inspecting a freshly glazed tea bowl. The setting is his rustic, sun-drenched workshop. The scene is illuminated by soft, golden hour light streaming through a window, highlighting the fine texture of the clay. Captured with an 85mm portrait lens, resulting in a soft, blurred background (bokeh). The overall mood is serene and masterful. Vertical portrait orientation.",
      "image_url": "https://cdn.acedata.cloud/assets/examples/nanobanana/1d0160b4-93f9-4229-8926-ea9ef0bed336-34b3dc2195e8.png"
    }
  ]
}
```

### Descripción de campos

* `success`：Si esta solicitud se realizó correctamente.
* `task_id`：ID de la tarea.
* `trace_id`：ID de rastreo de la cadena, que facilita la investigación de problemas.
* `count`：Cantidad de imágenes solicitadas para generar o editar; admite de 1 a 4 y el valor predeterminado es 1. `data` solo incluye las imágenes generadas correctamente y se factura según la cantidad realmente devuelta. Cada llamada de generación utiliza obligatoriamente la política de seguridad nativa del proveedor; el rechazo de una llamada no afectará a otras llamadas exitosas, y se devuelve 403 cuando todas las llamadas son rechazadas.
* `data[]`：Lista de resultados.
  * `prompt`：Indicación utilizada para la generación (eco).
  * `image_url`：URL directa de la imagen generada.

> Nota: `/nano-banana/images` solo requiere `action` y `prompt` para generar imágenes

## Editar imágenes（`action=edit`）

Cuando desee editar basándose en imágenes existentes, establezca `action` en `edit`, introduzca mediante `image_urls` una lista de enlaces de las imágenes que desea editar (una o varias imágenes) y proporcione al mismo tiempo un `prompt` que describa el objetivo de la edición.

Por ejemplo, aquí proporcionamos una foto de una persona y una foto de una prenda, y queremos que la persona lleve esta prenda; puede introducir simultáneamente los enlaces de las imágenes y especificar `action` como `edit`. La URL puede ser una URL HTTP, un enlace públicamente accesible con protocolo `https` o `http`, o también una imagen codificada en Base64, como `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAVGCAMAAAA6u2FyAAADAFBMVEXq6uwdHCEeHyMdHS....`

### Ejemplo de solicitud（cURL）

```bash theme={null}
curl -X POST 'https://api.acedata.cloud/nano-banana/images' \
  -H 'authorization: Bearer {token}' \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -d '{
    "action": "edit",
    "prompt": "let this man wear on this T-shirt",
    "image_urls": [
      "https://cdn.acedata.cloud/v8073y.png",
      "https://cdn.acedata.cloud/44xlah.png"
    ],
    "count": 1
  }'
```

### Ejemplo de solicitud (Python)

```python theme={null}
import requests

url = "https://api.acedata.cloud/nano-banana/images"
headers = {
    "authorization": "Bearer {token}",
    "accept": "application/json",
    "content-type": "application/json",
}
payload = {
    "action": "edit",
    "prompt": "let this man wear on this T-shirt",
    "image_urls": [
        "https://cdn.acedata.cloud/v8073y.png",
        "https://cdn.acedata.cloud/44xlah.png"
    ],
    "count": 1
}
resp = requests.post(url, json=payload, headers=headers)
print(resp.json())
```

### Ejemplo de respuesta exitosa

```json theme={null}
{
  "success": true,
  "task_id": "93f11baf-347b-4bb4-9520-8653cb46d6a3",
  "trace_id": "a9063166-26ed-4451-85b5-54e896817c69",
  "data": [
    {
      "prompt": "let this man wear on this T-shirt",
      "image_url": "https://platform.cdn.acedata.cloud/nanobanana/8e9e0253-26f4-45b9-b3f8-ac1aed1c284b.png"
    }
  ]
}
```

### Descripción de los campos

* `image_urls[]`: Lista de URL de imágenes que se van a editar (deben ser accesibles públicamente). Se pueden enviar varias; el servicio combinará estos materiales con `prompt` para completar la edición.
* Los demás campos son los mismos que los devueltos por «Generar imagen».

***

## Devolución de llamada asíncrona (opcional, recomendada)

La generación o edición puede requerir cierto tiempo. Para evitar que las conexiones largas ocupen recursos, se recomienda usar una **devolución de llamada Webhook** mediante `callback_url`:

1. Agrega `callback_url` al cuerpo de la solicitud, por ejemplo, la dirección Webhook de tu servidor (debe ser accesible públicamente y admitir POST JSON).
2. La API **devolverá inmediatamente** una respuesta que incluye `task_id` (o que incluye el resultado básico).
3. Cuando la tarea se complete, la plataforma enviará el JSON completo a `callback_url` mediante `POST`. Puedes asociar la solicitud y el resultado mediante `task_id`.

**Ejemplo de carga útil de devolución de llamada** (la estructura de campos es la misma que la respuesta exitosa síncrona):

```json theme={null}
{
  "success": true,
  "task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c",
  "trace_id": "9b4b1ff3-90f2-470f-b082-1061ec2948cc",
  "data": [
    {
      "prompt": "a white siamese cat",
      "image_url": "https://platform.cdn.acedata.cloud/nanobanana/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.png"
    }
  ]
}
```

***

## Manejo de errores

Cuando la llamada falle, se devolverá un formato de error estándar y un ID de seguimiento. Los errores comunes son los siguientes:

* **400 `token_mismatched`**: La solicitud no es válida o hay un error en los parámetros.
* **400 `api_not_implemented`**: La interfaz no está implementada (contacta con soporte).
* **401 `invalid_token`**: Falló la autenticación o falta el Token.
* **403 `forbidden`**: La política de seguridad nativa del proveedor rechazó la solicitud o el resultado de la generación. Esta llamada no devolverá imágenes ni se facturará; las solicitudes con varias imágenes aún pueden devolver y facturar otras llamadas exitosas.
* **429 `too_many_requests`**: Se excedió el límite de frecuencia de solicitudes.
* **500 `api_error`**: Excepción del servidor.

### Ejemplo de respuesta de error

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "Internal server error."
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

***

## Comparación de parámetros y consideraciones

* **Obligatorios**: `action`, `prompt`
* **Exclusivos para edición**: `image_urls` (matriz, al menos 1 elemento)
* **Opcionales**: `model` (el valor predeterminado es `nano-banana`; opcionalmente `nano-banana-2-lite`, `nano-banana-2`, `nano-banana-pro` o las versiones del canal oficial correspondientes con `:official`), `aspect_ratio` (relación de aspecto, como `1:1`, `16:9`), `resolution` (resolución, como `1K`, `2K`, `4K`; `nano-banana-2-lite` solo admite `1K`), `callback_url` (para devolución de llamada asíncrona)
* **Headers**: Debe proporcionarse `authorization: Bearer {token}`; se recomienda establecer `accept` como `application/json`
* **Accesibilidad de imágenes**: `image_urls` debe ser un enlace directo accesible públicamente (HTTP/HTTPS); se recomienda usar HTTPS
* **Idempotencia y seguimiento**: Conserva `task_id` y `trace_id` para facilitar la resolución de problemas y la asociación de resultados
