API Hop

Documentazione

Documentazione API Hop

Generazione di immagini GPT-Image-2

Genera immagini o modifica riferimenti con gpt-image-2 e ricevi i risultati nella risposta JSON o connessione SSE corrente.

POSThttps://api.apihop.ai/openai/v1/images/generations

gpt-image-2 supporta generazione e modifica di immagini di riferimento per immagini di prodotto, bozze di poster, illustrazioni, materiali social, immagini ad alta risoluzione, trasferimento di stile e fusione di più riferimenti.

text
POST https://api.apihop.ai/openai/v1/images/generations

Autenticazione

http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Avvio rapido

json
{
  "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"
}

Ambito del confronto dei prezzi

Le fasce di immagini 1K / 2K / 4K pubblicate da RequestBeam sono *prezzi di vendita RequestBeam*, non tariffe ufficiali fisse OpenAI per immagine. La documentazione dei prezzi OpenAI descrive costi per token di immagine/testo e livelli di elaborazione; il costo effettivo dipende da dimensioni, qualità, riferimenti di input e output. Confrontarli solo perché entrambi citano 1k o 2k non è un calcolo di sconto a parità di condizioni.

Per evitare promesse di risparmio non supportate, il vecchio riferimento aggregato dei fornitori USD per image e il badge di sconto sono intenzionalmente nascosti per GPT Image 2. Il prezzo RequestBeam resta visibile e il contratto di fatturazione non cambia. Per un confronto futuro difendibile, registra modello esatto, endpoint, qualità, dimensioni, condizioni di input, URL della fonte ufficiale e data di verifica del riferimento. Controlla il prezzo effettivo del tuo account prima di una chiamata a pagamento.

Corpo della richiesta

modelstringobbligatorioPredefinito: gpt-image-2

ID del modello di immagini. Usa gpt-image-2.

promptstringobbligatorio

Prompt dell’immagine. Descrivi soggetto, scena, composizione, stile, materiale, luce, colori e se deve comparire testo.

nintegerPredefinito: 1

Numero di immagini da generare. L’attuale contratto pubblico di gpt-image-2 supporta solo 1. Altri valori restituiscono 400 prima della prenotazione.

sizestringPredefinito: auto

Proporzioni o dimensioni in pixel dell’output.

Valori comuni:

  • 1:1
  • 4:3
  • 16:9
  • 9:16
  • 1024x1024
  • 1536x1024
  • 1024x1536
  • 2048x2048
  • 2048x1152
  • 3840x2160
  • 2160x3840
  • auto
qualitystringPredefinito: auto

Qualità dell’output. Sono supportati low, medium, high e auto.

resolutionstringPredefinito: 1k

Fascia di risoluzione dell’output. Sono supportati 1k, 2k e 4k.

Può essere combinata con size, per esempio size: "16:9" e resolution: "2k".

image_urlsarray<string>

Immagini di riferimento per modifiche basate su istruzioni o fusione di più immagini.

  • Fino a 16 immagini.
  • Ogni immagine può raggiungere 20 MB, con un limite totale di input di 256 MB.
  • Sono supportati URL di immagini pubblicamente accessibili.
  • Sono supportati URI dati Base64 come data:image/...;base64,....
  • URL e URI dati Base64 possono essere mescolati nello stesso array.
output_formatstringPredefinito: png

Formato dell’output. Sono supportati png, jpeg e webp.

streambooleanPredefinito: false

Indica se restituire Server-Sent Events.

Immagini di riferimento e modifica

La modifica di immagini di riferimento usa lo stesso endpoint JSON. Aggiungi image_urls e descrivi in prompt cosa mantenere e cambiare:

json
{
  "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"
}

Più riferimenti possono fornire soggetto, composizione o stile visivo:

json
{
  "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"
}

Limiti attuali del contratto pubblico:

  • Modifica dell’intera immagine, trasferimento di stile e fusione di più riferimenti sono supportati tramite image_urls.
  • Non esiste una route separata POST https://api.apihop.ai/openai/v1/images/edits.
  • I caricamenti multipart/form-data non sono accettati. Converti prima le immagini locali in URI dati Base64 o caricale su URL accessibili.
  • L’inpainting con maschera non è supportato. Inviare mask, mask_url o maskUrl restituisce 400 prima della prenotazione.

Esempi di richiesta

Immagine di prodotto 1:1

json
{
  "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"
}

Poster in formato 16:9

json
{
  "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"
}

Come vengono restituiti i risultati

Questo endpoint compatibile con OpenAI non restituisce inizialmente una risposta di invio attività contenente data.jobId per un polling successivo:

  • Con stream: false, la richiesta HTTP corrente attende il completamento e restituisce URL delle immagini nella risposta JSON.
  • Con stream: true, la connessione SSE corrente resta aperta fino a image_generation.completed e [DONE].

Non usare GET https://api.apihop.ai/v1/jobs/{id} per recuperare i risultati di questo endpoint. Usa Recuperare un processo asincrono solo quando un endpoint di creazione asincrona restituisce esplicitamente un jobId.

Risposta senza streaming

La risposta contiene URL delle immagini. usage è incluso quando la route del fornitore fornisce informazioni di misurazione.

json
{
  "created": 1777270000,
  "data": [
    {
      "url": "https://image.example.com/generated/123456789012345678/0.png"
    }
  ],
  "usage": {
    "input_tokens": 20,
    "output_tokens": 1234,
    "total_tokens": 1254
  }
}

Risposta in streaming

text
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]

Riferimento delle dimensioni

Proporzione di destinazioneConsigliato per 1KConsigliato per 2KConsigliato per 4K
1:11024x10242048x2048Non consigliato
3:21536x10242048x1360Non consigliato
2:31024x15361360x2048Non consigliato
4:31024x7682048x1536Non consigliato
3:4768x10241536x2048Non consigliato
16:91536x8642048x11523840x2160
9:16864x15361152x20482160x3840
21:92016x8642688x11523840x1648
9:21864x20161152x26881648x3840

Risposta di errore

Consulta Codici di errore e risoluzione dei problemi per il riferimento completo, le differenze tra protocolli e i passaggi diagnostici.

json
{
  "code": 10000,
  "message": "prompt is required",
  "type": "api_error"
}

Errori comuni:

  • 400: parametri obbligatori mancanti o combinazione non supportata
  • 401: autenticazione fallita o chiave API errata
  • 402: credito insufficiente
  • 404: modello inesistente o non abilitato
  • 429: limite di frequenza superato
  • 5xx: servizio temporaneamente non disponibile o generazione di immagini fallita