De OpenAI Image Edit API past een bestaande afbeelding aan op basis van een opdracht. De standaardroute is POST /v1/images/edits; het accepteert een afbeelding, een prompt en optionele bewerkingsfuncties zoals een masker of referentieafbeeldingen. Gebruik de Image API voor een gerichte aanvraag en gebruik de Responses API wanneer het product een meerstaps afbeeldingsworkflow vereist.
Een betrouwbare bewerking is een korte werkstroom: het bronbestand vastzetten, aangeven wat er moet blijven, aangeven wat er mag veranderen, de teruggegeven bytes controleren en het goedgekeurde bestand opslaan. Als je liever binnen één werkruimte schakelt tussen beeldmodellen en andere mediatools, afbeeldingen maken en bewerken met GPT Image 2 in GlobalGPT; de openbare API maakt gebruik van een ander contract voor asynchrone taken, dat in deze handleiding wordt onderscheiden van het eigen eindpunt van OpenAI.
Kort antwoord: bepaal de route voordat je code gaat schrijven
| Behoefte | Route | Vorm opvragen | Te verwerken resultaat |
|---|---|---|---|
| Eén afbeelding genereren of bewerken | OpenAI Afbeelding API | POST /v1/images/edits, meerdelig formulier | data[0].b64_json; decodeer en sla het op |
| Enkele bewerkingen met beeldcontext | OpenAI Responses API | POST /v1/responses met een tool voor het genereren van afbeeldingen | Pak het uitvoeritem voor het genereren van afbeeldingen uit |
| Meerdere mediamodellen achter één account | GlobalGPT openbare API | POST /taken, en vervolgens een peiling houden GET /taken/{id} | output.url; sla het op voordat de termijn van 30 dagen afloopt |
De namen van de eindpunten lijken op elkaar, maar de inhoud van de verzoeken en de verwerking van de resultaten zijn niet onderling uitwisselbaar.
Wat doet de OpenAI Image Edit API?
Het bewerkingsproces begint met een bestaande afbeelding. Je opdracht beschrijft de wijziging, terwijl de invoerafbeelding de visuele context biedt die na de bewerking behouden moet blijven. Je kunt een achtergrond vervangen, een element toevoegen of verwijderen, een bredere herontwerp uitvoeren of meer dan één afbeelding als referentie doorgeven. Het model interpreteert nog steeds de aanvraag; de API is geen pixel-editor met een gegarandeerde selectiegrens.
OpenAI beschrijft twee handige werkprocessen. De Beeld-API is de voor de hand liggende keuze wanneer één verzoek één afbeelding moet opleveren. De Responses-API is de betere keuze wanneer een gebruiker het resultaat bekijkt, om een nieuwe wijziging vraagt en de context van de afbeelding over verschillende beurt heen behoudt. Die keuze heeft invloed op zowel de vorm van het verzoek als de code waarmee het resultaat wordt geëxtraheerd.
Image API versus Responses API
| Vraag | Beeld-API | Responses-API |
|---|---|---|
| Geschikt voor | Eén enkele actie: aanmaken of bewerken | Een bewerkingservaring met meerdere stappen |
| Typische invoer | Afbeelding uit meerdere delen, prompt, optioneel masker | Gespreksinvoer plus tool voor het genereren van afbeeldingen |
| Verwerking van de output | data[0].b64_json | Zoek het uitvoeritem voor het genereren van afbeeldingen |
| Kostenoverzicht | Bij direct bewerken worden de huidige invoer- en uitvoersnelheden gebruikt | De regels voor ingevoerde gegevens in de cache kunnen afwijken; raadpleeg de actuele tarieven |
Voer een eerste bewerking uit met de ingebouwde OpenAI-API
Bewaar de API-sleutel op je server en laad deze via een omgevingsvariabele. In het onderstaande voorbeeld worden één afbeelding en een prompt naar het gedocumenteerde ‘edits’-eindpunt verzonden. De afbeelding[] Het veld kan worden herhaald wanneer het geselecteerde model meerdere invoerwaarden ondersteunt. De shell-pijplijn decodeert de eerste geretourneerde Base64-afbeelding naar een lokale PNG-bestand.
Bewerking door Native Curl: sla het b64_json-resultaat op
curl -s \
-X POST "https://api.openai.com/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F "model=gpt-image-2.5-sunburst" \
-F "image[]=@source.png" \
-F "prompt=Vervang alleen de achtergrond door een warme, beige studio-omgeving; laat het product en het label ongewijzigd." \
| jq -r '.data[0].b64_json' \
| base64 --decode > edited.pngPython SDK-bewerking: de geretourneerde bytes decoderen
from openai import OpenAI
import base64
client = OpenAI()
result = client.images.edit(
model="gpt-image-2.5-sunburst",
image=open("source.png", "rb"),
prompt="Vervang alleen de achtergrond door een warme beige studio-omgeving; laat het product en het label ongewijzigd.",
)
image_bytes = base64.b64decode(result.data[0].b64_json)
with open("edited.png", "wb") as output:
output.write(image_bytes)Voordat je deze versie geschikt voor productie verklaart, moet je het gedecodeerde bestand controleren: kijk naar het MIME-type, de afmetingen, het aantal bytes en of de relevante visuele details nog aanwezig zijn. Een 200-antwoord geeft alleen aan dat het verzoek is geaccepteerd; het zegt niets over of het label, het logo of de productgeometrie intact zijn gebleven.
Gebruik maskers en referentieafbeeldingen op een veilige manier
Een masker geeft het model aan welk gebied je wilt wijzigen, maar het maskeren van afbeeldingen met GPT blijft gebaseerd op prompts. In de handleiding van OpenAI wordt expliciet gewaarschuwd dat het model het masker als richtlijn gebruikt en niet als een absolute pixelgrens. Zorg ervoor dat de prompt specifiek is over het te beschermen onderwerp en controleer de volledige afbeelding na het genereren.
Controle vóór het afdrukken van het masker
- De afbeelding en het masker hebben hetzelfde formaat.
- De afbeelding en het masker hebben dezelfde afmetingen.
- Het maskerbestand is kleiner dan 50 MB.
- Het masker bevat een alfakanaal.
- In de opdracht staat aangegeven wat ongewijzigd moet blijven en wat moet worden vervangen.
Controleer een masker voordat je het uploadt
from PIL import Image
source = Image.open("source.png")
mask = Image.open("mask.png")
assert source.format == mask.format, (source.format, mask.format)
assert source.size == mask.size, (source.size, mask.size)
assert mask.width * mask.height > 0
assert mask.mode in {"RGBA", "LA"}, mask.mode
assert mask.fp is None or True # controleer de bestandsgrootte op de schijf apart
print("bron:", source.size, source.format)
print("masker:", mask.size, mask.mode)Als je meerdere afbeeldingen met een masker doorgeeft, geldt volgens de huidige handleiding het masker voor de eerste afbeelding. Dat is een handige richtlijn bij het opzetten van een referentieworkflow: zorg ervoor dat de eerste invoer de afbeelding is waarvan je het gebied wilt bewerken, en beschouw de overige afbeeldingen als referenties, in plaats van ervan uit te gaan dat het masker voor alle afbeeldingen geldt.
Referentieafbeeldingen bieden een oplossing voor een ander probleem. Ze kunnen een productidentiteit, een verlichtingsstijl, een kleurenpalet of een compositie-aanwijzing bieden. Ze dwingen het model niet om elke contour te behouden. Als de exacte vorm van een verpakking of een etiket ongewijzigd moet blijven, maak dan gebruik van een visuele controle of een conventionele bewerkingsstap na het genereren van het model.
Kies het model en de parameters
De huidige lijst met beeldgidsen voor OpenAI bevat gpt-image-2.5-sunburst, gpt-image-2.5-flare, en gpt-beeld-2. Beschouw modelnamen en ondersteunde opties als dynamische documentatie: controleer de modelpagina vlak voordat je ze integreert, en zet een versie met datum vast als reproduceerbaarheid belangrijk is.
Beslissingen over parameters die vermijdbare storingen voorkomen
| Besluit | Praktische regel | Waarom het belangrijk is |
|---|---|---|
| Nauwkeurigheid van de invoer | Weglaten input_fidelity voor gpt-beeld-2; de beeldgegevens worden met een hoge nauwkeurigheid verwerkt. | Het verzenden van een niet-ondersteund veld kan ervoor zorgen dat een geldige bewerking wordt afgewezen. |
| Kwaliteit | Het document over de routes „2.5 Sunburst“ en „Flare“ laag, gemiddeld, hoog, xhoog, en max. | Een hogere instelling is een afweging tussen kosten en latentie, en geen garantie voor een betere bewaring. |
| Formaat | Vraag het uitvoerformaat op dat het huidige eindpunt ondersteunt en bekijk vervolgens het gedecodeerde bestand. | Je opslagpijplijn moet afgaan op de bytes en het MIME-type, en niet alleen op de opgevraagde optie. |
| Achtergrond | Geef de gewenste achtergrond op in de prompt en maak gebruik van de gedocumenteerde achtergrondoptie indien deze wordt ondersteund. | Het model interpreteert de scène nog steeds; houd de beperkingen met betrekking tot het onderwerp expliciet. |
| Bronvermeldingen | Gebruik een referentieafbeelding als leidraad voor de stijl, de kleur of de belichting, en bepaal de functie van elk element. | Door onduidelijke rollen van beelden is het moeilijker om afwijkingen vast te stellen. |
Wat kost de OpenAI Image Edit API?
OpenAI hanteert voor het gebruik van GPT Image tarieven per tokencategorie in plaats van een algemeen vast tarief per bewerking. Op de huidige prijspagina staan aparte tarieven vermeld voor image-input, cached-input en image-output. Directe bewerkingen via de Image API vallen niet onder de regeling voor cached-input die is gedocumenteerd voor de tool voor het genereren van afbeeldingen in de Responses API; kopieer daarom geen schatting uit de Responses API naar een directe /v1/afbeeldingen/bewerkingen begroting.
Gepubliceerde tarieven voor image-tokens gecontroleerd op 28 september 2026
| Model | Beeldinvoer / 1 miljoen tokens | Ingevoerde afbeelding in de cache / 1 miljoen tokens | Beeldweergave / 1 miljoen tokens |
|---|---|---|---|
| GPT Image 2.5 | $8 | $2* | $30 |
| GPT afbeelding 2 | $4 | $1* | $15 |
*De kolom ‘cached-input’ wordt weergegeven voor de gepubliceerde prijsinformatie. Volgens de prijsgids is ‘cached input’ van toepassing op de tool voor het genereren van afbeeldingen in de Responses API, en niet op directe verzoeken aan de Images API, zoals /v1/afbeeldingen/bewerkingen. Tarieven kunnen veranderen; maak een berekening op basis van het verbruik dat voor uw eigen aanvraag wordt weergegeven.
Maak een realistische schatting op basis van het gebruik
def estimate_image_cost(image_input_tokens, image_output_tokens,
input_rate, output_rate):
return (image_input_tokens / 1_000_000) * input_rate + \
(image_output_tokens / 1_000_000) * output_rate
# Alleen ter illustratie: vervang dit door de waarden uit uw antwoord.
estimate = estimate_image_cost(
image_input_tokens=250_000,
image_output_tokens=120_000,
input_rate=4.00,
output_rate=15.00,
)
print(f"${estimate:.4f}")Deze formule is een voorbeeld ter planning en geen garantie voor een vast bedrag per afbeelding. Houd in uw eigen begroting rekening met herhalingspogingen, bestandsopslag en eventueel apart tekst- of toolgebruik. Wanneer de output van belang is, houd dan het verzoek, het gebruik van het antwoord, de hash van het gedecodeerde bestand en de goedkeuringsbeslissing bij elkaar.
GlobalGPT maakt gebruik van een ander API-contract voor beeldbewerking
De GlobalGPT API-documentatie beschrijft het genereren van afbeeldingen, video’s en audio als asynchrone mediataken. De openbare basis-URL is https://api2.glbgpt.com/ai-api/open/v1. Verzend JSON naar /taken, enquête /taken/{id}, en lees output.url na een succesvol uitgevoerde taak. In de modelcatalogus staan gpt-beeld-2 en gpt-image-2.5 als routes voor beeldbewerking en referentie met maximaal vier invoerafbeeldingen en beeldverhouding.

Documentatie over de openbare API van S05: Openbare documentatie over het asynchrone taakcontract; in dit artikel wordt dit apart behandeld van het ingebouwde eindpunt voor bewerkingen in meerdere delen van OpenAI.

S06-catalogus met openbare modellen: Openbaar bewijsmateriaal uit de modelcatalogus voor de GPT Image-routes en de gedocumenteerde limieten voor beeldtaken; controleer dynamische bronvermeldingen en velden voordat u iets publiceert.
GlobalGPT vorm van de openbare taak
BASE="https://api2.glbgpt.com/ai-api/open/v1"
# Optioneel: maak een schatting zonder een taak aan te maken of credits te reserveren.
curl "$BASE/tasks/estimate" \
-H "Authorization: Bearer $GLOBALGPT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5",
"prompt": "Laat de fles en het etiket ongewijzigd. Vervang alleen de achtergrond door warme beige studioverlichting.",
"images": ["https://YOUR_PUBLIC_IMAGE_URL/product.png"],
"aspect_ratio": "3:2"
}'
# Pas verzenden nadat je de schatting hebt gecontroleerd.
curl "$BASE/tasks" \
-H "Authorization: Bearer $GLOBALGPT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: image-edit-example-001" \
-d '{
"model": "gpt-image-2.5",
"prompt": "Laat de fles en het etiket ongewijzigd. Vervang alleen de achtergrond door warme beige studioverlichting.",
"images": ["https://YOUR_PUBLIC_IMAGE_URL/product.png"],
"aspect_ratio": "3:2"
}'
# Controleer de geretourneerde taak-ID totdat deze is geslaagd of mislukt.
curl "$BASE/tasks/TASK_ID" \
-H "Authorization: Bearer $GLOBALGPT_API_KEY"Plak het meerdelige bericht van OpenAI niet masker, input_fidelity, maat, of kwaliteit velden in deze JSON invoeren en ervan uitgaan dat ze werken. In de huidige openbare GlobalGPT-documentatie worden deze velden voor deze image-route niet vermeld. Niet-ondersteunde velden kunnen worden weggelaten en weergegeven in genegeerde_parameters, dus controleer dat antwoord voordat je concludeert dat een instelling van kracht is geworden.
Volgens de openbare documentatie reserveert GlobalGPT credits wanneer een mediataskt wordt ingediend, geeft deze vrij wanneer de taak mislukt en houdt succesvolle media 30 dagen beschikbaar. Sla het geretourneerde bestand op in een opslaglocatie waarover u zelf de controle hebt als de URL langer beschikbaar moet blijven. Gebruik het estimate-eindpunt vóór een batch, een idempotentiesleutel bij het herhalen van een netwerkverzoek en de oorspronkelijke taak-ID wanneer een poll slechts traag is.
Wat uit de test met het GlobalGPT-model bleek
Om dit onderscheid concreet te maken, heb ik op 28 september 2026 een begrensde API-test uitgevoerd met het GlobalGPT-model, waarbij ik twee fictieve, merkloze invoerprompts en twee bewerkingsprompts heb gebruikt. Voor elke taak werd gebruikgemaakt van GPT Image 2, een 3:2-verzoek en de eerste geldige uitvoer. De onderstaande afbeeldingen zijn bewijsmateriaal van de modeltest, geen browsersessie, benchmark of belofte dat bij elke bewerking alle contouren behouden blijven.

P00-invoer: De ingevroren bronafbeelding: een fictieve fles zonder merknaam met een korte witte dop en een kort etiket.

P01-referentie: De 'frozen' referentieafbeelding: uitsluitend bedoeld voor verlichting en kleur, niet als tweede productidentiteit.
T01: achtergrondbewerking met één afbeelding
Toon de volledige opdracht
Laat de keramische fles, de korte witte dop, de fictieve tekst op het etiket ("NORTH" en "250 ml"), de kleuren, de camerahoek en de verhoudingen van de bronafbeelding ongewijzigd. Vervang alleen de zuiver witte achtergrond door een warme beige studio-interieurachtergrond, geïnspireerd op zacht raamlicht en zachte schaduwen. Voeg geen nieuwe objecten, logo’s, woorden, watermerken, personen of etiketten toe. Laat de fles het enige onderwerp blijven in een liggende compositie met een verhouding van 3:2.
Wat hieruit blijkt: De fles blijft herkenbaar, het etiket met de tekst NORTH / 250 ml is zichtbaar en de witte achtergrond verandert in een warm beige interieur met zachte, raamachtige schaduwen.
Limiet: Dit is een eerste geldige uitvoer. Het bewijst niet dat de pixels exact behouden zijn gebleven of dat de labels in het algemeen correct zijn weergegeven.
T02: verlichting en kleurreferentie op basis van twee afbeeldingen
Toon de volledige opdracht
Gebruik invoerafbeelding 1 als de exacte productweergave en invoerafbeelding 2 uitsluitend als referentie voor de warme beige verlichting, de kleurtemperatuur en de zachte schaduwen binnenshuis. Laat de vorm van de keramische fles, de korte witte dop, de fictieve tekst op het etiket "NORTH" en "250 ml", de kleuren, de camerahoek en de verhoudingen uit invoerafbeelding 1 ongewijzigd. Vervang de witte achtergrond door een rustige, warmbeige studio-interieur. Kopieer geen extra objecten, tekst, logo’s, watermerken, personen of etiketten uit invoerafbeelding 2. Laat de fles het enige onderwerp zijn in een liggende compositie met een verhouding van 3:2.
Wat hieruit blijkt: Het product en het NORTH / 250 ml-etiket blijven herkenbaar, terwijl de setting de warme beige sfeer van de kamer, het tafelblad en het raamlicht uit P01 overneemt.
Limiet: De verhouding van de flessendop, de contouren van de fles en de plaatsing zijn zichtbaar veranderd. Noem dit geen perfecte of exacte identiteitsbehoud; maak gebruik van handmatige vergelijking wanneer de afmetingen van de goederen moeten overeenkomen.
Hoe dit bewijs te gebruiken: Het nuttige resultaat is een herhaalbare beoordelingsprocedure. Leg de invoer-URL vast, geef het beschermde onderwerp een naam, beschrijf de referentierol, controleer de geretourneerde bytes en vergelijk het goedgekeurde product met de bron voordat het wordt gepubliceerd. Stijloverdracht kan succesvol zijn, ook al wijkt de geometrie nog steeds af.
Omgaan met fouten en trage reacties
Symptoom → controle → actie
| Symptoom | Controleer eerst | Veilige volgende stap |
|---|---|---|
| 401 / authenticatiefout | Server-side sleutel, accountrechten, host van het eindpunt | Stop en corrigeer de authenticatie; beoordeel de beeldkwaliteit niet. |
| 400 / 422 ongeldig verzoek | Model-ID, namen van uit meerdere delen bestaande velden, bestandstype, niet-ondersteunde opties | Wijzig alleen het veld dat in de foutmelding wordt genoemd, en behoud vervolgens het oorspronkelijke verzoek dat is mislukt. |
| 429 / 5xx / capaciteit | Of er een taak-ID is aangemaakt | Als er geen taak-ID bestaat, probeer het dan nog één keer volgens je beleid; als er wel een taak bestaat, controleer dan die ID. |
| De taak blijft in de wachtrij staan of wordt verwerkt | Status, tijdstip van de laatste peiling, schatting van de aanbieder | Voer de peiling uit met een vastgestelde interval; maak geen duplicaat aan zolang de status onbekend is. |
| De uitvoer is een JSON-object dat als afbeelding wordt opgeslagen | Content-Type, eerste bytes, gedecodeerde indeling | Het antwoord parseren, decoderen b64_json of downloaden output.url, en vervolgens controleren. |
| De parameter lijkt geen effect te hebben | GlobalGPT genegeerde_parameters en modelkaart | Verwijder velden die niet worden ondersteund en gebruik het modelspecifieke contract. |
Maak een onderscheid tussen bewijsmateriaal met betrekking tot het transport en bewijsmateriaal met betrekking tot de kwaliteit. Een time-out, een DNS-storing of een reactie van de provider over de capaciteit betekent dat je geen geldige afbeelding hebt om te beoordelen. Omgekeerd is een geldige afbeelding met een gewijzigde rand of een gewijzigd label een visueel resultaat dat moet worden gerapporteerd zoals het is, zelfs als de compositie er aantrekkelijk uitziet.
Een checklist voor het bewerken van afbeeldingen die geschikt is voor productie
- De bron bevriezen: sla het invoerbestand, de afmetingen, het formaat en de hash op.
- Afbeeldingsrollen toewijzen: bepaal welk beeld het betreft en geef eventuele referenties aan met betrekking tot de belichting, het kleurenpalet of de compositie.
- Tegen schrijven beveiligde cues: geef een overzicht van het label, het silhouet, de kleuren en de verhoudingen die moeten worden beoordeeld.
- Kies het contract: Gebruik OpenAI multipart voor het ‘native edits’-eindpunt of GlobalGPT JSON-taken voor de openbare media-API.
- Bereken en verstuur: gebruik de huidige OpenAI-tarieven of GlobalGPT
/taken/raming; voeg een idempotentiesleutel toe voor verzendingen waarbij herhalingen veilig zijn. - Verzamelen en decoderen: bewaar één taak-ID, controleer het teruggestuurde bestand en sla de bytes of de URL op in een goedgekeurde opslaglocatie.
- Visueel goedkeuren: vergelijk de uitvoer met de bron voordat deze in een productcatalogus, advertentie of klantgerichte pagina wordt opgenomen.
Als je hetzelfde proces wilt uitvoeren zonder afzonderlijke modeldashboards aan elkaar te koppelen, probeer dan GPT-afbeelding 2 in GlobalGPT. Zie voor de browsergebaseerde versie van de workflow afbeeldingen bewerken in de GlobalGPT-werkruimte; voor een uitgebreidere bespreking van de opzet en de prijzen, zie Configuratie en prijzen van de GPT Image API.
Veelgestelde vragen
Wat is de OpenAI Image Edit API?
Dit is het traject voor het bewerken van afbeeldingen via POST /v1/images/edits. Je verstuurt een invoerafbeelding en een prompt, eventueel met een masker of referentieafbeeldingen, en decodeert vervolgens de teruggestuurde afbeeldingsgegevens. Gebruik de Image API voor een eenmalige bewerking en de Responses API wanneer het product een afbeeldingsgesprek met meerdere rondes vereist.
Geeft de OpenAI Image Edit API een openbare afbeeldings-URL terug?
De gedocumenteerde voorbeelden van de Image API leveren b64_json op. Decodeer die bytes, controleer het bestand en sla het op in een opslagruimte waarover u de controle hebt. Ga er niet vanuit dat een succesvol antwoord een gehoste CDN-URL is.
Is een OpenAI-beeldmasker een exacte pixelselectie?
Nee. Een masker stuurt een op prompts gebaseerde bewerking aan. Het model kan pixels rondom het gevraagde gebied wijzigen, dus controleer labels, productgegevens, veiligheidsmarkeringen en andere elementen die correct moeten blijven.
Hoeveel bronafbeeldingen kan een beeldbewerkingsprogramma gebruiken?
De huidige beeldgids ondersteunt meerdere invoerbeelden voor referentieworkflows. Raadpleeg de documentatie van het betreffende model voor de exacte limiet en het modelspecifieke gedrag; het ondersteunde maximum garandeert niet dat de beelden in elke compositie perfect behouden blijven.
Kan ik het verzoek OpenAI /v1/images/edits naar GlobalGPT sturen door de `base_url` aan te passen?
Het openbare mediacontract van GlobalGPT maakt gebruik van JSON POST /tasks en vervolgens GET /tasks/{id}, met afbeeldingen en aspect_ratio waar het geselecteerde model deze accepteert. In de openbare documentatie worden het multipart-masker, input_fidelity, size of het kwaliteitscontract van OpenAI voor die route niet vermeld.
Hoe moet ik de omvang van een beeldverwerkingstaak inschatten voordat ik deze indien?
Voor GlobalGPT moet u eerst dezelfde JSON-body naar /tasks/estimate sturen. Hiermee wordt geen taak aangemaakt en worden er geen credits gereserveerd. Voor OpenAI moet u de berekening uitvoeren op basis van de huidige tarieven per miljoen tokens en vervolgens het daadwerkelijke verbruik controleren in het antwoord of het factureringsrecord.









