Pro API: Bilder generieren und retuschieren
Ein Bild kostet 1 Credit, unabhängig vom Modus. Generierung aus einem Prompt und Retusche eines eigenen Bildes laufen über dieselbe Route.
Ein Bild einreichen
POST /images
{ "prompt": "portrait of a woman in a rainy street at night, neon reflections, cinematic",
"width": 832, "height": 1216 }
| Feld | Typ | Standard | Was es bewirkt |
|---|---|---|---|
prompt | string | erforderlich | Die Szene. Englisch liefert die präzisesten Ergebnisse. |
width, height | int | 1024 x 1024 | Pixelgröße. Gute Formate: 1024 x 1024 (quadratisch), 832 x 1216 (Hochformat), 1216 x 832 (Querformat). |
mode | string | generation | edit, img2img oder inpaint, siehe unten. Fehlt der Wert, wird aus dem Prompt generiert. |
image_b64 | string | Quellbild in base64 (PNG oder JPEG), von allen drei Retusche-Modi benötigt. Maximal 12 MB dekodiert. | |
mask_b64 | string | Maske in base64: von inpaint benötigt, für edit optional. Die zu retuschierenden Bereiche rot einmalen, in der Größe des Quellbilds. | |
lora | string | Ein trainierter Charakter im Account: der name, der von GET /loras zurückgegeben wird. Den zugehörigen trigger in den Prompt einfügen. | |
lora2, lora2_strength | string, number | Ein zweiter Charakter und seine Stärke (0 bis 1, Standard 1) für eine Szene mit zwei Personen. | |
steps | int | engine | Leer lassen. Die Engine kennt ihren eigenen Wert. |
Die Antwort:
{ "jobId": "test-79634842-4586-46d4-ad52-d9ea236ae00d", "seed": 178078967, "cost": 1 }
Der seed wird von der Engine gezogen und zur Information zurückgegeben. Er kann in dieser Version
nicht als Eingabe festgelegt werden.
Die drei Retusche-Modi
Alle drei laufen auf derselben anweisungsgesteuerten Editing-Engine, die das Aussehen des
Quellbilds beibehält. Wenn du ein Quellbild angibst, werden width und height aus dem Bild
selbst ausgelesen und müssen nicht mitgesendet werden.
mode | Eingaben | Was die Engine macht |
|---|---|---|
edit | image_b64 + prompt (+ optionale mask_b64) | Wendet die Anweisung auf das gesamte Bild an ("add sunglasses", "make it snow"). Mit einer Maske konzentriert sich die Änderung auf den roten Bereich. |
inpaint | image_b64 + mask_b64 + prompt | Regeneriert nur den roten Bereich der Maske gemäß der Anweisung. Der Rest wird pixelgenau wiederhergestellt. |
img2img | image_b64 + prompt | Bearbeitet das gesamte Bild anhand des Prompts, behält dabei Komposition und Aussehen bei: eine Variation. |
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}
| Antwort | Bedeutung |
|---|---|
{ "status": "pending", "phase": "IN_QUEUE" } | In der Warteschlange |
{ "status": "pending", "phase": "IN_PROGRESS" } | Wird gerendert |
{ "status": "completed", "cost": 1, "file_url": "/pro/v1/images/{jobId}/file", ... } | Fertig, Datei bereit |
{ "status": "failed", "detail": "..." } | Fehlgeschlagen, und es wird nichts berechnet |
Alle 3 Sekunden abfragen, nicht häufiger: die Warteschlange ist geteilt.
Download
GET /images/{jobId}/file
Das PNG selbst als Antwort-Body (Content-Type: image/png). Verfügbar sobald der
Status completed ist, und 404 media_indisponible sobald das Render nicht mehr vorhanden ist. Sofort herunterladen, es wird nicht archiviert.
Abbrechen
POST /images/{jobId}/cancel
Bricht ein warteschlangenbefindliches oder laufendes Render ab. Antwortet mit { "ok": true }. Es wird nichts berechnet, und das gegen das Tageslimit der Key reservierte Guthaben wird zurückgegeben.