Bilderzeugung
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.
| Produkt | Qualität | Preis pro Bild |
|---|---|---|
omev-image-jobs | low (Standard, auch auto) | $0.021 |
omev-image-jobs | medium | $0.024 |
omev-image-jobs | high | $0.039 |
omev-image-lite | eine feste Stufe | $0.0192 |
omev-image-main | low (Standard, auch auto) | $0.021 |
omev-image-pro | low (Standard, auch auto) | $0.024 |
omev-image-pro | medium | $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"}}
| Feld | Erforderlich | Werte |
|---|---|---|
model | ja | omev-image-jobs |
input.prompt | ja | Freitext; schreiben Sie jedes Wort aus, das im Bild erscheinen muss |
input.aspect_ratio | nein | auto (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.resolution | nein | 1K — die einzige angebotene Stufe |
input.quality | nein | low (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.background | nein | auto (Standard), transparent oder opaque |
input.enhance | nein | true (Standard) lässt OmevAI den Prompt verfeinern; false sendet Ihren Prompt genau so, wie Sie ihn geschrieben haben |
input.input_urls | nein | 1–9 öffentliche http(s)-URLs von Referenzbildern (siehe unten) |
callBackUrl | nein | eine ö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
lowerstellt und kosten so viel wie anderelow-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"
}'
| Feld | Erforderlich | Werte |
|---|---|---|
prompt | ja | Freitext |
size | nein | 1024x1024 (Standard), 1536x1024, 1024x1536, auto |
quality | nein | low (Standard) oder auto; medium/high antwortet mit 400 |
n | nein | nur 1 |
response_format | nein | nur 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"
}'
| Feld | Erforderlich | Werte |
|---|---|---|
prompt | ja | Freitext; schreiben Sie jedes Wort aus, das im Bild erscheinen muss |
size | nein | 1024x1024 (Standard), auto oder beliebiges WxH bis 1024 pro Kante |
quality | nein | low, medium, auto; high antwortet mit 400 |
n | nein | bis zu 4 Bildern |
response_format | nein | nur b64_json |
background | nein | transparent, opaque, auto |
output_format | nein | png, 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:
code | Bedeutung |
|---|---|
200 | Erfolg |
401 | der Schlüssel oder die Header wurden nicht akzeptiert |
404 | unbekannter Task |
422 | der Auftrag wurde abgelehnt; msg nennt den Grund (unbekanntes Modell, leerer Prompt, nicht unterstütztes Format, Qualität oder Auflösung, zu viele Referenzen) |
455 | der Bilddienst ist vorübergehend nicht verfügbar; später erneut versuchen |
500 | vorü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.