Skip to Content

Images API

Dois endpoints: gerar (texto → imagem) e editar (imagem + texto → imagem). As respostas seguem a estrutura padrão da OpenAI em data[0].b64_json.

Os modelos de imagem da família Gemini (como google/gemini-3.1-flash-image-preview) só geram, não editam neste endpoint. Para editar, use o protocolo nativo do Gemini.

Gerar imagens

POST https://api.ofox.ai/v1/images/generations

Usando gpt-image-2

gen.py
import base64 from openai import OpenAI client = OpenAI(api_key="YOUR_OFOX_API_KEY", base_url="https://api.ofox.ai/v1") resp = client.images.generate( model="openai/gpt-image-2", prompt="A simple red apple on a white table", size="1024x1024", quality="low", output_format="png", ) with open("output.png", "wb") as f: f.write(base64.b64decode(resp.data[0].b64_json))

Saída real:

Maçã vermelha gerada pelo gpt-image-2

Usando gemini-3.1-flash-image-preview

O mesmo endpoint também aceita modelos de imagem do Gemini. Não envie n — o gateway mapeia incorretamente n para o campo numberOfImages e retorna 400. Cada chamada gera apenas 1 imagem.

gen_gemini.py
import base64 from openai import OpenAI client = OpenAI(api_key="YOUR_OFOX_API_KEY", base_url="https://api.ofox.ai/v1") resp = client.images.generate( model="google/gemini-3.1-flash-image-preview", prompt="A simple red apple on a white table, photorealistic", size="1024x1024", quality="low", output_format="png", ) with open("output.png", "wb") as f: f.write(base64.b64decode(resp.data[0].b64_json))

Saída real:

Maçã vermelha gerada pelo Gemini

Parâmetros

ParâmetroTipoObrigatórioDescrição
modelstringopenai/gpt-image-2, google/gemini-3.1-flash-image-preview
promptstringDescrição em linguagem natural
qualitystringauto / low / medium / high / standard / hd
nnumber1–10, padrão 1. Não suportado em modelos Gemini
sizestringauto / 1024x1024 / 1536x1024 / 1024x1536 / 256x256 / 512x512 / 1792x1024 / 1024x1792
output_formatstringpng / jpeg / webp
backgroundstringtransparent / opaque / auto
streambooleanPadrão false

Resposta

{ "created": 1777385517, "data": [ { "b64_json": "<Imagem em Base64>", "index": 0 } ], "model": "openai/gpt-image-2", "size": "1024x1024", "quality": "low", "usage": { "input_tokens": 14, "input_tokens_details": { "text_tokens": 14 }, "output_tokens": 208, "total_tokens": 222 } }

A imagem está em data[0].b64_json. Decodifique o Base64 e salve o arquivo.

Editar imagens

POST https://api.ofox.ai/v1/images/edits

multipart/form-data, exige o upload do arquivo de imagem.

Este endpoint só suporta modelos OpenAI / Azure OpenAI. Chamar google/gemini-3.1-flash-image-preview retorna Image editing is not supported for model — use o protocolo nativo do Gemini para editar imagens.

Chamada

edit.py
import base64 from openai import OpenAI client = OpenAI(api_key="YOUR_OFOX_API_KEY", base_url="https://api.ofox.ai/v1") with open("apple.png", "rb") as f: resp = client.images.edit( model="openai/gpt-image-2", image=f, prompt="Mude a maçã para verde, mantenha o resto inalterado", 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 o caminho do arquivo local (com prefixo @ no cURL), não uma URL.

Comparação real:

OriginalEditada
Maçã vermelha originalMaçã verde editada

Parâmetros

ParâmetroTipoObrigatórioDescrição
modelstringRecomendado openai/gpt-image-2
imagefileArquivo PNG / JPEG
promptstringInstrução de edição
qualitystringlow / medium / high
nnumberPadrão 1
sizestringauto mantém o tamanho original

Resposta

Idêntica à de geração:

{ "created": 1777385669, "data": [ { "b64_json": "<Imagem editada em Base64>", "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 } }

usage.input_tokens_details.image_tokens são os tokens consumidos pela imagem de entrada; num_input_images é a quantidade de imagens enviadas.

Modelos suportados e preços em Catálogo de Modelos .

Last updated on