Ga naar hoofdinhoud

GPT-Image-1 API: een stapsgewijze handleiding met voorbeelden

Leer hoe je afbeeldingen genereert en bewerkt met de GPT-Image-1 API, inclusief setup, parametergebruik en praktische voorbeelden zoals maskeren en meerdere afbeeldingen combineren.
Bijgewerkt 2 okt 2026  · 12 min lezen

Verken met AI

ChatGPTClaudePerplexity

Een paar weken geleden ging ChatGPT viral met zijn nieuwe model voor afbeeldingsgeneratie. Dit model is veruit het beste dat ik heb gezien. Wat het onderscheidt, is het vermogen om afbeeldingen te bewerken. Het is ongelooflijk nauwkeurig en maakt het extreem eenvoudig om je verbeelding tot leven te brengen. Andere modellen kunnen dit ook, maar niet met dezelfde mate van nauwkeurigheid.

Afbeeldingen genereren in hun interface is eenvoudig, omdat we alleen een tekstprompt hoeven te geven. Als programmeur zat ik echter te wachten tot het naar de API zou komen, zodat ik er programmatisch mee kon werken. Die dag is eindelijk aangebroken, en ik schrijf deze blog om je te leren hoe je het met Python gebruikt.

Als je alleen wilt weten hoe je het binnen de chatinterface gebruikt, schreef ik eerder deze handleiding voor GPT-4o-afbeeldingsgeneratie met acht praktische voorbeelden. Je kunt ook ons bijgewerkte artikel vinden over de nieuwe ChatGPT-afbeeldingen, met gebruik van het GPT-Image-1.5-model.

GPT-Image-1 API instellen

Het nieuwe GPT-afbeeldingsmodel is beschermd, wat betekent dat extra verificaties vereist zijn om het te kunnen gebruiken. In deze sectie leggen we uit hoe je de API instelt. Als je al een API-sleutel hebt, kun je de eerste stap overslaan.

Stap 1: Genereer een API-sleutel

De eerste stap is het genereren van een API-sleutel. We kunnen er een aanmaken door in te loggen op hun platform en naar de pagina met API-sleutels te gaan. Klik vervolgens op de knop "Create new secret key".

Zodra de sleutel is gegenereerd, maak je een bestand met de naam .env en kopieer je deze met het volgende formaat:

OPENAI_API_KEY=<paste_your_api_key_here>

Stap 2: Onze organisatie verifiëren

Een groot verschil met de andere OpenAI-modellen is dat je voor het gebruik van de GPT image API je organisatie moet verifiëren. De reden hiervoor is dat GPT-Image-1 realistische en gedetailleerde afbeeldingen kan genereren, wat zorgen oproept over mogelijk misbruik, zoals het maken van deepfakes of ongepaste content. Door organisaties te verifiëren kan OpenAI het gebruik beter monitoren en de veiligheidsrichtlijnen handhaven.

Je kunt je organisatie verifiëren, ook als je geen bedrijf hebt. Houd er echter rekening mee dat dit proces vereist dat je je overheids-ID opgeeft en een gezichtsverificatie voltooit.

Om de verificatie uit te voeren, ga je naar het tabblad Algemeen in het OpenAI API-platform en klik je op de knop onder de sectie "Verifications".

Het proces wordt uitgevoerd door een derde partij en bestaat uit:

  1. Het uploaden van een afbeelding van een identiteitsdocument.
  2. Met de camera van je mobiele apparaat verifiëren dat je identiteit overeenkomt met het aangeleverde document.

Het proces duurt slechts een paar minuten om te voltooien en daarna ongeveer 15 minuten om te worden verwerkt.

Python instellen

Voor deze tutorial installeren we de volgende Python-pakketten:

  • openai: Het officiële OpenAI-pakket waarmee we met hun API kunnen communiceren.
  • dotenv: Een Python-pakket dat het eenvoudig maakt om de API-sleutel veilig te laden uit het hierboven aangemaakte .env-bestand.

We kunnen deze installeren met het commando:

pip install openai dotenv

Onze eerste afbeelding genereren met GPT-Image-1

Laten we kijken hoe we een afbeelding kunnen genereren met gpt-image-1. Maak een nieuw Python-bestand, bijvoorbeeld generate_image.py, in dezelfde map als het .env-bestand.

Importeer vervolgens de benodigde pakketten:

# Import the packages
from openai import OpenAI
from dotenv import load_dotenv
import os
import base64
import time

Let op dat os en base64 ingebouwde Python-pakketten zijn en niet geïnstalleerd hoeven te worden.

Daarna laden we de API-sleutel en initialiseren we de OpenAI-client:

# Load the API key
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
# Initialize the OpenAI client
client = OpenAI(api_key=api_key)

Vervolgens vragen we de gebruiker om een tekstprompt in te voeren met de ingebouwde functie input() en sturen we een aanvraag voor afbeeldingsgeneratie naar de API:

# Ask the user to input a prompt in the terminal
print("What do you want to generate?")
prompt = input("> ")
print("Generating image...")
# Send the prompt to the API
img = client.images.generate(
  model="gpt-image-1",
  prompt=prompt,
  background="auto",
  n=1,
  quality="high",
  size="1024x1024",
  output_format="png",
  moderation="auto",
)

Tot slot slaan we de gegenereerde afbeelding op in een bestand:

# Save the image into a file
image_bytes = base64.b64decode(img.data[0].b64_json)
with open(f"output_{int(time.time())}.png", "wb") as f:
  f.write(image_bytes)

Het volledige script is hier te vinden. Voer dit script uit met het commando:

python generate_image.py

Hier is een voorbeeld met de output:

Voorbeeld van het uitvoeren van gpt-image-1 via de API

GPT-Image 1-parameters

In deze sectie beschrijven we de meest relevante parameters van het gpt-image-1-model:

  • prompt: De tekstuele instructie die beschrijft welke afbeelding we door het model willen laten genereren.
  • background: Het type achtergrond voor de afbeelding. Dit moet een van "transparent", "opaque" of "auto" zijn. De standaardwaarde is "auto", waarbij het model op basis van de inhoud bepaalt wat het beste achtergrondtype is. Let op: JPEG-afbeeldingen ondersteunen geen transparante achtergronden.
  • n: Het aantal afbeeldingen dat gegenereerd moet worden. Moet een getal van 1 tot 10 zijn.
  • quality: De kwaliteit van de gegenereerde afbeelding. Dit moet een van "high", "medium" of "low" zijn, waarbij de standaard "high" is.
  • size: De grootte van de afbeelding in pixels. Dit moet een van "1024x1024" (vierkant), "1536x1024" (liggend), "1024x1536" (staand) zijn.
  • output_format: Het afbeeldingsformaat. Dit moet een van "png", "jpeg" of "webp" zijn. Standaard is "png".
  • moderation: Het niveau van contentmoderatie. Moet ofwel "low" zijn voor een minder restrictief filter of "auto", wat de standaard is.

We hebben de belangrijkste parameters voor het gpt-image-1-model behandeld. Voor meer details en een volledige lijst met parameters, bekijk de officiële API-documentatie.

Effecten van de quality-parameter

Hier is een vergelijking naast elkaar van afbeeldingen die met dezelfde prompt zijn gegenereerd, maar met verschillende kwaliteiten:

Effect van kwaliteit op fotorealistische afbeeldingen met gpt-image-1

We zien dat de eerste kat (met de laagste kwaliteit) enkele artefacten rond de ogen heeft, en dat de afbeelding aanzienlijk realistischer wordt naarmate de kwaliteit toeneemt.

Hier is nog een voorbeeld met een cartoonachtige output:

Effect van kwaliteit op tekeningen in gpt-image-1-generatie

In dit geval merken we ook dat hoe hoger de kwaliteit, hoe verzorgder de afbeelding is. Naar mijn mening is dit echter minder relevant voor content die niet realistisch hoeft te zijn.

Onthoud dat hoe hoger de kwaliteit, hoe hoger de kosten en de rekentijd. Het is dus een goed idee om per usecase een goede balans te vinden. Ik raad aan om de parameters van laag naar hoog te proberen om te zien wat de minimale waarde is die acceptabele resultaten geeft voor elke usecase.

Background-parameter

In mijn experimenten merkte ik dat het model deze parameter vaak negeerde. Hier zijn voorbeelden naast elkaar waarin ik de background-parameters en de transparantie-instructies in de prompt varieerde:

Voorbeelden van achtergrondtransparantie in gpt-image-1

In het eerste voorbeeld werd de transparantieparameter genegeerd. In het tweede voegde ik de transparantie-instructies toe aan de prompt, en dat werkte iets beter. In het laatste vroeg ik om een ondoorzichtige achtergrond maar specificeerde ik in de prompt dat ik een sticker wilde, en kreeg ik een transparante achtergrond.

Ik raad nog steeds aan om de parameter te gebruiken zodat die overeenkomt met wat je wilt, maar zorg er ook voor dat je het gewenste resultaat in de prompt specificeert om het te versterken.

Afbeeldingen bewerken met GPT-Image-1

Zoals ik in de introductie al zei, is het meest spannende aan GPT-Image-1 het vermogen om afbeeldingen te bewerken. Laten we beginnen met hoe je het kunt vragen een afbeelding te bewerken en daarna een paar usecases verkennen.

Voor het bewerken kan het grootste deel van de code worden hergebruikt. Het enige dat verandert, is dat we in plaats van de functie client.images.generate() de functie client.images.edit() gebruiken.

Hier is een voorbeeld:

img = client.images.edit(
  model="gpt-image-1",
  image=[
    open("my-image.jpg", "rb"),
  ],
  prompt=prompt,
  n=1,
  quality="high",
  size="1024x1536",
)

De nieuwe parameter is image. Dit is een lijst met invoerafbeeldingen die in de bewerking worden gebruikt. In dit geval geven we slechts één afbeelding, my-image.jpg, die zich in dezelfde map bevindt als het script.

Hier is een voorbeeld van GPT Image 1 die een van mijn foto's bewerkt:

Voorbeeld van het bewerken van een afbeelding met gpt-image-1

Omdat de originele afbeelding een staand formaat heeft, gebruikte ik het staande formaat 1024x1536. Dit is echter niet dezelfde verhouding als de oorspronkelijke afbeelding. Zelfs in bewerkingsmodus kan het model alleen afbeeldingen produceren in de drie hierboven gespecificeerde groottes.

Het volledige bewerkingsscript is hier te vinden.

Maskers gebruiken

De bewerkingsmodus biedt een mask-parameter die we kunnen gebruiken om aan te geven welke gebieden in de afbeelding bewerkt moeten worden. Het masker moet een PNG-afbeelding zijn van maximaal 4 MB en dezelfde afmetingen hebben als de afbeelding. Gebieden met 100% transparantie komen overeen met de gebieden die GPT Image 1 mag bewerken.

We geven het masker op dezelfde manier door als de afbeelding, behalve dat het in dit geval geen lijst is:

img = client.images.edit(
  model="gpt-image-1",
  image=[
    open(sys.argv[1], "rb"),
  ],
  # We provide the mask like this
  mask=open("mask.png", "rb"),
  prompt=prompt,
  n=1,
  quality="high",
  size="1536x1024",
)

Toen ik ermee experimenteerde, werkte het echter niet erg goed, en ik heb online vergelijkbare ervaringen gezien.

Hier is een voorbeeld:

Voorbeeld van het gebruik van maskeren met GPT Image 1

Ik heb ook geprobeerd om elementen op specifieke locaties toe te voegen, en dat werkte niet consistent. Net als bij het gebruik van de background-parameter voor afbeeldingsgeneratie, bleek het voor mij het beste te werken om in de prompt te beschrijven wat ik wil.

Meerdere afbeeldingen gebruiken

Het model kan meerdere afbeeldingen tegelijk verwerken en combineren. In het onderstaande voorbeeld gebruiken we het om een marketingposter te maken door de afbeeldingen van deze drie individuele drankjes te combineren:

Meerdere foto's combineren in gpt-image-1

We geven de drie afbeeldingen door als een lijst in de image-parameter, als volgt:

prompt = """
Create a vibrant and eye-catching marketing poster to 
promote the cold drinks offerings at our coffee shop.
"""

img = client.images.edit(
  model="gpt-image-1",
  # We can provide multiple images at once
  image=[
    open("latte.png", "rb"),
    open("americano.png", "rb"),
    open("icetea.png", "rb"),
  ],
  prompt=prompt,
  size="1536x1024",
)

Hier is het resultaat:

Resultaat van het combineren van meerdere foto's met gpt-image-1

GPT-Image-1 prijzen

Afbeeldingen genereren wordt in rekening gebracht op basis van:

  1. Het aantal tokens in de tekstprompt.
  2. Het aantal tokens in de invoerafbeeldingen.
  3. Het aantal tokens in de uitvoerafbeelding.

Token-prijsinformatie met gpt-image-1

Soms is het lastig om in te schatten wat deze kosten voorstellen, omdat we niet weten uit hoeveel tokens een afbeelding bestaat. 

Omdat de dimensies van de uitvoerafbeeldingen bekend zijn, weten we hoeveel tokens er voor elk nodig zijn. We kunnen dus exacte waarden geven voor de prijs van de tokens voor de uitvoerafbeelding (wat het duurste deel is):

Uitvoerprijsinformatie met gpt-image-1

Deze prijs is afhankelijk van de kwaliteit en de grootte van de afbeelding. Voor meer details, bekijk de prijspagina van GPT Image 1.

Wanneer we een afbeelding genereren, retourneert de API het aantal gebruikte tokens. We kunnen dit combineren met de bovenstaande informatie om precies te weten hoeveel het kost. 

We kunnen het aantal gebruikte tokens tonen door het veld usage van het resultaat af te drukken:

img = client.images.generate(
  model="gpt-image-1",
  prompt=prompt,
  background="transparent",
  n=1,
  quality="medium",
  size="1024x1024",
  moderation="auto",
  output_format="png",
)
# Add this to see the usage
print("Prompt tokens:", img.usage.input_tokens_details.text_tokens)
print("Input images tokens:", img.usage.input_tokens_details.image_tokens)
print("Output image tokens:", img.usage.output_tokens)

Output:

Prompt tokens: 8
Input images tokens: 0
Output image tokens: 272

Conclusie

Ondanks een paar tekortkomingen van de API, zoals dat maskeren en transparantie niet betrouwbaar genoeg zijn, kan het model de instructies in de prompt met hoge precisie uitvoeren.

Ik denk dat dit model veel mogelijkheden biedt om erop voort te bouwen. In deze tutorial hebben we de basis geleerd van hoe je het gebruikt. Hier zijn een paar ideeën die je kunt verkennen om voort te bouwen op wat je hier hebt geleerd:

  • Het stroomlijnen van de omzetting van telefoonfoto's van eten naar prachtige foodfotografie voor gebruik door restaurants in hun menu's.
  • Maak op basis van een foto van een vriend of een selfie een stickerpack met verschillende emoties voor gebruik in chatapps.
  • Maak een tool die, gegeven de beschrijvingen van losse scènes, van die scènes een strip maakt.

François Aubry's photo
Author
François Aubry
LinkedIn
Full-stack engineer & oprichter bij CheapGPT. Lesgeven is altijd mijn passie geweest. Al vanaf mijn studententijd zocht ik actief naar kansen om bijles te geven en andere studenten te helpen. Die passie bracht me ertoe om te promoveren, waarbij ik ook als onderwijsassistent werkte ter ondersteuning van mijn academische werk. In die jaren vond ik veel voldoening in de traditionele klasomgeving, waar ik verbindingen kon leggen en leren kon begeleiden. Met de opkomst van online leerplatforms zag ik echter het transformerende potentieel van digitaal onderwijs. Sterker nog, ik was actief betrokken bij de ontwikkeling van zo’n platform op onze universiteit. Ik zet me sterk in om traditionele didactische principes te combineren met innovatieve digitale methoden. Mijn passie is om cursussen te maken die niet alleen boeiend en informatief zijn, maar ook toegankelijk voor lerenden in dit digitale tijdperk.
Onderwerpen
Kunstmatige intelligentie
Large Language Models
OpenAI

Leer AI met deze cursussen!

Cursus

Werken met de OpenAI API

3 uur
179.5K
Begin je reis met het ontwikkelen van AI-gestuurde applicaties met de OpenAI API. Leer over de functionaliteit achter populaire AI-toepassingen zoals ChatGPT.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken