Images API
Dois endpoints: geração (texto → imagem) e edição (imagem + texto → imagem). Ambas as respostas seguem a estrutura padrão da OpenAI em data[0].b64_json.
Seedream e Qwen-Image não suportam /v1/images/edits; a geração de imagem a partir de imagem passa pelo endpoint generations, mas o campo da imagem de referência é diferente: Seedream usa image e Qwen usa input_images. Cuidado para não trocá-los. Para controlar a resolução do Gemini (de 512 a 4K), use o protocolo nativo do Gemini. As diferenças de parâmetros de cada família estão na página da família correspondente.
Início rápido
Uma requisição mínima executável: gera uma imagem de 1024×1024, decodifica e salva como output.png.
https://api.ofox.io/v1https://api.ofox.io/v1/images/generationshttps://api.ofox.io/v1/images/editsopenai/gpt-image-2.5-flarePython
import base64
from openai import OpenAI
client = OpenAI(
api_key="YOUR_OFOX_API_KEY",
base_url="https://api.ofox.io/v1",
timeout=600, # a API de imagens é síncrona e pode demorar
)
resp = client.images.generate(
model="openai/gpt-image-2.5-flare",
prompt="Uma maçã vermelha sobre uma mesa branca",
size="1024x1024",
quality="low",
)
with open("output.png", "wb") as f:
f.write(base64.b64decode(resp.data[0].b64_json))A API é síncrona: defina o timeout do cliente como 600 segundos. Requisições de alta qualidade, de tamanho grande e de edição podem levar vários minutos; consulte a latência medida.
Todas as famílias são chamadas da mesma forma; para trocar de modelo, basta alterar model. Os valores aceitos e os parâmetros exclusivos variam; consulte a descrição de cada parâmetro abaixo.
Gerar imagens
POST https://api.ofox.io/v1/images/generationsParâmetros da requisição
Os valores e padrões abaixo se aplicam à família GPT Image (gpt-image-2.5-flare, gpt-image-2.5-sunburst, gpt-image-2). Quando outras famílias diferem, isso é indicado separadamente. Detalhes medidos: família GPT Image.
ID do modelo; diferencia maiúsculas de minúsculas: um ID incorreto retorna 404 model_not_found.
▸ Detalhes
Os modelos suportados estão listados na tabela no início desta página. Use o ID completo com o prefixo do fornecedor, por exemplo openai/gpt-image-2.5-flare.
Descreve a imagem a ser gerada.
Tamanho de saída. Largura e altura podem ser personalizadas, mas precisam atender a quatro regras; caso contrário, retorna 400 Invalid size.
▸ Detalhes
As quatro regras:
- Largura e altura divisíveis por 16
- Lado maior ≤ 3840
- Proporção entre 1:3 e 3:1
- Total de pixels ≥ 655.360 (
768x768é inválido,1024x768é válido)
Se omitido ou auto, o modelo decide; em nossas medições, o resultado foi 1254×1254. Informe o tamanho explicitamente se precisar de um tamanho fixo. As regras de tamanho das outras famílias são diferentes; consulte a página da família correspondente. Detalhes: GPT Image · tamanho.
Nível de qualidade; afeta diretamente o preço. gpt-image-2 não tem xhigh / max.
▸ Detalhes
gpt-image-2não temxhigh/max: enviá-los retorna 400.- Os valores da era DALL·E
standard/hdnão são aceitos: enviá-los retorna 400. - Omiti-lo não equivale a
medium: o modelo escolhe o nível por conta própria (em nossas medições,low). Para qualidade e custo estáveis, defina-o explicitamente.
A maioria das outras famílias não tem níveis; consulte a página da família correspondente. Detalhes: GPT Image · qualidade.
Número de imagens; cada uma é cobrada separadamente. Não é suportado pelos modelos Gemini: não o envie.
Formato do arquivo de saída.
▶Avançados · 7output_compression · background · moderation · stream · partial_images · input_images · extra_body.provider.typeExpand
Nível de compressão; só tem efeito em jpeg / webp.
Fundo. transparent exige um formato com canal alfa (png / webp).
Rigor da moderação de conteúdo.
Retorna a resposta em streaming. Com partial_images, você recebe imagens intermediárias durante a geração.
Número de imagens intermediárias em streaming; requer stream: true. Segundo a documentação oficial da OpenAI, cada imagem intermediária adiciona 100 tokens de saída.
Array de imagens de referência (URL ou base64), suportado somente pela família Qwen, de 1 a 3 imagens.
▸ Detalhes
Nas demais famílias, o campo não gera erro, mas também não tem efeito; na Seedream, o campo da imagem de referência é image.
Seleciona um provedor. É opcional e normalmente desnecessário: o gateway faz o roteamento automaticamente. Considere-o quando houver requisitos de moderação de conteúdo; depois que um provedor é selecionado, as requisições não recorrem a outro provedor se ele estiver indisponível.
▸ Detalhes
O cabeçalho X-OfoxAI-Provider-Type é equivalente. Consulte Avançado: fixar um provedor.
Resposta
{
"created": 1777385517,
"data": [
{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA…", "index": 0 }
],
"model": "openai/gpt-image-2.5-flare",
"size": "1024x1024",
"quality": "low",
"usage": {
"input_tokens": 13,
"input_tokens_details": { "text_tokens": 13 },
"output_tokens": 196,
"output_tokens_details": { "image_tokens": 196 },
"total_tokens": 209
}
}A imagem em base64, sem o prefixo data:image/png;base64,.
▸ Detalhes
Decodifique-a e grave o arquivo; para exibi-la em um navegador, adicione o prefixo por conta própria. A resposta não tem o campo url.
Índice da imagem; distingue as imagens quando n > 1.
Tamanho real de saída. Quando size foi omitido ou era auto, consulte aqui o tamanho real.
Nível de qualidade efetivamente utilizado. Quando quality foi omitido, este campo confirma qual nível foi usado.
Fundo e formato efetivamente utilizados. Nem sempre são retornados: não dependa desses dois campos.
Uso para cobrança. output_tokens corresponde aos tokens da imagem de saída; input_tokens_details.text_tokens, aos tokens do prompt.
▸ Detalhes
Calcule o custo de cada chamada a partir desses números.
Editar imagens
POST https://api.ofox.io/v1/images/editsEste endpoint suporta GPT Image, Nano Banana (Gemini) e MAI Image. Chamadas com Seedream e Qwen-Image retornam 400 endpoint_not_supported; use o campo de imagem de referência do endpoint de geração, conforme Seedream e Qwen-Image.
Parâmetros da requisição
Enviados como campos de formulário multipart/form-data, com o upload de um arquivo de imagem. Os valores e padrões também se aplicam à família GPT Image.
ID do modelo; mesmas regras do endpoint de geração. Os modelos suportados estão listados na tabela no início desta página.
Imagem de referência como arquivo local (prefixo @ no cURL), não como URL.
▸ Detalhes
Para enviar várias, repita o campo como image[]. ≤ 15 MB por arquivo, ≤ 50 MB para o corpo da requisição; o gateway não impõe limite adicional de quantidade, mas recomenda-se no máximo 16 imagens.
Instrução de edição.
Máscara de inpainting: um PNG com canal alfa, do mesmo tamanho que image; área transparente = a parte a ser repintada.
▸ Detalhes
Só tem efeito neste endpoint: no endpoint de geração, é ignorada silenciosamente. Como criá-la e o efeito medido: GPT Image · inpainting com máscara.
Tamanho de saída; mesmas regras do endpoint de geração.
▸ Detalhes
Se omitido ou auto, o modelo decide: não há garantia de que corresponda à imagem original. Para manter o tamanho original, informe-o explicitamente.
Nível de qualidade; mesmas regras do endpoint de geração: gpt-image-2 não tem xhigh / max.
Número de imagens; cada uma é cobrada separadamente.
▶Avançados · 1X-OfoxAI-Provider-TypeExpand
Seleciona um provedor. É opcional e normalmente desnecessário: o gateway faz o roteamento automaticamente. Considere-o quando houver requisitos de moderação de conteúdo; depois que um provedor é selecionado, as requisições não recorrem a outro provedor se ele estiver indisponível.
▸ Detalhes
Este endpoint é um upload multipart; para fixar um provedor, só o cabeçalho funciona: um campo de formulário extra_body é ignorado silenciosamente. Consulte Avançado: fixar um provedor.
Resposta
Mesma estrutura do endpoint de geração; usage inclui também os tokens de entrada das imagens de referência:
{
"created": 1777385669,
"data": [
{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA…", "index": 0 }
],
"model": "openai/gpt-image-2",
"size": "auto",
"quality": "low",
"usage": {
"input_tokens": 1041,
"input_tokens_details": { "image_tokens": 1024, "text_tokens": 17 },
"num_input_images": 1,
"output_tokens": 358,
"total_tokens": 1399
}
}Tokens de entrada correspondentes às imagens de referência. Em nossas medições, uma imagem de referência de 1024×1024 conta 1.024. É principalmente por isso que uma edição custa mais que uma geração de texto para imagem do mesmo tamanho.
Número de imagens de referência. Use-o para confirmar que o modelo realmente leu as imagens de referência.
Os demais campos são iguais aos da resposta do endpoint de geração.
Consulte os modelos suportados e os preços no catálogo de modelos .
Chamada
Python
import base64
from openai import OpenAI
client = OpenAI(api_key="YOUR_OFOX_API_KEY", base_url="https://api.ofox.io/v1", timeout=600)
with open("apple.png", "rb") as f:
resp = client.images.edit(
model="openai/gpt-image-2",
image=f,
prompt="Deixe a maçã verde e mantenha todo o resto igual",
size="auto",
quality="low",
)
with open("apple_edited.png", "wb") as out:
out.write(base64.b64decode(resp.data[0].b64_json))O campo image recebe um caminho de arquivo local (com o prefixo @ no cURL), não uma URL.
Comparação medida:
Erros
Em caso de erro, a API retorna um status HTTP de erro e a estrutura abaixo (medido):
{
"error": {
"code": null,
"message": "The model 'gpt-image-2' does not support quality 'xhigh'.",
"param": null,
"request_id": "fbe4f24c-779d-41a0-8b3a-c62886cdd1ae",
"type": "image_generation_user_error"
}
}code pode ser null. Baseie a lógica no status HTTP e em message.
Ao entrar em contato com o suporte, inclua o request_id da resposta e os detalhes do erro (status HTTP e error.message). Recomendamos registrá-los nos seus logs.
Avançado: fixar um provedor
É opcional e normalmente desnecessário. Os três modelos GPT Image (gpt-image-2.5-flare, gpt-image-2.5-sunburst, gpt-image-2) são atendidos por azure_foundry e openai, tanto na geração quanto na edição. Sem indicação, o gateway faz o roteamento automaticamente.
Selecione um provedor quando houver requisitos de moderação de conteúdo. As requisições passam a ir somente para esse provedor; se ele estiver indisponível, elas não recorrem automaticamente a outro provedor.
Indicar um provedor que não oferece o modelo retorna 400 provider_type_unavailable.
Os dois provedores de openai/gpt-image-2 aplicam critérios de moderação diferentes. Se um prompt for recusado repetidamente, você pode indicar openai explicitamente. Sem indicação, as requisições são distribuídas de forma ponderada e podem cair em azure_foundry.
Texto para imagem /v1/images/generations
Corpo JSON; funcionam tanto o campo do corpo extra_body.provider.type quanto o cabeçalho X-OfoxAI-Provider-Type.
Python
resp = client.images.generate(
model="openai/gpt-image-2",
prompt="A simple red apple on a white table",
size="1024x1024",
extra_body={"extra_body": {"provider": {"type": "openai"}}},
)Com os SDKs oficiais da OpenAI, extra_body precisa existir como chave literal no corpo da requisição. No SDK de TypeScript, basta escrever extra_body diretamente no objeto de parâmetros. O argumento extra_body= do SDK de Python mescla seu conteúdo no nível superior do corpo; por isso, aninhe-o um nível a mais ou use o cabeçalho.
Imagem para imagem /v1/images/edits
Um upload multipart não tem corpo JSON onde aninhar extra_body; por isso, só é possível usar o cabeçalho.
curl https://api.ofox.io/v1/images/edits \
-H "Authorization: Bearer $OFOX_API_KEY" \
-H "X-OfoxAI-Provider-Type: openai" \
-F "model=openai/gpt-image-2" \
-F "prompt=..." \
-F "image=@input.png"Com os SDKs: em Python, passe extra_headers={"X-OfoxAI-Provider-Type": "openai"}; em TypeScript, passe { headers: { 'X-OfoxAI-Provider-Type': 'openai' } } como segundo argumento.
Em /v1/images/edits, um extra_body enviado como campo de formulário é ignorado silenciosamente: a imagem é gerada normalmente, mas a restrição não tem efeito. Use X-OfoxAI-Provider-Type em vez disso.
Referência completa: API · Roteamento de provedores.
Documentação oficial e mais
A documentação oficial descreve o comportamento das chamadas diretas à OpenAI. Quando ela diverge das medições na OfoxAI, prevalecem as medições deste site.
OpenAI (oficial)
- Guia de geração de imagens · Gerar imagens
- Guia de geração de imagens · Editar imagens
- Guia de geração de imagens · Edição parcial com máscara
- Guia de geração de imagens · Tamanho e qualidade
- Guia de geração de imagens · Cálculo de custos
- Referência da Images API
Páginas de família da OfoxAI
- Visão geral da família GPT Image: escolha de modelo, tamanho, qualidade, tempos e erros
- Texto para imagem
- Edição e várias imagens
- Inpainting
- Família Nano Banana (Gemini Image) e solução de erros
- Família Seedream
- Família Qwen-Image
- Família MAI Image

