Pro API: afbeeldingen genereren en bewerken
Eén afbeelding kost 1 credit, ongeacht de modus. Genereren vanuit een prompt en het bewerken van een afbeelding die je zelf aanlevert verlopen via dezelfde route.
Een afbeelding indienen
POST /images
{ "prompt": "portrait of a woman in a rainy street at night, neon reflections, cinematic",
"width": 832, "height": 1216 }
| Veld | Type | Standaard | Wat het doet |
|---|---|---|---|
prompt | string | verplicht | De scène. Engels geeft de nauwkeurigste resultaten. |
width, height | int | 1024 x 1024 | Pixelgrootte. Handige formaten: 1024 x 1024 (vierkant), 832 x 1216 (portret), 1216 x 832 (landschap). |
mode | string | generation | edit, img2img of inpaint, zie hieronder. Weggelaten betekent genereren vanuit de prompt. |
image_b64 | string | Bronafbeelding in base64 (PNG of JPEG), verplicht bij alle drie bewerkingsmodi. Maximaal 12 MB gedecodeerd. | |
mask_b64 | string | Masker in base64: verplicht bij inpaint, optioneel bij edit. Schilder de te bewerken gebieden rood, op het formaat van de bronafbeelding. | |
lora | string | Een getraind personage op het account: de name die GET /loras teruggeeft. Zet de trigger ervan in de prompt. | |
lora2, lora2_strength | string, number | Een tweede personage en de bijbehorende sterkte (0 tot 1, standaard 1) voor een scène met twee personen. | |
steps | int | engine | Leeg laten. De engine kent zijn eigen waarde. |
Het antwoord:
{ "jobId": "test-79634842-4586-46d4-ad52-d9ea236ae00d", "seed": 178078967, "cost": 1 }
De seed wordt door de engine getrokken en ter informatie teruggegeven. Hij kan in deze versie niet
als invoer worden vastgezet.
De drie bewerkingsmodi
Alle drie maken gebruik van dezelfde instructiegestuurde bewerkingsengine, die de look van de
bronafbeelding bewaart. Als je een bronafbeelding meestuurt, worden width en height uit de
afbeelding zelf gelezen en hoeven ze niet te worden meegestuurd.
mode | Invoer | Wat de engine doet |
|---|---|---|
edit | image_b64 + prompt (+ optioneel mask_b64) | Past de instructie toe op de hele afbeelding ("add sunglasses", "make it snow"). Met een masker concentreert de wijziging zich binnen het rode gebied. |
inpaint | image_b64 + mask_b64 + prompt | Genereert alleen het rode gebied van het masker opnieuw, volgens de instructie. De rest wordt pixel voor pixel hergesteld. |
img2img | image_b64 + prompt | Bewerkt de hele afbeelding op basis van de prompt, terwijl de compositie en look bewaard blijven: een variatie. |
IMG=$(base64 -w0 photo.png)
curl -s $B/images -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d "{\"mode\":\"edit\",\"prompt\":\"add a red scarf, keep everything else identical\",\"image_b64\":\"$IMG\"}"
Polling
GET /images/{jobId}
| Antwoord | Betekenis |
|---|---|
{ "status": "pending", "phase": "IN_QUEUE" } | In de wachtrij |
{ "status": "pending", "phase": "IN_PROGRESS" } | Wordt gerenderd |
{ "status": "completed", "cost": 1, "file_url": "/pro/v1/images/{jobId}/file", ... } | Klaar, bestand beschikbaar |
{ "status": "failed", "detail": "..." } | Mislukt, en er wordt niets in rekening gebracht |
Poll elke 3 seconden, niet vaker: de wachtrij is gedeeld.
Downloaden
GET /images/{jobId}/file
De PNG zelf, als de response body (Content-Type: image/png). Beschikbaar zodra de status
completed is, en 404 media_indisponible zodra de render verdwenen is. Download hem meteen,
hij wordt niet gearchiveerd.
Annuleren
POST /images/{jobId}/cancel
Annuleert een render die in de wachtrij staat of actief is. Geeft { "ok": true } terug. Er wordt niets
in rekening gebracht, en de kosten die waren gereserveerd tegen het dagelijkse limiet van de sleutel
worden teruggegeven.