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

# MAI-Image-2.6 Geração de imagens

> Texto para imagem, edição individual, composição com até 5 imagens de referência e pesquisa na web. Versões de alta qualidade e Flash.

## Escolha do modelo

| ID do modelo | Características |
| - | - |
| `mai-image-2.6` | Versão de alta qualidade para usos que priorizam a qualidade visual |
| `mai-image-2.6-flash` | Versão mais rápida e econômica, com qualidade ligeiramente inferior |

Os dois modelos têm os mesmos recursos e parâmetros e geram apenas 1 imagem por solicitação. Consulte os [preços dos modelos](https://gccai.heqingsong.uk/pricing).

> [!NOTE]
>
> Este endpoint é assíncrono. Após o envio, obtenha o ID em `data[0].task_id` e use a [consulta de tarefas](https://gccai.heqingsong.uk/pt/api-reference/tasks/status.md). Consulte a cada 3–5 segundos com um limite total de espera de 3 minutos. Pare quando o status for `completed` ou `failed`.

```bash cURL theme={null}
curl --request POST \
  --url https://gccai.heqingsong.uk/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "mai-image-2.6",
    "prompt": "Pôster fotorrealista de um campus universitário ao pôr do sol, iluminação cinematográfica",
    "size": "16:9",
    "resolution": "2K"
  }'
```

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

response = requests.post(
    "https://gccai.heqingsong.uk/v1/images/generations",
    headers={"Authorization": "Bearer <token>"},
    json={
        "model": "mai-image-2.6",
        "prompt": "Pôster fotorrealista de um campus universitário ao pôr do sol, iluminação cinematográfica",
        "size": "16:9",
        "resolution": "2K"
    }
)
response.raise_for_status()
print(response.json())
```

```javascript JavaScript theme={null}
const response = await fetch("https://gccai.heqingsong.uk/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 um campus universitário ao pôr do sol, iluminação cinematográfica",
    size: "16:9",
    resolution: "2K"
  })
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
```

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

## Cabeçalhos da solicitação

**Authorization** `string` *required*

Autenticação Bearer no formato `Bearer <token>`, em que `<token>` é sua GccAi API Key.

## Parâmetros da solicitação

**model** `string` *required*

ID do modelo: `mai-image-2.6` ou `mai-image-2.6-flash`.

**prompt** `string` *required*

Descrição da imagem ou instruções de edição. Suporta chinês e inglês, até aproximadamente 32.000 tokens (não caracteres).

**size** `string` (default: 1:1)

Aceita proporção (como `16:9`), dimensões em pixels (como `1536x1024`) ou `auto`.

* Proporção: qualquer razão de inteiros de `1:4` a `4:1`, junto com `resolution`.
* Pixels: aceita `larguraxaltura`, `largura*altura` ou `largura×altura`. Nesse modo, `resolution` não determina as dimensões.
* `auto`: o modelo escolhe a proporção com base no prompt.

Apenas para texto para imagem. Com referências, o modelo determina as dimensões de saída.

**resolution** `string` (default: 1K)

Suporta `1K` e `2K`, inclusive em minúsculas. Outras faixas, como `4K`, retornam HTTP 400.

Determina a faixa de tamanho em texto para imagem com proporção. Não calcula dimensões quando pixels exatos são usados. Não define dimensões em imagem para imagem.

**width** `integer`

Largura exata em pixels, obrigatoriamente junto com `height`. Essa dupla tem prioridade sobre `size` e `resolution` em texto para imagem.

Largura e altura devem ser no mínimo 768, com até 2.359.296 pixels no total. Use múltiplos de 32; caso contrário, cada dimensão é arredondada para baixo até um múltiplo de 32.

Este parâmetro não determina as dimensões em imagem para imagem.

**height** `integer`

Altura exata em pixels, junto com `width`, seguindo os limites acima. Não determina as dimensões em imagem para imagem.

**image\_urls** `string[]`

Lista de até 5 referências. Omita para texto para imagem; uma imagem permite edição individual e várias permitem composição.

Cada item aceita uma URL de imagem HTTP(S) acessível publicamente ou uma Data URL Base64 como `data:image/png;base64,...`.

JPEG e PNG são suportados; WEBP e GIF são convertidos automaticamente para PNG. As URLs devem ser públicas ou a tarefa falhará.

**Em imagem para imagem, o modelo determina as dimensões pelas referências**, cerca de 1 milhão de pixels com proporção semelhante. `size`, `resolution`, `width` e `height` não podem definir essas dimensões.

**auto\_aspect\_ratio** `boolean` (default: false)

Com `true`, o modelo escolhe a proporção pelo prompt, equivalente a `size: "auto"`.

**web\_grounding** `boolean` (default: false)

Com `true`, pesquisa informações em tempo real antes da geração, útil para pessoas, lugares ou eventos reais.

**n** `integer` (default: 1)

Apenas `1` é suportado. Envie tarefas separadas para várias imagens. Valores acima de 1 retornam HTTP 400.

## Dimensões de texto para imagem

| Necessidade | Parâmetros |
| - | - |
| Quadrado padrão | Omitir tamanho: `1:1` + `1K`, saída 1024×1024 |
| Resolução + proporção | `size: "16:9"`, `resolution: "2K"` |
| Pixels exatos | `size: "1536x1024"` ou `width: 1536`, `height: 1024` |
| Proporção automática | `size: "auto"` ou `auto_aspect_ratio: true` |

Prioridade em texto para imagem: par `width` / `height` → `size` em pixels → `size` como proporção combinado com `resolution`.

### Faixas e proporções

| Proporção | 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 |

As dimensões são convertidas em múltiplos de 32. Como o lado menor deve ter pelo menos 768, proporções extremas podem ultrapassar aproximadamente 1 milhão de pixels mesmo em `1K`. A cobrança usa os tokens correspondentes aos pixels reais de saída.

### Limites de pixels exatos

* Largura e altura devem ser no mínimo 768.
* Largura × altura não pode ultrapassar 2.359.296 (1536 × 1536).
* Cada dimensão é arredondada para baixo a um múltiplo de 32. Por exemplo, `1000x1000` produz `992x992`. Use múltiplos de 32 para dimensões exatas.

`1536x1024`, `2048x1152` e `3072x768` são suportados. `512x512` é rejeitado por lados pequenos demais; `2048x2048` ultrapassa o total de pixels.

> [!WARNING]
>
> O limite é de **pixels totais**, não de 1536 por lado. Portanto, `2048x1152` e `3072x768` são válidos, mas a faixa 4K não é suportada. Esses ajustes se aplicam apenas a texto para imagem.

## Exemplos de solicitações

### Pixels exatos e pesquisa na web

```json theme={null}
{
  "model": "mai-image-2.6-flash",
  "prompt": "A Torre Eiffel à noite com fogos de artifício, estilo pôster de viagem",
  "width": 2048,
  "height": 1152,
  "web_grounding": true
}
```

### Edição individual

```json theme={null}
{
  "model": "mai-image-2.6",
  "prompt": "Deixe a bicicleta azul e adicione um cachorro pequeno ao lado dela",
  "image_urls": ["https://example.com/bicycle.png"]
}
```

### Composição de várias imagens

```json theme={null}
{
  "model": "mai-image-2.6-flash",
  "prompt": "Combine as duas imagens de referência em uma foto de produto limpa e futurista",
  "image_urls": [
    "https://example.com/first.png",
    "https://example.com/second.jpg"
  ]
}
```

Substitua as URLs de exemplo por endereços de imagens acessíveis.

## Parâmetros não suportados

`quality`, `style`, `background`, `output_format`, `response_format` e `mask_url` não são suportados e são ignorados. A saída é sempre PNG. Edição por máscara não é suportada.

## Resposta do envio

**code** `integer`

Código de status da resposta. `200` indica sucesso.

**data** `array`

Resultado do envio da tarefa.

**Mostrar campos da tarefa**

**status** `string`

`submitted` indica envio bem-sucedido, não geração concluída.

**task\_id** `string`

ID da tarefa usado para consultar status e resultados.

## Consultar resultados

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

Exemplo de resposta bem-sucedida (a URL da imagem é ilustrativa):

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

| Status | Ação |
| - | - |
| `pending` | Na fila; continuar consultando |
| `processing` | Em processamento; continuar consultando |
| `completed` | Sucesso; obter links no array `data.result.images[0].url` |
| `failed` | Falha; consultar `data.error.message` e parar as consultas. Reembolso integral |

## Cobrança

Cobrança pelo uso real de tokens de entrada e saída. Consulte os [preços dos modelos](https://gccai.heqingsong.uk/pricing).

* Tokens de saída da imagem = largura real × altura ÷ 1024. 1024×1024 corresponde a 1024 tokens; 1536×1536, a 2304 tokens.
* Tokens de entrada por referência ≈ largura × altura ÷ 1024. Prompts de texto também contam como entrada.
* No envio, um valor é debitado conforme a faixa; após o sucesso, é ajustado ao uso real com reembolso ou cobrança adicional.
* Tarefas com falha recebem reembolso integral automático. Erros de parâmetros rejeitados no envio não criam tarefas nem geram cobrança.

## Erros comuns

| HTTP | Causa e solução |
| - | - |
| 400 | `resolution` não suportada, como `4K`; use `1K` ou `2K` |
| 400 | Largura ou altura abaixo de 768, ou total acima de 2.359.296 pixels |
| 400 | Apenas `width` ou `height` foi enviado; ambos devem ser fornecidos juntos |
| 400 | Proporção fora de `1:4` a `4:1`, ou formato de `size` desconhecido |
| 400 | `n` acima de 1 ou mais de 5 referências |

Em caso de falha, verifique erros de download ou segurança do conteúdo e altere o prompt ou as referências antes de tentar novamente. A edição de fotos realistas envolvendo menores pode ser bloqueada pelas políticas de segurança.


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