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

# MAI-Image-2.6 Generación de imágenes

> Texto a imagen, edición individual, composición con hasta 5 imágenes de referencia y búsqueda web. Versiones de alta calidad y Flash.

## Selección del modelo

| ID del modelo | Características |
| - | - |
| `mai-image-2.6` | Versión de alta calidad para usos que priorizan el resultado visual |
| `mai-image-2.6-flash` | Versión más rápida y económica, con calidad ligeramente inferior |

Ambos modelos tienen las mismas capacidades y parámetros y generan solo 1 imagen por solicitud. Consulte los [precios de los modelos](https://apimart.ai/pricing).

<Info>
  Este endpoint es asíncrono. Tras el envío, obtenga el ID de `data[0].task_id` y use la [consulta de tareas](/es/api-reference/tasks/status). Consulte cada 3–5 segundos con un tiempo de espera total de 3 minutos. Deténgase cuando el estado sea `completed` o `failed`.
</Info>

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url https://api.apimart.ai/v1/images/generations \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
      "model": "mai-image-2.6",
      "prompt": "Póster fotorrealista de un campus universitario al atardecer, iluminación cinematográfica",
      "size": "16:9",
      "resolution": "2K"
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.apimart.ai/v1/images/generations",
      headers={"Authorization": "Bearer <token>"},
      json={
          "model": "mai-image-2.6",
          "prompt": "Póster fotorrealista de un campus universitario al atardecer, iluminación cinematográfica",
          "size": "16:9",
          "resolution": "2K"
      }
  )
  response.raise_for_status()
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.apimart.ai/v1/images/generations", {
    method: "POST",
    headers: {
      Authorization: "Bearer <token>",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      model: "mai-image-2.6",
      prompt: "Póster fotorrealista de un campus universitario al atardecer, iluminación cinematográfica",
      size: "16:9",
      resolution: "2K"
    })
  });
  if (!response.ok) throw new Error(await response.text());
  console.log(await response.json());
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "code": 200,
    "data": [
      {
        "status": "submitted",
        "task_id": "task_01K..."
      }
    ]
  }
  ```
</ResponseExample>

## Encabezados de la solicitud

<ParamField header="Authorization" type="string" required>
  Autenticación Bearer con el formato `Bearer <token>`, donde `<token>` es su APIMart API Key.
</ParamField>

## Parámetros de la solicitud

<ParamField body="model" type="string" required>
  ID del modelo: `mai-image-2.6` o `mai-image-2.6-flash`.
</ParamField>

<ParamField body="prompt" type="string" required>
  Descripción de la imagen o instrucciones de edición. Admite chino e inglés, hasta aproximadamente 32.000 tokens (no caracteres).
</ParamField>

<ParamField body="size" type="string" default="1:1">
  Admite una relación de aspecto (como `16:9`), dimensiones en píxeles (como `1536x1024`) o `auto`.

  * Relación de aspecto: cualquier proporción de enteros entre `1:4` y `4:1`, junto con `resolution`.
  * Píxeles: admite `anchoxalto`, `ancho*alto` o `ancho×alto`. En este modo, `resolution` no determina las dimensiones.
  * `auto`: el modelo elige la relación según el prompt.

  Solo para texto a imagen. Con imágenes de referencia, el modelo determina las dimensiones.
</ParamField>

<ParamField body="resolution" type="string" default="1K">
  Admite `1K` y `2K`, también en minúsculas. Otros niveles, como `4K`, devuelven HTTP 400.

  Selecciona el nivel de tamaño para texto a imagen con una relación de aspecto. No calcula dimensiones si se usan píxeles exactos. No permite fijar las dimensiones en imagen a imagen.
</ParamField>

<ParamField body="width" type="integer">
  Ancho exacto en píxeles. Debe enviarse junto con `height`. Ambos tienen prioridad sobre `size` y `resolution` para texto a imagen.

  Ancho y alto deben ser al menos 768, con un máximo total de 2.359.296 píxeles. Use múltiplos de 32; de lo contrario, cada dimensión se redondea hacia abajo a un múltiplo de 32.

  Este parámetro no determina las dimensiones en imagen a imagen.
</ParamField>

<ParamField body="height" type="integer">
  Alto exacto en píxeles. Debe enviarse con `width` y seguir los límites anteriores. No determina las dimensiones en imagen a imagen.
</ParamField>

<ParamField body="image_urls" type="string[]">
  Lista de hasta 5 referencias. Omítala para texto a imagen; una imagen permite edición individual y varias permiten composición.

  Cada elemento admite una URL HTTP(S) de imagen accesible públicamente o una Data URL Base64 como `data:image/png;base64,...`.

  Admite JPEG y PNG; WEBP y GIF se convierten automáticamente a PNG. Las URL deben ser accesibles públicamente o la tarea fallará.

  **En imagen a imagen, el modelo decide las dimensiones según las referencias**, aproximadamente 1 millón de píxeles y una relación similar. `size`, `resolution`, `width` y `height` no pueden fijar esas dimensiones.
</ParamField>

<ParamField body="auto_aspect_ratio" type="boolean" default="false">
  Con `true`, el modelo elige la relación según el prompt, equivalente a `size: "auto"`.
</ParamField>

<ParamField body="web_grounding" type="boolean" default="false">
  Con `true`, consulta información en tiempo real antes de generar, útil para personas, lugares o eventos reales.
</ParamField>

<ParamField body="n" type="integer" default="1">
  Solo admite `1`. Envíe tareas separadas para varias imágenes. Los valores superiores a 1 devuelven HTTP 400.
</ParamField>

## Dimensiones de texto a imagen

| Necesidad | Parámetros |
| - | - |
| Cuadrado predeterminado | Omitir tamaño: `1:1` + `1K`, salida 1024×1024 |
| Resolución + relación de aspecto | `size: "16:9"`, `resolution: "2K"` |
| Píxeles exactos | `size: "1536x1024"`, o `width: 1536`, `height: 1024` |
| Relación automática | `size: "auto"` o `auto_aspect_ratio: true` |

Prioridad en texto a imagen: pareja `width` / `height` → `size` en píxeles → `size` como relación combinado con `resolution`.

### Niveles y relaciones de aspecto

| Relación de aspecto | 1K | 2K |
| - | - | - |
| 1:1 | 1024×1024 | 1536×1536 |
| 4:3 / 3:4 | 1152×864 / 864×1152 | 1760×1312 / 1312×1760 |
| 3:2 / 2:3 | 1248×832 / 832×1248 | 1856×1248 / 1248×1856 |
| 16:9 / 9:16 | 1344×768 / 768×1344 | 2048×1152 / 1152×2048 |
| 2:1 / 1:2 | 1536×768 / 768×1536 | 2144×1056 / 1056×2144 |
| 21:9 / 9:21 | 1792×768 / 768×1792 | 2336×992 / 992×2336 |
| 4:1 / 1:4 | 3072×768 / 768×3072 | 3072×768 / 768×3072 |

Las dimensiones se convierten a múltiplos de 32. El lado corto debe ser al menos 768, por lo que las relaciones extremas pueden superar aproximadamente 1 millón de píxeles incluso en `1K`. Se factura el uso de tokens correspondiente a los píxeles reales de salida.

### Límites de píxeles exactos

* Ancho y alto deben ser al menos 768.
* Ancho × alto no debe superar 2.359.296 (1536 × 1536).
* Cada dimensión se redondea hacia abajo a un múltiplo de 32. Por ejemplo, `1000x1000` produce `992x992`. Use múltiplos de 32 para dimensiones exactas.

Se admiten `1536x1024`, `2048x1152` y `3072x768`. `512x512` se rechaza por lados demasiado pequeños; `2048x2048` supera el total de píxeles.

<Warning>
  El límite es de **píxeles totales**, no de 1536 por lado. Por tanto, `2048x1152` y `3072x768` son válidos, pero no se admite el nivel 4K. Estos ajustes solo se aplican a texto a imagen.
</Warning>

## Ejemplos de solicitudes

### Píxeles exactos y búsqueda web

```json theme={null}
{
  "model": "mai-image-2.6-flash",
  "prompt": "La torre Eiffel de noche con fuegos artificiales, estilo póster de viajes",
  "width": 2048,
  "height": 1152,
  "web_grounding": true
}
```

### Edición individual

```json theme={null}
{
  "model": "mai-image-2.6",
  "prompt": "Haz que la bicicleta sea azul y añade un perro pequeño a su lado",
  "image_urls": ["https://example.com/bicycle.png"]
}
```

### Composición de varias imágenes

```json theme={null}
{
  "model": "mai-image-2.6-flash",
  "prompt": "Combina ambas imágenes de referencia en una foto de producto limpia y futurista",
  "image_urls": [
    "https://example.com/first.png",
    "https://example.com/second.jpg"
  ]
}
```

Sustituya las URL de ejemplo por direcciones de imágenes accesibles.

## Parámetros no admitidos

`quality`, `style`, `background`, `output_format`, `response_format` y `mask_url` no se admiten y se ignoran si se envían. La salida siempre es PNG. No se admite edición con máscaras.

## Respuesta del envío

<ResponseField name="code" type="integer">
  Código de estado de la respuesta. `200` indica éxito.
</ResponseField>

<ResponseField name="data" type="array">
  Resultado del envío de la tarea.

  <Expandable title="Mostrar campos de la tarea">
    <ResponseField name="status" type="string">
      `submitted` indica envío correcto, no generación terminada.
    </ResponseField>

    <ResponseField name="task_id" type="string">
      ID de la tarea para consultar el estado y los resultados.
    </ResponseField>
  </Expandable>
</ResponseField>

## Consultar resultados

```bash theme={null}
curl --request GET \
  --url https://api.apimart.ai/v1/tasks/task_01K... \
  --header 'Authorization: Bearer <token>'
```

Ejemplo de respuesta correcta (la URL de imagen es ilustrativa):

```json theme={null}
{
  "code": 200,
  "data": {
    "id": "task_01K...",
    "status": "completed",
    "progress": 100,
    "result": {
      "images": [
        {
          "url": ["https://example.com/generated-image.png"]
        }
      ]
    }
  }
}
```

| Estado | Acción |
| - | - |
| `pending` | En cola; seguir consultando |
| `processing` | Procesando; seguir consultando |
| `completed` | Éxito; obtener enlaces del array `data.result.images[0].url` |
| `failed` | Fallo; leer `data.error.message` y detener las consultas. Reembolso completo |

## Facturación

Se factura el uso real de tokens de entrada y salida. Consulte los [precios de los modelos](https://apimart.ai/pricing).

* Tokens de salida de imagen = ancho real × alto ÷ 1024. 1024×1024 corresponde a 1024 tokens y 1536×1536 a 2304 tokens.
* Tokens de entrada por referencia ≈ ancho × alto ÷ 1024. Los prompts de texto también cuentan como entrada.
* Al enviar se cobra un importe según el nivel; tras el éxito se ajusta al uso real mediante reembolso o cobro adicional.
* Las tareas fallidas reciben reembolso completo automático. Los errores de parámetros rechazados al enviar no crean tareas ni generan cargos.

## Errores frecuentes

| HTTP | Causa y solución |
| - | - |
| 400 | `resolution` no admitida, como `4K`; usar `1K` o `2K` |
| 400 | Ancho o alto inferior a 768, o más de 2.359.296 píxeles totales |
| 400 | Solo se envió `width` o `height`; deben enviarse juntos |
| 400 | Relación fuera de `1:4` a `4:1`, o formato de `size` desconocido |
| 400 | `n` superior a 1 o más de 5 referencias |

Si falla una tarea, revise los errores de descarga o de seguridad del contenido y modifique el prompt o las referencias antes de reintentar. La edición de fotos realistas con menores puede ser bloqueada por las políticas de seguridad.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.