# GPT Image 2: cómo corregir Unknown parameter: 'style'

> Elimina style de la solicitud de GPT Image 2, detecta si tu integración lo vuelve a añadir y guarda la imagen devuelta en Base64.

- Source: https://www.aifreeapi.com/es/posts/gpt-image-2-unknown-parameter-style
- Language: es
- Published: 2026-09-08
- Updated: 2026-09-12
- Publisher: AI Free API (https://www.aifreeapi.com)

Si una llamada a GPT Image 2 devuelve **`Unknown parameter: 'style'`**, elimina la clave `style` del cuerpo que envías a la API. Cambiar `"vivid"` por `"natural"` no resuelve la incompatibilidad: OpenAI reserva ese parámetro para `dall-e-3`. Puedes seguir pidiendo un estilo fotográfico, una acuarela o una ilustración; esa indicación debe formar parte de `prompt`. Así lo distingue la [referencia de generación de imágenes de OpenAI](https://developers.openai.com/api/reference/resources/images/methods/generate).

La corrección tiene dos partes: conseguir que la solicitud llegue sin el campo incompatible y leer correctamente la imagen que devuelve GPT Image. Los ejemplos siguientes usan **OpenAI directamente**, en `https://api.openai.com/v1/images/generations`. Si utilizas Azure o un proveedor intermediario, conserva sus requisitos de conexión y comprueba su documentación antes de trasladarlos.

## El cambio que necesitas hacer en la solicitud

Este cuerpo conserva un parámetro de DALL·E 3 que no corresponde a GPT Image 2:

```json
{
  "model": "gpt-image-2",
  "prompt": "Una taza de cerámica junto a una ventana",
  "style": "natural"
}
```

Sustitúyelo por un cuerpo que describa la imagen en el propio texto:

```json
{
  "model": "gpt-image-2",
  "prompt": "Fotografía de una taza de cerámica junto a una ventana. Luz natural suave, colores discretos y textura del esmalte visible."
}
```

No estás renunciando a controlar la apariencia. Has trasladado esa intención a una instrucción que el modelo puede interpretar. Una descripción concreta —iluminación, técnica, materiales, ambiente— comunica mejor el resultado deseado que copiar el nombre de un ajuste antiguo. No hay que convertir cada valor de DALL·E en otro parámetro equivalente.

**Eliminar la clave no es dejarla vacía.** Tanto `"style": ""` como `"style": null` siguen incluyendo el nombre del campo en JSON. Para esta corrección, el cuerpo final debe carecer de la clave. Tampoco basta con borrarla de un objeto inicial si después se vuelve a incorporar al combinar opciones.

Si gestionas la solicitud en JavaScript, puedes eliminar el campo después de aplicar tus ajustes y comprobar los nombres de las propiedades sin imprimir el texto privado de la solicitud:

```javascript
const request = { ...savedOptions, model: "gpt-image-2", prompt };
delete request.style;

const body = JSON.stringify(request);
console.log(Object.keys(JSON.parse(body)));
// Envía este mismo body; evita volver a combinar opciones después.
```

Ese fragmento muestra una operación local sobre el objeto. Si una biblioteca o un intermediario transforma la solicitud más adelante, aún tendrás que revisar lo que sale de esa última etapa.

## Prueba una llamada mínima y guarda el resultado

Para separar un problema del cuerpo de otro introducido por tu integración, empieza con `model` y `prompt`, como en los [ejemplos oficiales de GPT Image 2](https://developers.openai.com/api/docs/guides/image-generation). Guarda el segundo JSON de la sección anterior en un archivo llamado `solicitud.json`.

Con tu clave de OpenAI ya disponible en la variable de entorno `OPENAI_API_KEY`, ejecuta desde la misma carpeta:

```bash
curl --fail-with-body --silent --show-error \
  https://api.openai.com/v1/images/generations \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @solicitud.json \
  --output respuesta.json
```

La llamada utiliza tu cuenta y puede tener coste. Es un ejemplo basado en la documentación; no demuestra que tu proyecto tenga acceso ni reproduce por sí mismo el fallo de tu cliente. Si `curl` devuelve un error, revisa `respuesta.json` antes de intentar extraer una imagen. En versiones antiguas de `curl` que no reconozcan `--fail-with-body`, actualiza la herramienta para usar este comando tal cual.

Cuando la solicitud termine correctamente, la imagen estará codificada en Base64 en `data[0].b64_json`. El formato de imagen predeterminado es PNG. Guarda este programa como `guardar_imagen.py` junto a la respuesta:

```python
import base64
import json
from pathlib import Path

response = json.loads(Path("respuesta.json").read_text(encoding="utf-8"))
if response.get("error"):
    raise SystemExit(f"La API devolvió un error: {response['error']}")

data = response.get("data") or []
encoded = data[0].get("b64_json") if data else None
if not isinstance(encoded, str) or not encoded:
    raise SystemExit("La respuesta no contiene data[0].b64_json.")

image_bytes = base64.b64decode(encoded, validate=True)
if not image_bytes:
    raise SystemExit("La imagen decodificada está vacía.")

output = Path("imagen.png")
output.write_bytes(image_bytes)
print(f"Imagen guardada: {output.resolve()} ({len(image_bytes)} bytes)")
```

Después ejecuta:

```bash
python3 guardar_imagen.py
```

Abre `imagen.png` con un visor. Recibir JSON, encontrar Base64 y escribir un archivo son pasos distintos; abrir la imagen confirma que el resultado es utilizable. Si decides añadir `output_format: "webp"` o `output_format: "jpeg"` a la solicitud, cambia también el nombre de salida a `imagen.webp` o `imagen.jpeg`. El guardado en Base64 no requiere instalar una biblioteca de Python adicional.

![Recorrido desde una respuesta Base64 hasta un archivo de imagen, su apertura y su uso o almacenamiento para obtener un enlace.](https://www.aifreeapi.com/posts/es/gpt-image-2-unknown-parameter-style/img/base64-a-imagen.webp)

## Si has borrado style y el error continúa

![Esquema de unos ajustes guardados que vuelven a añadir style entre la configuración y la solicitud enviada.](https://www.aifreeapi.com/posts/es/gpt-image-2-unknown-parameter-style/img/rastrear-campo-style.webp)

El mensaje identifica el campo rechazado, pero no dice quién lo añadió. Puede proceder de tus opciones guardadas, del código que combina ajustes, de un módulo de automatización o de un proveedor que transforma la petición.

Compara la llamada mínima con la que falla, manteniendo el mismo proveedor, modelo, punto de conexión y contexto de cuenta. Cambiar de proveedor a la vez puede orientar la investigación, pero no aislar la causa.

| Resultado que observas | Qué puedes concluir y revisar |
| --- | --- |
| La solicitud mínima funciona y la integración falla con `style` | Revisa las diferencias del cuerpo y los ajustes que añade la integración. La llamada mínima demuestra que esa combinación concreta puede generar una imagen. |
| El cuerpo final todavía contiene `style` | Localiza el último paso que incorpora el campo y elimínalo allí. Una casilla vacía no confirma que el campo se omita. |
| Tu registro local no contiene `style`, pero sigue apareciendo el error | Comprueba que el registro corresponde al mismo intento y que se tomó después de todas las transformaciones que puedes observar. Si hay un intermediario, pide revisar su solicitud saliente. |
| Ahora aparece un error sobre otro parámetro | Atiende el nuevo campo rechazado. El cambio de mensaje no prueba todavía que la generación pueda completarse. |
| Ya recibes Base64, pero el siguiente paso exige una URL | La solicitud ha avanzado; adapta el consumo del resultado como se explica más abajo. |

Para comunicar el problema, conserva la fecha del intento, el punto de conexión, el modelo, los nombres de los campos y el identificador de solicitud si está disponible. No compartas la cabecera de autorización ni un prompt con información privada. El cuerpo que construye tu aplicación y el cuerpo que recibe el servicio solo son equivalentes cuando no hay una transformación entre ambos.

### Qué revisar en Make y otras automatizaciones

Un [hilo de la comunidad de Make](https://community.make.com/t/400-style-unknown-parameter-style-when-calling-dall-e3/110513) recoge precisamente un campo `style` que el usuario no tenía mapeado. La conversación también pasa a un segundo problema: el paso posterior esperaba una URL y la nueva salida tenía que tratarse como archivo o Base64. La solución comentada utilizaba GPT Image 1; no es una prueba de GPT Image 2 ni demuestra que todos los módulos actuales fallen.

En tu escenario, revisa el historial de ejecución y la configuración del módulo que envía la solicitud. Si no permite omitir el campo, prueba un módulo que documente compatibilidad con GPT Image o una solicitud HTTP explícita con el cuerpo mínimo. Después vuelve a conectar la salida al paso que guarda o utiliza la imagen.

Actualizar un SDK o sustituir un módulo puede ayudar **si cambia lo que envía**. Que una biblioteca muestre `style` entre sus opciones no significa que todos los modelos lo acepten. Sin conocer tu versión y el cuerpo enviado, no se puede señalar una versión concreta como solución.

## Evita arrastrar los demás ajustes de DALL·E 3

Al cambiar solo el nombre del modelo, pueden quedar otros campos incompatibles. La [referencia de OpenAI](https://developers.openai.com/api/reference/resources/images/methods/generate) distingue estas opciones:

| Ajuste anterior | Qué hacer con GPT Image 2 |
| --- | --- |
| `style: "vivid"` o `style: "natural"` | Elimina `style` y describe la apariencia en `prompt`. |
| `quality: "hd"` o `quality: "standard"` | Omite el ajuste para la prueba mínima; cuando lo necesites, usa `low`, `medium`, `high` o `auto`. |
| `response_format: "url"` o `response_format: "b64_json"` | Elimina `response_format`; GPT Image devuelve la imagen en Base64. |
| Necesidad de elegir PNG, JPEG o WebP | Usa `output_format` con `png`, `jpeg` o `webp`. |

`output_format` elige la codificación del archivo, no el modo de entrega como enlace o Base64. Por eso sustituir `response_format: "url"` por `output_format: "url"` tampoco corresponde al formato documentado.

Si tu automatización necesita una URL, decodifica la imagen, guárdala en el almacenamiento que utilices y pasa el enlace resultante al siguiente paso. Si ese paso acepta un archivo, puedes proporcionarle los bytes con un nombre y tipo de contenido adecuados, sin crear una URL intermedia. Algunos proveedores realizan esa conversión por su cuenta; su enlace no implica que OpenAI devuelva el mismo tipo de respuesta.

Para ampliar la integración una vez resuelto este error, consulta la [guía de la API de GPT Image 2](/es/topics/gpt-image). La comprobación útil aquí termina con una solicitud sin `style`, una imagen guardada que puedas abrir y el siguiente paso de tu aplicación consumiendo ese archivo correctamente.
