curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-kontext-pro",
"prompt": "Change hair color to blue",
"image_urls": ["https://upload.apimart.ai/f/models/9998230420418352-159728fe-5ae8-4330-857a-a84c034d8d21-flux-kontext-pro.webp"],
"size": "16:9"
}'
import requests
url = "https://api.apimart.ai/v1/images/generations"
payload = {
"model": "flux-kontext-pro",
"prompt": "Change hair color to blue",
"image_urls": ["https://upload.apimart.ai/f/models/9998230420418352-159728fe-5ae8-4330-857a-a84c034d8d21-flux-kontext-pro.webp"],
"size": "16:9"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/images/generations";
const payload = {
model: "flux-kontext-pro",
prompt: "Change hair color to blue",
image_urls: ["https://upload.apimart.ai/f/models/9998230420418352-159728fe-5ae8-4330-857a-a84c034d8d21-flux-kontext-pro.webp"],
size: "16:9"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01KFG5BBFNK1YQDTJDZY0P0QT2"
}
]
}
{
"error": {
"code": 401,
"message": "Authentifizierung fehlgeschlagen. Überprüfen Sie Ihren API-Key.",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Unzureichendes Guthaben. Bitte laden Sie Ihr Konto auf.",
"type": "payment_required"
}
}
Flux Kontext
Flux Kontext Bildgenerierung
-
Asynchrone Verarbeitung; nach dem Absenden wird eine Aufgaben-ID zur späteren Abfrage zurückgegeben
-
Pro und Max unterstützen sowohl Text-zu-Bild als auch die Bearbeitung mit Referenzbildern
-
expires_atim Generierungsergebnis gibt den Ablaufzeitpunkt des Bildlinks an
POST
/
v1
/
images
/
generations
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-kontext-pro",
"prompt": "Change hair color to blue",
"image_urls": ["https://upload.apimart.ai/f/models/9998230420418352-159728fe-5ae8-4330-857a-a84c034d8d21-flux-kontext-pro.webp"],
"size": "16:9"
}'
import requests
url = "https://api.apimart.ai/v1/images/generations"
payload = {
"model": "flux-kontext-pro",
"prompt": "Change hair color to blue",
"image_urls": ["https://upload.apimart.ai/f/models/9998230420418352-159728fe-5ae8-4330-857a-a84c034d8d21-flux-kontext-pro.webp"],
"size": "16:9"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/images/generations";
const payload = {
model: "flux-kontext-pro",
prompt: "Change hair color to blue",
image_urls: ["https://upload.apimart.ai/f/models/9998230420418352-159728fe-5ae8-4330-857a-a84c034d8d21-flux-kontext-pro.webp"],
size: "16:9"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01KFG5BBFNK1YQDTJDZY0P0QT2"
}
]
}
{
"error": {
"code": 401,
"message": "Authentifizierung fehlgeschlagen. Überprüfen Sie Ihren API-Key.",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Unzureichendes Guthaben. Bitte laden Sie Ihr Konto auf.",
"type": "payment_required"
}
}
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-kontext-pro",
"prompt": "Change hair color to blue",
"image_urls": ["https://upload.apimart.ai/f/models/9998230420418352-159728fe-5ae8-4330-857a-a84c034d8d21-flux-kontext-pro.webp"],
"size": "16:9"
}'
import requests
url = "https://api.apimart.ai/v1/images/generations"
payload = {
"model": "flux-kontext-pro",
"prompt": "Change hair color to blue",
"image_urls": ["https://upload.apimart.ai/f/models/9998230420418352-159728fe-5ae8-4330-857a-a84c034d8d21-flux-kontext-pro.webp"],
"size": "16:9"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/images/generations";
const payload = {
model: "flux-kontext-pro",
prompt: "Change hair color to blue",
image_urls: ["https://upload.apimart.ai/f/models/9998230420418352-159728fe-5ae8-4330-857a-a84c034d8d21-flux-kontext-pro.webp"],
size: "16:9"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01KFG5BBFNK1YQDTJDZY0P0QT2"
}
]
}
{
"error": {
"code": 401,
"message": "Authentifizierung fehlgeschlagen. Überprüfen Sie Ihren API-Key.",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Unzureichendes Guthaben. Bitte laden Sie Ihr Konto auf.",
"type": "payment_required"
}
}
Unterstützte Modelle
| Modell | Beschreibung |
|---|---|
flux-kontext-pro | Flux Kontext Pro für Bildgenerierung und -bearbeitung |
flux-kontext-max | Flux Kontext Max für Bildgenerierung und -bearbeitung in hoher Qualität |
Autorisierung
string
erforderlich
Alle Endpunkte erfordern eine Authentifizierung mit einem Bearer-Token.API-Key abrufen:Rufen Sie die API-Key-Verwaltung auf, um Ihren API-Key zu erhalten.Fügen Sie ihn dem Anfrage-Header hinzu:
Authorization: Bearer YOUR_API_KEY
Body
string
erforderlich
Modellname:
flux-kontext-pro– Kontext Pro für Bildgenerierung und -bearbeitungflux-kontext-max– Kontext Max für Bildgenerierung und -bearbeitung in hoher Qualität
boolean
Standard:"false"
Legt fest, ob der Inhalt vor dem Absenden des Bildauftrags moderiert wird.
true: Prompts und Eingabebilder mitomni-moderation-latestprüfenfalseoder nicht angegeben: keine Moderationsanfrage und damit keine zusätzlichen Moderationskosten oder Verzögerung (Standard)
string
erforderlich
Textbeschreibung für die Generierung oder Bearbeitung des Bildes.
array
Liste der Referenzbilder. Ohne Angabe wird ein Bild aus Text generiert; mit Angabe werden die Bilder bearbeitet.Einschränkungen:
- Maximal 4 Bilder
- Öffentlich erreichbare URLs oder Base64-kodierte Eingabebilder werden unterstützt
- Die Gesamtpixelzahl des Ausgabebildes und aller Referenzbilder darf 9 MP nicht überschreiten
string
Standard:"1:1"
Seitenverhältnis des Bildes.Unterstützte Seitenverhältnisse und automatischer Modus:
1:1– Quadrat (Standard)4:3– Querformat 4:33:4– Hochformat 3:416:9– Breitbild im Querformat9:16– Breitbild im Hochformat3:2– Querformat 3:22:3– Hochformat 2:321:9– Ultra-Breitbild9:21– Ultra-Hochformatauto– Seitenverhältnis des Referenzbildes übernehmen
size auf auto gesetzt ist und image_urls angegeben wurde, übernimmt die Ausgabe das Seitenverhältnis des Referenzbildes. Ohne Referenzbild wird der Standardwert 1:1 verwendet.Eine Pixelangabe wie 1024x1536 wird auf das nächstgelegene unterstützte Seitenverhältnis abgebildet und nicht als exakte Pixelgröße ausgegeben. width und height werden von Kontext nicht unterstützt und führen zum Fehlschlagen der Aufgabe. resolution hat bei Kontext keine Wirkung; die Ausgabe liegt bei ungefähr 1 MP.string
Standard:"png"
Kodierungsformat des Ausgabebildes:
png– PNG-Format (Standard)jpeg– JPEG-Formatwebp– WebP-Format
string
Kompatibilitätsparameter für die Antwortform. Zulässige Werte sind
url und b64_json. Dieser Parameter ändert die Bildkodierung nicht; dafür ist output_format maßgeblich und hat Vorrang.integer
Standard:"1"
Anzahl der zu generierenden Bilder. Der Wert muss
1 sein. Für mehrere Bilder müssen mehrere Aufgaben übermittelt werden.integer
Zufalls-Seed. Ein fester Seed erzeugt bei unveränderten übrigen Parametern dasselbe Ergebnis; ohne Angabe wird er zufällig gewählt.
boolean
Standard:"false"
Legt fest, ob die Prompt-Erweiterung aktiviert wird:
true– aktiviertfalse– deaktiviert (Standard)
Setzen Sie den Wert ausdrücklich auf false, um die Prompt-Umformulierung zu deaktivieren.
integer
Standard:"2"
Toleranzstufe der Inhaltsprüfung.Bereich: 0–6. Höhere Werte bedeuten eine weniger strenge Prüfung.
Tatsächliche Ausgabemaße
| Verhältnis | Tatsächliche Ausgabegröße |
|---|---|
1:1 | 1024×1024 |
4:3 | 1184×880 |
3:4 | 880×1184 |
16:9 | 1392×752 |
9:16 | 752×1392 |
3:2 | 1248×832 |
2:3 | 832×1248 |
21:9 | 1568×672 |
9:21 | 672×1568 |
Anwendungsbeispiele
Bildbearbeitung mit Eingabebild{
"model": "flux-kontext-pro",
"prompt": "Change the background to a beach",
"image_urls": ["https://example.com/photo.jpg"],
"size": "16:9",
"output_format": "png"
}
{
"model": "flux-kontext-max",
"prompt": "A blue cat",
"size": "1:1",
"seed": 12345
}
{
"model": "flux-kontext-max",
"prompt": "Place the person from image 1 into the scene from image 2 and harmonize the lighting",
"image_urls": [
"https://example.com/person.jpg",
"https://example.com/scene.jpg"
],
"size": "4:3"
}
Response
integer
Statuscode der Antwort.
array
Aufgabenergebnis abfragen
Fragen Sie nach erfolgreicher Übermittlung den Aufgabenstatus überGET /v1/tasks/{task_id} ab. Weitere Informationen finden Sie unter Aufgabenstatus abfragen.
Beispiel einer erfolgreichen Antwort
{
"code": 200,
"data": {
"id": "task_01KFG5BBFNK1YQDTJDZY0P0QT2",
"status": "completed",
"progress": 100,
"created": 1785133674,
"completed": 1785133683,
"actual_time": 9,
"estimated_time": 15,
"result": {
"images": [
{
"url": [
"https://upload.apimart.ai/f/image/xxxxxxxx-flux-kontext.png"
],
"expires_at": 1785220083
}
]
}
}
}
data.result.images[0].url[0]. expires_at ist der Unix-Zeitstempel, zu dem dieser Link abläuft. Speichern Sie das Bild vor diesem Zeitpunkt.
Aufgabenstatus
| Status | Bedeutung |
|---|---|
submitted / pending | Die Aufgabe wurde angenommen oder wartet auf die Verarbeitung; weiter abfragen |
processing | Die Generierung läuft; weiter abfragen |
completed | Die Generierung war erfolgreich; das Ergebnis befindet sich unter result.images |
failed | Die Generierung ist fehlgeschlagen; Einzelheiten stehen unter data.error.message |
Ungültige Modellparameter und fehlgeschlagene Aufgaben
Ungültige Modellparameter werden asynchron gemeldet: Die Übermittlung liefert HTTP 200 und einetask_id. Erst beim Abfragen der Aufgabe erscheint der Endstatus failed mit dem konkreten Grund unter data.error.message. Deshalb muss bis zu einem Endstatus abgefragt werden.
{
"code": 200,
"data": {
"status": "failed",
"error": {
"type": "task_failed",
"code": "task_failed",
"message": "width/height are not supported by flux-kontext-pro"
}
}
}
data.error.code lautet bei solchen Fehlern immer task_failed; der konkrete Grund steht in message. Fehlgeschlagene Aufgaben werden vollständig erstattet.
Hinweise
- Asynchrone Verarbeitung: Nach dem Absenden wird eine
task_idzurückgegeben. Fragen Sie/v1/tasks/{task_id}ab, um das Ergebnis zu erhalten. - Referenzbilder: Es werden maximal 4 Referenzbilder als öffentlich erreichbare Bild-URLs oder Base64-kodierte Eingabebilder unterstützt. Zusammen mit dem Ausgabebild dürfen sie höchstens 9 MP umfassen.
- Größenregeln: Das Standardverhältnis ist
1:1. Pixelangaben werden auf das nächstgelegene unterstützte Verhältnis abgebildet;width/heightwerden abgelehnt undresolutionhat keine Wirkung. Kontext gibt ungefähr 1 MP aus. - Bildanzahl:
nmuss1sein; pro Anfrage wird genau ein Bild generiert. - Prompt-Umformulierung: Setzen Sie ausdrücklich
prompt_upsampling: false, um die Prompt-Umformulierung zu deaktivieren. - Ergebnislink: Die Gültigkeit der Bild-URL richtet sich nach dem zugehörigen Unix-Zeitstempel
expires_at. Speichern Sie das Bild rechtzeitig. - Nicht erreichbare Referenz-URL: Die Meldung
temporarily unavailable dependencykann auf eine nicht erreichbare Referenzdatei hinweisen. Prüfen Sie in diesem Fall zuerst, ob die URL öffentlich erreichbar ist und weder Zugriffsschutz noch eine abgelaufene Signatur verwendet.