Zum Hauptinhalt springen

Bilderzeugung

Zugriff wird auf Anfrage freigeschaltet

Diese Anleitungen stehen allen Kunden zur Verfügung, aber die Bilderzeugung wird für einen Schlüssel auf Anfrage freigeschaltet: Schreiben Sie an support@omev.be. Ein API-Schlüssel für Text oder der Zugriff auf diese Seite bedeutet nicht, dass Bildprodukte für den Schlüssel aktiv sind.

Maximale Referenzbilder pro Anfrage: 9. Referenz-Eingaben (Bild-zu-Bild) werden von Bild-Jobs mit input_urls unterstützt.

Alle Bildprodukte erzeugen Ausgaben der 1K-Klasse (bis zu einer 1024-Pixel-Kante bei quadratischen Anfragen sowie breitere oder höhere Formate derselben Klasse, wo das Produkt sie anbietet). Es gibt keine 2K- oder 4K-Stufen; eine solche Anfrage wird abgelehnt.

Preise​

Sie zahlen pro geliefertem Bild; ein Aufruf, der mehrere Bilder liefert, wird für jedes Bild berechnet.

ProduktQualitätPreis pro Bild
omev-image-jobslow (Standard, auch auto)$0.021
omev-image-jobsmedium$0.024
omev-image-jobshigh$0.039
omev-image-liteeine feste Stufe$0.0192
omev-image-mainlow (Standard, auch auto)$0.021
omev-image-prolow (Standard, auch auto)$0.024
omev-image-promedium$0.1968

Eine fehlgeschlagene oder abgelehnte Generierung wird nicht berechnet. Alle Produkte und Preise: Modelle und Preise.

Es gibt zwei Möglichkeiten, Bilder zu erstellen, die für zwei unterschiedliche Anwendungsfälle konzipiert sind.

Bild-Jobs – der Hauptweg für Pipelines. Sie geben eine Bestellung auf, fragen das Ergebnis ab (oder erhalten es an Ihrer Callback-Adresse) und laden das fertige Bild von einer URL herunter, die wir 48 Stunden lang hosten. Ein Modell, omev-image-jobs, Ausgabe der 1K-Klasse in vielen Formaten, drei Qualitätsstufen und optionale Referenzbilder. Dies ist der Weg für die unbeaufsichtigte Massengenerierung: Ihr Worker reiht Aufträge in eine Warteschlange ein und holt die Ergebnisse ab, ohne dass ein Mensch an einem Socket wartet.

Direkte Modelle. Das Bild wird im Antwortkörper eines einzigen Aufrufs zurückgegeben: omev-image-lite, omev-image-main und omev-image-pro. Wählen Sie diese, wenn jemand gerade auf dem Bildschirm auf das Bild wartet.

Bild-Jobs-API​

Drei Aufrufe, derselbe Host und derselbe Schlüssel wie für alles andere.

1. Eine Bestellung aufgeben​

curl -sS https://llmapi.omev.be/api/v1/jobs/createTask \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "omev-image-jobs",
"input": {
"prompt": "Flat vector infographic: three steps of onboarding, numbered 1 2 3, short labels",
"aspect_ratio": "1:1"
}
}'
{"code": 200, "msg": "success", "data": {"taskId": "task_omevimage_1754937600123_a1b2c3d4"}}
FeldErforderlichWerte
modeljaomev-image-jobs
input.promptjaFreitext; schreiben Sie jedes Wort aus, das im Bild erscheinen muss
input.aspect_rationeinauto (Standard, quadratisch), 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, 9:21, 5:4, 4:5, 9:8, 8:9, 27:16, 16:27, 2:1, 1:2, 3:1, 1:3
input.resolutionnein1K — die einzige angebotene Stufe
input.qualityneinlow (Standard; auto ist dasselbe), medium oder high; siehe Preise. medium und high gelten für Text-zu-Bild-Aufträge, nicht mit input_urls
input.backgroundneinauto (Standard), transparent oder opaque
input.enhanceneintrue (Standard) lässt OmevAI den Prompt verfeinern; false sendet Ihren Prompt genau so, wie Sie ihn geschrieben haben
input.input_urlsnein1–9 öffentliche http(s)-URLs von Referenzbildern (siehe unten)
callBackUrlneineine öffentliche http(s)-Adresse; wir senden den endgültigen Task-Datensatz per POST dorthin; einfaches Polling funktioniert ebenfalls

Nicht quadratische Formate werden in derselben 1K-Klasse erzeugt, zum Beispiel 16:9 als 1360x768 und 3:2 als 1536x1024.

Ein 403 bedeutet normalerweise, dass der Schlüssel nicht für Bild-Jobs freigeschaltet ist. Kontaktieren Sie support@omev.be, um den Zugriff zu vereinbaren; wiederholen Sie den Versuch nicht mehrmals. Fehler der Jobs-API kommen mit dem HTTP-Status 200 und dem Code im Body, so wie es bestehende aufgabenbasierte Bildintegrationen erwarten: {"code": 422, "msg": "<was das Problem war>", "data": null}. Prüfen Sie code in jeder Antwort, nicht nur den HTTP-Status. Siehe Fehler.

2. Das Ergebnis prüfen​

curl -sS "https://llmapi.omev.be/api/v1/jobs/recordInfo?taskId=task_omevimage_1754937600123_a1b2c3d4" \
-H "Authorization: Bearer $OMEV_API_KEY"
{
"code": 200,
"msg": "success",
"data": {
"taskId": "task_omevimage_1754937600123_a1b2c3d4",
"model": "omev-image-jobs",
"state": "success",
"resultJson": "{\"resultUrls\":[\"https://llmapi.omev.be/api/v1/jobs/result?id=task_omevimage_1754937600123_a1b2c3d4\"]}",
"failCode": "",
"failMsg": "",
"costTime": 96000,
"createTime": 1754937600123,
"completeTime": 1754937696123,
"progress": 100,
"effectiveQuality": "low"
}
}

state durchläuft waiting → queuing → generating → success (oder fail, wobei failCode und failMsg den Grund angeben). Fragen Sie alle 2–5 Sekunden ab und vergrößern Sie die Intervalle bei wiederholten Versuchen; ein typischer Job dauert ein bis fünf Minuten. resultJson ist ein JSON-String: parsen Sie ihn und entnehmen Sie die URLs aus resultUrls. effectiveQuality ist die Qualitätsstufe, in der der Auftrag erstellt und berechnet wurde.

Mit callBackUrl wird derselbe Datensatz an Ihre Adresse gesendet, sobald der Task success oder fail erreicht.

3. Das Bild herunterladen​

Laden Sie jede Ergebnis-URL mit demselben Authorization: Bearer-Header herunter wie die übrigen Aufrufe; ohne Schlüssel antwortet sie mit 401. Die Datei bleibt 48 Stunden verfügbar: Übertragen Sie die Bytes sofort in Ihren eigenen Speicher; nach 48 Stunden wird die Datei entfernt und die URL antwortet mit 404. Der Auftragsdatensatz (recordInfo) bleibt 7 Tage abrufbar.

curl -sS -o image.png "https://llmapi.omev.be/api/v1/jobs/result?id=task_omevimage_1754937600123_a1b2c3d4" \
-H "Authorization: Bearer $OMEV_API_KEY"

Wenn Ihr Code bereits eine aufgabenbasierte Bild-API dieser Art steuert (einen Task erstellen, einen Datensatz abfragen, resultUrls lesen), funktioniert er hier nach zwei Änderungen: der Basis-URL und dem Schlüssel.

Referenzbilder (Bild-zu-Bild)​

Bestellungen können 1–9 Referenzbilder enthalten: Fügen Sie input ein Array input_urls mit öffentlichen http(s)-URLs der Bilder hinzu, die bearbeitet oder kombiniert werden sollen. Die Reihenfolge der Liste bleibt erhalten: Wenn Ihr Prompt sagt „put the product from image 1 into the scene from image 2“, ist image 1 gleich input_urls[0].

{
"model": "omev-image-jobs",
"input": {
"prompt": "Put the product from image 1 into the environment from image 2",
"input_urls": [
"https://example.com/product.png",
"https://example.com/location.jpg"
],
"aspect_ratio": "1:1"
}
}
  • Ohne input_urls (oder mit einer leeren Liste) bleibt es ein gewöhnlicher Text-zu-Bild-Auftrag.
  • Jede Referenz muss ein PNG-, JPEG- oder WebP-Bild mit höchstens 20 MB sein.
  • Mehr als 9 URLs werden mit der Meldung A maximum of 9 reference images is allowed per request. abgelehnt.
  • Referenzen werden beim Aufgeben der Bestellung in den internen Speicher kopiert, sodass eine später ablaufende Quell-URL einen laufenden Job nicht unterbrechen kann.
  • Aufträge mit Referenzen werden in der Qualität low erstellt und kosten so viel wie andere low-Aufträge.

omev-image-main​

Die Anfrageform ist die OpenAI-kompatible Images API, sodass jedes dafür gebaute SDK unverändert funktioniert: Setzen Sie base_url auf OmevAI und rufen Sie images.generate auf. omev-image-main ist der stabile Standard für die interaktive Nutzung. Preis: $0.021 pro Bild.

curl -sS https://llmapi.omev.be/v1/images/generations \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "omev-image-main",
"prompt": "A photorealistic cat wearing sunglasses",
"size": "1024x1024"
}'
FeldErforderlichWerte
promptjaFreitext
sizenein1024x1024 (Standard), 1536x1024, 1024x1536, auto
qualityneinlow (Standard) oder auto; medium/high antwortet mit 400
nneinnur 1
response_formatneinnur b64_json

Das Bild befindet sich in data[0].b64_json. Wenn der Aufruf mit 504 in ein Timeout läuft, senden Sie dieselbe Anfrage erneut mit demselben Idempotency-Key-Header: Der Auftrag läuft serverseitig weiter und der Retry nimmt das fertige Ergebnis auf, statt ein zweites Bild zu bezahlen.

omev-image-pro​

Dieselbe OpenAI-kompatible Images-API-Form wie omev-image-main. omev-image-pro ist die Qualitätsstrecke: Prompts mit eingebettetem Text (Infografiken, Diagramme, Charts, Tabellen, Labels, Logos) werden hier zuverlässig gerendert. Preis: $0.024 pro Bild in der Qualität low oder auto, $0.1968 pro Bild in medium.

curl -sS https://llmapi.omev.be/v1/images/generations \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "omev-image-pro",
"prompt": "Flat vector infographic: three steps of onboarding, numbered 1 2 3, short labels",
"size": "1024x1024"
}'
FeldErforderlichWerte
promptjaFreitext; schreiben Sie jedes Wort aus, das im Bild erscheinen muss
sizenein1024x1024 (Standard), auto oder beliebiges WxH bis 1024 pro Kante
qualityneinlow, medium, auto; high antwortet mit 400
nneinbis zu 4 Bildern
response_formatneinnur b64_json
backgroundneintransparent, opaque, auto
output_formatneinpng, jpeg, webp
client = OpenAI(base_url="https://llmapi.omev.be/v1", api_key=os.environ["OMEV_API_KEY"])

resp = client.images.generate(
model="omev-image-pro",
prompt="Flat vector infographic: three steps of onboarding, numbered 1 2 3",
size="1024x1024",
)
png_bytes = base64.b64decode(resp.data[0].b64_json)

Das Bild befindet sich in data[0].b64_json.

omev-image-lite​

Eine andere Route und eine andere Body-Struktur – diejenige, die um contents und parts herum aufgebaut ist. Wenn Ihr Code diese Struktur bereits beherrscht, funktioniert er hier ohne Änderungen. Die Ausgabe ist immer 1024×1024, daher gibt es keinen Größenparameter. Preis: $0.0192 pro Bild.

curl -sS https://llmapi.omev.be/v1beta/models/omev-image-lite:generateContent \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{"parts": [{"text": "A photorealistic cat wearing sunglasses"}]}]
}'

Antwort:

{
"candidates": [{
"content": {
"role": "model",
"parts": [{"inlineData": {"mimeType": "image/png", "data": "<base64 PNG>"}}]
},
"finishReason": "STOP"
}]
}

Das Bild befindet sich in candidates[0].content.parts[0].inlineData.data, sein Typ im benachbarten mimeType.

Setzen Sie generationConfig.candidateCount (1–4), um entsprechend viele separate candidates zu erhalten, jeder mit einem Bild in inlineData.

Fehler​

Direkte Modelle (omev-image-lite, omev-image-main, omev-image-pro) verwenden dieselbe Struktur wie der Rest der API – siehe Fehler und Wiederholungsversuche. Ein fehlerhafter Body gibt einen 400 mit einer Beschreibung des Problems zurück; ein abgelehnter Prompt gibt ebenfalls einen 400 zurück, kein leeres Bild. Ein Aufruf, der zu lange dauert, gibt 504 zurück: Wiederholen Sie ihn bei omev-image-main mit demselben Idempotency-Key.

Bild-Jobs antworten mit dem HTTP-Status 200 und dem Code im Body:

codeBedeutung
200Erfolg
401der Schlüssel oder die Header wurden nicht akzeptiert
404unbekannter Task
422der Auftrag wurde abgelehnt; msg nennt den Grund (unbekanntes Modell, leerer Prompt, nicht unterstütztes Format, Qualität oder Auflösung, zu viele Referenzen)
455der Bilddienst ist vorübergehend nicht verfügbar; später erneut versuchen
500vorübergehender Fehler; eine begrenzte Anzahl von Malen wiederholen

Ein Task, der angenommen wurde und danach fehlgeschlagen ist, meldet dies im Task-Datensatz: state: "fail" mit failCode und failMsg. Ein fehlgeschlagener Task wird nicht berechnet.