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"
}'
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())
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());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
FLUX 3 Image
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.
POST
/
v1
/
images
/
generations
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"
}'
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())
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());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Este endpoint é assíncrono. Um envio bem-sucedido retorna um
task_id. Use a consulta de tarefas 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.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"
}'
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())
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());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Cabeçalhos da solicitação
string
obrigatório
Autenticação Bearer no formato
Bearer <token>, em que <token> é sua APIMart API Key.Parâmetros da solicitação
string
obrigatório
Deve ser
flux-3-image.string
obrigatório
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.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.
string
padrão:"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:1se nenhuma proporção for definida.
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.string
padrão:"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.integer
padrão:"2"
Tolerância de segurança do conteúdo, de 0 a 4. 0 é o nível mais rigoroso.
boolean
padrão:"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".integer
padrão:"1"
Cada solicitação gera 1 imagem; apenas
1 é suportado. Para várias imagens, envie tarefas separadas. Valores acima de 1 retornam HTTP 400.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, como1024x1024 seed,steps,guidanceoutput_format,negative_prompt,prompt_upsampling,mask_url
resolution para uma resolução maior e aspect_ratio para uma proporção específica.
Editar uma imagem de referência
{
"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"
}
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 porresolution. 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.
{
"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)
Comeceprompt 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. |
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.
{
"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.
{
"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 usaid, bbox e desc. Defina aspect_ratio explicitamente, pois a grade de coordenadas se estica conforme a proporção.
{
"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
iddo JSON. Identificadores de referência como<ref_image_0>apontam para as imagens de entrada. -
Este modelo não tem um parâmetro
maske não suportamask_url; enviarmask_urlretorna HTTP 400. A edição bbox não usa um parâmetro de upload de máscara.
Resposta do envio
integer
Código de status da resposta.
200 indica sucesso.array
Consultar resultados
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01K... \
--header 'Authorization: Bearer <token>'
{
"code": 200,
"data": {
"status": "completed",
"result": {
"images": [
{
"url": ["https://example.com/generated-image.jpg"]
}
]
}
}
}
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 deresolution, 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 |
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 |