Documentación de API Hop
Generación de imágenes GPT-Image-2
Genera imágenes o edita referencias con gpt-image-2 y recibe los resultados en la respuesta JSON o conexión SSE actual.
https://api.apihop.ai/openai/v1/images/generationsgpt-image-2 admite generación y edición con imágenes de referencia para imágenes de producto, borradores de carteles, ilustraciones, recursos sociales, visuales de alta resolución, transferencia de estilo y fusión de varias referencias.
POST https://api.apihop.ai/openai/v1/images/generationsAutenticación
Authorization: Bearer YOUR_API_KEY
Content-Type: application/jsonInicio rápido
{
"model": "gpt-image-2",
"prompt": "A minimal black wireless earbud product poster on a white background, clean studio lighting, no text",
"n": 1,
"size": "2048x1152",
"resolution": "2k",
"quality": "low"
}Alcance de la comparación de precios
Los niveles de imagen 1K / 2K / 4K publicados por RequestBeam son *precios de venta de RequestBeam*, no tarifas oficiales fijas de OpenAI por imagen. La documentación de precios de OpenAI describe cargos por tokens de imagen/texto y niveles de procesamiento; el coste real depende del tamaño, calidad, referencias de entrada y salida. Compararlos solo porque ambos mencionan 1k o 2k no es un cálculo de descuento entre conceptos equivalentes.
Para evitar afirmaciones de ahorro sin fundamento, la antigua referencia de proveedor agregado USD per image y la insignia de descuento se ocultan deliberadamente para GPT Image 2. El precio de RequestBeam sigue visible y el contrato de facturación no cambia. Para una comparación futura justificable, registra el modelo exacto, endpoint, calidad, tamaño, condiciones de entrada, URL de la fuente oficial y fecha de verificación. Comprueba el precio efectivo de tu cuenta antes de una llamada de pago.
Cuerpo
modelstringobligatorioPredeterminado: gpt-image-2ID del modelo de imagen. Usa gpt-image-2.
promptstringobligatorioInstrucción de imagen. Describe el sujeto, escena, composición, estilo, material, iluminación, colores y si debe aparecer texto.
nintegerPredeterminado: 1Número de imágenes que generar. El contrato público actual de gpt-image-2 solo admite 1. Otros valores devuelven 400 antes de reservar saldo.
sizestringPredeterminado: autoRelación de aspecto o dimensiones en píxeles de salida.
Valores habituales:
1:14:316:99:161024x10241536x10241024x15362048x20482048x11523840x21602160x3840auto
qualitystringPredeterminado: autoCalidad de salida. Los valores admitidos incluyen low, medium, high y auto.
resolutionstringPredeterminado: 1kNivel de resolución de salida. Los valores admitidos son 1k, 2k y 4k.
Puede combinarse con size, por ejemplo size: "16:9" y resolution: "2k".
image_urlsarray<string>Imágenes de referencia para edición mediante instrucciones o fusión de varias imágenes.
- Hasta 16 imágenes.
- Cada imagen puede ocupar hasta 20 MB, con un límite total de entrada de 256 MB.
- Se admiten URL de imágenes accesibles públicamente.
- Se admiten URI de datos Base64 como
data:image/...;base64,.... - Se pueden mezclar URL y URI de datos Base64 en la misma matriz.
output_formatstringPredeterminado: pngFormato de salida. Los valores admitidos incluyen png, jpeg y webp.
streambooleanPredeterminado: falseSi se devuelven eventos enviados por el servidor (SSE).
Imágenes de referencia y edición
La edición con imágenes de referencia usa el mismo endpoint JSON. Añade image_urls y describe qué conservar y cambiar en prompt:
{
"model": "gpt-image-2",
"prompt": "Keep the product unchanged, replace the background with a dark blue studio, and add soft rim lighting",
"image_urls": [
"https://example.com/product.png"
],
"size": "1:1",
"resolution": "2k"
}Varias referencias pueden aportar el sujeto, la composición o el estilo visual:
{
"model": "gpt-image-2",
"prompt": "Use the product from the first image and the composition from the second image to create a clean ecommerce hero image",
"image_urls": [
"https://example.com/product.png",
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
],
"size": "4:3",
"resolution": "2k"
}Límites del contrato público actual:
- La edición de imagen completa, transferencia de estilo y fusión de varias referencias se admiten mediante
image_urls. - No existe una ruta independiente
POST https://api.apihop.ai/openai/v1/images/edits. - No se aceptan subidas
multipart/form-data. Convierte primero las imágenes locales a URI de datos Base64 o súbelas a URL accesibles. - No se admite rellenado con máscara. Enviar
mask,mask_urlomaskUrldevuelve400antes de reservar saldo.
Ejemplos de solicitudes
Imagen de producto 1:1
{
"model": "gpt-image-2",
"prompt": "A transparent glass cup on a light gray background, commercial product photography, soft shadow, no text",
"n": 1,
"size": "1024x1024",
"resolution": "1k",
"quality": "low",
"output_format": "png"
}Cartel 16:9
{
"model": "gpt-image-2",
"prompt": "A futuristic city night poster with neon lights, wet streets, cinematic composition, no text",
"n": 1,
"size": "2048x1152",
"resolution": "2k",
"quality": "medium",
"output_format": "jpeg"
}Cómo se devuelven los resultados
Este endpoint compatible con OpenAI no devuelve primero una respuesta de envío de tarea con data.jobId para consultarla después:
- Con
stream: false, la solicitud HTTP actual espera hasta la finalización y devuelve las URL de imágenes en la respuesta JSON. - Con
stream: true, la conexión SSE actual permanece abierta hastaimage_generation.completedy[DONE].
No uses GET https://api.apihop.ai/v1/jobs/{id} para obtener resultados de este endpoint. Usa Consultar tarea asíncrona solo cuando un endpoint de creación asíncrona devuelva explícitamente un jobId.
Respuesta sin streaming
La respuesta contiene URL de imágenes. Se incluye usage cuando la ruta del proveedor aporta información de medición.
{
"created": 1777270000,
"data": [
{
"url": "https://image.example.com/generated/123456789012345678/0.png"
}
],
"usage": {
"input_tokens": 20,
"output_tokens": 1234,
"total_tokens": 1254
}
}Respuesta en streaming
event: image_generation.completed
data: {"type":"image_generation.completed","data":[{"index":0,"url":"https://image.example.com/generated/123456789012345678/0.png"}],"usage":{"input_tokens":20,"output_tokens":1234,"total_tokens":1254}}
data: [DONE]Referencia de tamaños
| Relación de destino | 1K recomendado | 2K recomendado | 4K recomendado |
|---|---|---|---|
1:1 | 1024x1024 | 2048x2048 | No recomendado |
3:2 | 1536x1024 | 2048x1360 | No recomendado |
2:3 | 1024x1536 | 1360x2048 | No recomendado |
4:3 | 1024x768 | 2048x1536 | No recomendado |
3:4 | 768x1024 | 1536x2048 | No recomendado |
16:9 | 1536x864 | 2048x1152 | 3840x2160 |
9:16 | 864x1536 | 1152x2048 | 2160x3840 |
21:9 | 2016x864 | 2688x1152 | 3840x1648 |
9:21 | 864x2016 | 1152x2688 | 1648x3840 |
Respuesta de error
Consulta Códigos de error y resolución de problemas para la referencia completa de códigos, diferencias de protocolo y pasos de diagnóstico.
{
"code": 10000,
"message": "prompt is required",
"type": "api_error"
}Errores habituales:
400: faltan parámetros obligatorios o la combinación no es compatible401: fallo de autenticación o clave de API incorrecta402: saldo insuficiente404: el modelo no existe o no está activado429: límite de velocidad superado5xx: servicio temporalmente no disponible o fallo de generación de imágenes