> ## 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.

# FLUX 3 Image Geração de imagens

> Geração de texto para imagem, edição de uma imagem e até 10 imagens de referência, com várias proporções e resolução de até 4k.

<Info>
  Este endpoint é assíncrono. Um envio bem-sucedido retorna um `task_id`. Use a [consulta de tarefas](/pt/api-reference/tasks/status) para obter o status e as imagens. Pare de consultar quando o status for `completed` ou `failed`. A geração em `4k` pode levar vários minutos; recomenda-se um tempo limite total de espera de 10 minutos.
</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": "flux-3-image",
      "prompt": "Plano cinematográfico ultrapanorâmico de uma estrada costeira coberta de neblina ao amanhecer, um único carro antigo com os faróis acesos",
      "aspect_ratio": "21: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": "flux-3-image",
          "prompt": "Plano cinematográfico ultrapanorâmico de uma estrada costeira coberta de neblina ao amanhecer, um único carro antigo com os faróis acesos",
          "aspect_ratio": "21:9",
          "resolution": "2k"
      }
  )
  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: "flux-3-image",
      prompt: "Plano cinematográfico ultrapanorâmico de uma estrada costeira coberta de neblina ao amanhecer, um único carro antigo com os faróis acesos",
      aspect_ratio: "21:9",
      resolution: "2k"
    })
  });
  console.log(await response.json());
  ```
</RequestExample>

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

## Cabeçalhos da solicitação

<ParamField header="Authorization" type="string" required>
  Autenticação Bearer no formato `Bearer <token>`, em que `<token>` é sua APIMart API Key.
</ParamField>

## Parâmetros da solicitação

<ParamField body="model" type="string" required>
  Deve ser `flux-3-image`.
</ParamField>

<ParamField body="prompt" type="string" required>
  Descrição da cena para texto para imagem ou instruções de edição. Prompts negativos não são suportados; descreva o que deseja ver.

  Use tags e JSON bbox em `prompt` para definir layouts ou áreas de edição local. Veja os exemplos abaixo.
</ParamField>

<ParamField body="image_urls" type="string[]">
  Lista de imagens de referência, com até 10 imagens. Suporta URLs HTTP(S) acessíveis publicamente ou entrada Base64.

  Omita para texto para imagem. Forneça uma imagem para edição individual ou várias para referência múltipla.
</ParamField>

<ParamField body="aspect_ratio" type="string" default="auto">
  Proporção da imagem de saída. Valores suportados:

  `21:9`, `2:1`, `16:9`, `3:2`, `7:5`, `4:3`, `5:4`, `1:1`, `4:5`, `3:4`, `5:7`, `2:3`, `9:16`, `1:2`, `9:21` ou `auto`.

  Formatos como `16x9` também são aceitos. Com `auto`:

  * Edição ou múltiplas referências: segue a proporção da primeira imagem de referência.
  * Texto para imagem: determinada pelo prompt; usa `1:1` se nenhuma proporção for definida.
</ParamField>

<ParamField body="size" type="string">
  Parâmetro de compatibilidade para a proporção. Pode substituir `aspect_ratio` e aceita os mesmos valores. Recomenda-se usar apenas um desses campos.

  Dimensões em pixels como `1024x1024` não são suportadas e retornam HTTP 400. Use `resolution` para selecionar a resolução de saída.
</ParamField>

<ParamField body="resolution" type="string" default="1k">
  Faixa de resolução. Suporta `768sq`, `1k`, `1.5k`, `2k` e `4k`, sem distinção entre maiúsculas e minúsculas. `768` equivale a `768sq`.

  Este parâmetro determina a faixa de cobrança. Se omitido, a geração e a cobrança usam `1k`. Valores não suportados, como `3k`, retornam HTTP 400.
</ParamField>

<ParamField body="safety_tolerance" type="integer" default="2">
  Tolerância de segurança do conteúdo, de 0 a 4. 0 é o nível mais rigoroso.
</ParamField>

<ParamField body="grounding" type="boolean" default="true">
  Define se pesquisas na web ou de imagens são permitidas antes da geração. Use `false` para desativar.

  Deve ser um booleano, não as strings `"false"` ou `"true"`.
</ParamField>

<ParamField body="n" type="integer" default="1">
  Cada solicitação gera 1 imagem; apenas `1` é suportado. Para várias imagens, envie tarefas separadas. Valores acima de 1 retornam HTTP 400.
</ParamField>

## Parâmetros não suportados

Os parâmetros abaixo retornam HTTP 400 quando fornecidos; não são ignorados silenciosamente:

* `width`, `height`
* Dimensões em pixels em `size`, como `1024x1024`
* `seed`, `steps`, `guidance`
* `output_format`, `negative_prompt`, `prompt_upsampling`, `mask_url`

Use `resolution` para uma resolução maior e `aspect_ratio` para uma proporção específica.

## Editar uma imagem de referência

```json theme={null}
{
  "model": "flux-3-image",
  "prompt": "Mude o carro da imagem para vermelho, preservando a estrada, o fundo e a iluminação originais",
  "image_urls": ["https://example.com/car.jpg"],
  "aspect_ratio": "auto",
  "resolution": "2k"
}
```

Substitua a URL de exemplo por uma URL de imagem acessível publicamente. Para múltiplas referências, forneça várias URLs em `image_urls`, com no máximo 10 imagens no total.

## Múltiplas referências

Edição, edição local e layout usam o mesmo endpoint e modelo desta página, com cobrança por `resolution`. As referências são numeradas em ordem: `ref_image_0` para a primeira e `ref_image_1` para a segunda. Você também pode usar `Image 1` / `Image 2` no prompt.

```json theme={null}
{
  "model": "flux-3-image",
  "prompt": "Transforme Image 1 no estilo de Image 2.",
  "image_urls": [
    "https://example.com/subject.jpg",
    "https://example.com/style.jpg"
  ],
  "aspect_ratio": "auto"
}
```

## Edição local (bounding box)

Comece `prompt` com instruções em linguagem natural e use `<tags>`, como `<car_1>`, para identificar elementos. Acrescente um array JSON na mesma string, com um objeto por caixa. bbox não é um parâmetro de solicitação separado.

| Campo | Descrição |
| - | - |
| `id` | Corresponde à tag do elemento no prompt, sem os sinais de menor e maior. |
| `from` | Origem do elemento, como `ref_image_0`; use `null` para elementos novos ou que serão redesenhados. |
| `src_bbox` | Caixa na imagem original; também deve ser `null` quando `from` for `null`. |
| `tgt_bbox` | Caixa na imagem de saída; igual a `src_bbox` mantém a posição, diferente move o elemento. |
| `desc` | Descreve como alterar o elemento ou o que preservar. |

Todos os campos de caixa (`src_bbox`, `tgt_bbox`, `bbox`) usam `[superior, esquerda, inferior, direita]`, ou seja, `[y1, x1, y2, x2]`, em uma **grade normalizada de 0 a 1000**: `[0,0]` no canto superior esquerdo e `[1000,1000]` no inferior direito. Não são coordenadas em pixels.

Este exemplo torna vermelho o carro dentro da caixa e descreve o fundo a preservar. A URL e as posições são ilustrativas; adapte-as à sua imagem.

```json theme={null}
{
  "model": "flux-3-image",
  "prompt": "Em <ref_image_0>, deixe o carro <car_1> vermelho e preserve o fundo <background_1>. [{\"id\":\"car_1\",\"from\":null,\"src_bbox\":null,\"tgt_bbox\":[250,300,750,800],\"desc\":\"Um carro vermelho, preservando sua forma e orientação originais.\"},{\"id\":\"background_1\",\"from\":\"ref_image_0\",\"src_bbox\":[0,0,1000,1000],\"tgt_bbox\":[0,0,1000,1000],\"desc\":\"Preservar a estrada, o fundo e a iluminação originais.\"}]",
  "image_urls": [
    "https://example.com/car.jpg"
  ],
  "aspect_ratio": "auto",
  "resolution": "2k"
}
```

### Mover um elemento

Coloque o objeto abaixo no array bbox ao final do prompt. `from` identifica a imagem original, `src_bbox` a posição original e `tgt_bbox` a nova posição. Use também a tag correspondente `<knight_1>` na instrução em linguagem natural.

```json theme={null}
{
  "id": "knight_1",
  "from": "ref_image_0",
  "src_bbox": [
    500,
    150,
    850,
    350
  ],
  "tgt_bbox": [
    194,
    55,
    544,
    255
  ],
  "desc": "Uma pequena figura de cavaleiro cinza em amigurumi."
}
```

## Layout de texto para imagem

Layouts também funcionam sem imagens de referência. Cada caixa usa `id`, `bbox` e `desc`. Defina `aspect_ratio` explicitamente, pois a grade de coordenadas se estica conforme a proporção.

```json theme={null}
{
  "model": "flux-3-image",
  "aspect_ratio": "1:1",
  "prompt": "Ilustração minimalista de uma silhueta preta correndo <silhouette_1> sobre um fundo verde-amarelado sólido <background_1>. [{\"id\":\"background_1\",\"bbox\":[0,0,1000,1000],\"desc\":\"Um fundo verde-amarelado fluorescente com textura sutil de papel.\"},{\"id\":\"silhouette_1\",\"bbox\":[150,150,850,850],\"desc\":\"Uma silhueta preta correndo com textura pontilhada.\"}]"
}
```

### Observações

* O JSON bbox faz parte da string `prompt`. Ao escrever o JSON da solicitação manualmente, escape as aspas duplas internas como `\"`. SDKs ou a serialização JSON podem fazer isso automaticamente.

* Liste também as regiões que devem permanecer inalteradas e descreva o que preservar em `desc`.

* As tags dos elementos no prompt devem corresponder individualmente aos valores `id` do JSON. Identificadores de referência como `<ref_image_0>` apontam para as imagens de entrada.

* Este modelo não tem um parâmetro `mask` e não suporta `mask_url`; enviar `mask_url` retorna HTTP 400. A edição bbox não usa um parâmetro de upload de máscara.

## Resposta do envio

<ResponseField name="code" type="integer">
  Código de status da resposta. `200` indica sucesso.
</ResponseField>

<ResponseField name="data" type="array">
  Resultado do envio da tarefa.

  <Expandable title="Mostrar campos da tarefa">
    <ResponseField name="status" type="string">
      `submitted` indica envio bem-sucedido, não conclusão da geração.
    </ResponseField>

    <ResponseField name="task_id" type="string">
      ID da tarefa usado para consultar o status e os 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>'
```

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

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

Leia os links das imagens no array `data.result.images[0].url`. Se o status da tarefa for `failed`, verifique o erro retornado em vez de continuar esperando uma imagem.

## Resolução e cobrança

Cobrança por imagem. O preço unitário depende apenas de `resolution`, não da proporção ou do número de imagens de referência. As referências não geram custo adicional.

| Faixa de resolução | Tamanho aproximado da saída |
| - | - |
| `768sq` | Cerca de 768×768 |
| `1k` (padrão) | Cerca de 1MP |
| `1.5k` | Cerca de 2MP |
| `2k` | Cerca de 4MP |
| `4k` | Cerca de 16MP |

Os tamanhos são aproximados; as dimensões reais em pixels dependem da imagem retornada. Consulte os [preços dos modelos](https://apimart.ai/pricing) para cada faixa.

Tarefas que falham ou são bloqueadas pela moderação recebem reembolso integral.

## Erros comuns de parâmetros

| Solicitação | Resultado e ação |
| - | - |
| `resolution: "3k"` | HTTP 400; use uma das 5 faixas suportadas |
| `size: "1024x1024"` | HTTP 400; use uma proporção e selecione a resolução com `resolution` |
| `n: 2` | HTTP 400; apenas 1 imagem é gerada por solicitação |
| 11 imagens de referência | HTTP 400; forneça no máximo 10 |
| `grounding: "false"` | HTTP 400; use o booleano `false` |


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