Images API
Dos endpoints: generación (texto → imagen) y edición (imagen + texto → imagen). Las respuestas siguen la estructura estándar de OpenAI data[0].b64_json.
Los modelos de imagen de la familia Gemini (como google/gemini-3.1-flash-image-preview) en este endpoint solo pueden generar, no editar. Para editar, utiliza el protocolo nativo de Gemini.
Generar imágenes
POST https://api.ofox.ai/v1/images/generationsCon gpt-image-2
Python
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))Resultado real:

Con gemini-3.1-flash-image-preview
El mismo endpoint también acepta modelos de imagen de Gemini. No envíes n: el gateway lo mapea por error al campo numberOfImages y devuelve 400. Cada llamada genera 1 imagen.
Python
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))Resultado real:

Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
model | string | Sí | openai/gpt-image-2, google/gemini-3.1-flash-image-preview |
prompt | string | Sí | Descripción en lenguaje natural |
quality | string | Sí | auto / low / medium / high / standard / hd |
n | number | — | 1–10, valor predeterminado 1. No compatible con modelos Gemini |
size | string | — | auto / 1024x1024 / 1536x1024 / 1024x1536 / 256x256 / 512x512 / 1792x1024 / 1024x1792 |
output_format | string | — | png / jpeg / webp |
background | string | — | transparent / opaque / auto |
stream | boolean | — | Predeterminado false |
Respuesta
{
"created": 1777385517,
"data": [
{ "b64_json": "<imagen 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
}
}La imagen está en data[0].b64_json; decodifícala desde base64 y guárdala.
Editar imágenes
POST https://api.ofox.ai/v1/images/editsmultipart/form-data, requiere subir un archivo de imagen.
Este endpoint solo admite modelos OpenAI / Azure OpenAI. Llamar a google/gemini-3.1-flash-image-preview devolverá Image editing is not supported for model. Usa el protocolo nativo de Gemini para editar imágenes.
Llamada
Python
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="Cambia la manzana a verde, mantén todo lo demás igual",
size="auto",
quality="low",
)
with open("apple_edited.png", "wb") as out:
out.write(base64.b64decode(resp.data[0].b64_json))El campo image recibe una ruta de archivo local (cURL usa el prefijo @), no una URL.
Comparación real:
| Original | Editada |
|---|---|
![]() | ![]() |
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
model | string | Sí | Recomendado openai/gpt-image-2 |
image | file | Sí | Archivo PNG / JPEG |
prompt | string | Sí | Instrucción de edición |
quality | string | Sí | low / medium / high |
n | number | — | Predeterminado 1 |
size | string | — | auto mantiene el tamaño del original |
Respuesta
Igual que la generación:
{
"created": 1777385669,
"data": [
{ "b64_json": "<imagen editada 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 es el consumo de tokens de la imagen de entrada y num_input_images es el número de imágenes de entrada.
Consulta los modelos compatibles y precios en el catálogo de modelos .
