curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-3-image",
"prompt": "Ultrabreite filmische Aufnahme einer nebligen Küstenstraße im Morgengrauen, ein einzelner Oldtimer mit eingeschalteten Scheinwerfern",
"aspect_ratio": "21:9",
"resolution": "2k"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "flux-3-image",
"prompt": "Ultrabreite filmische Aufnahme einer nebligen Küstenstraße im Morgengrauen, ein einzelner Oldtimer mit eingeschalteten Scheinwerfern",
"aspect_ratio": "21:9",
"resolution": "2k"
}
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "flux-3-image",
prompt: "Ultrabreite filmische Aufnahme einer nebligen Küstenstraße im Morgengrauen, ein einzelner Oldtimer mit eingeschalteten Scheinwerfern",
aspect_ratio: "21:9",
resolution: "2k"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
FLUX 3 Image
FLUX 3 Image Bildgenerierung
Text-zu-Bild, Bearbeitung einzelner Bilder und bis zu 10 Referenzbilder mit mehreren Seitenverhältnissen und bis zu 4k Auflösung.
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-3-image",
"prompt": "Ultrabreite filmische Aufnahme einer nebligen Küstenstraße im Morgengrauen, ein einzelner Oldtimer mit eingeschalteten Scheinwerfern",
"aspect_ratio": "21:9",
"resolution": "2k"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "flux-3-image",
"prompt": "Ultrabreite filmische Aufnahme einer nebligen Küstenstraße im Morgengrauen, ein einzelner Oldtimer mit eingeschalteten Scheinwerfern",
"aspect_ratio": "21:9",
"resolution": "2k"
}
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "flux-3-image",
prompt: "Ultrabreite filmische Aufnahme einer nebligen Küstenstraße im Morgengrauen, ein einzelner Oldtimer mit eingeschalteten Scheinwerfern",
aspect_ratio: "21:9",
resolution: "2k"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Dieser Endpunkt arbeitet asynchron. Nach erfolgreicher Übermittlung wird eine
task_id zurückgegeben. Rufen Sie Status und Bilder über die Aufgabenabfrage ab. Beenden Sie die Abfragen bei completed oder failed. Die Generierung in 4k kann mehrere Minuten dauern; empfohlen wird ein gesamtes Wartezeitlimit von 10 Minuten.curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-3-image",
"prompt": "Ultrabreite filmische Aufnahme einer nebligen Küstenstraße im Morgengrauen, ein einzelner Oldtimer mit eingeschalteten Scheinwerfern",
"aspect_ratio": "21:9",
"resolution": "2k"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "flux-3-image",
"prompt": "Ultrabreite filmische Aufnahme einer nebligen Küstenstraße im Morgengrauen, ein einzelner Oldtimer mit eingeschalteten Scheinwerfern",
"aspect_ratio": "21:9",
"resolution": "2k"
}
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "flux-3-image",
prompt: "Ultrabreite filmische Aufnahme einer nebligen Küstenstraße im Morgengrauen, ein einzelner Oldtimer mit eingeschalteten Scheinwerfern",
aspect_ratio: "21:9",
resolution: "2k"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Anfrage-Header
string
erforderlich
Bearer-Authentifizierung im Format
Bearer <token>, wobei <token> Ihr APIMart API Key ist.Anfrageparameter
string
erforderlich
Muss
flux-3-image sein.string
erforderlich
Bildbeschreibung für Text-zu-Bild oder Anweisungen zur Bildbearbeitung. Negative Prompts werden nicht unterstützt; beschreiben Sie stattdessen das gewünschte Bild.Verwenden Sie Tags und bbox-JSON in
prompt, um Layouts oder lokale Bearbeitungsbereiche festzulegen. Beispiele finden Sie unten.string[]
Liste mit bis zu 10 Referenzbildern. Unterstützt öffentlich zugängliche HTTP(S)-URLs oder Base64-Eingaben.Ohne Referenzbilder wird Text-zu-Bild verwendet. Ein Bild ermöglicht die Bearbeitung eines Einzelbildes, mehrere Bilder dienen als gemeinsame Referenzen.
string
Standard:"auto"
Seitenverhältnis der Ausgabe. Unterstützte Werte:
21:9, 2:1, 16:9, 3:2, 7:5, 4:3, 5:4, 1:1, 4:5, 3:4, 5:7, 2:3, 9:16, 1:2, 9:21 oder auto.Schreibweisen wie 16x9 werden ebenfalls akzeptiert. Bei auto:- Bearbeitung oder mehrere Referenzbilder: folgt dem Seitenverhältnis des ersten Referenzbildes.
- Text-zu-Bild: wird anhand des Prompts bestimmt; andernfalls wird
1:1verwendet.
string
Kompatibilitätsparameter für das Seitenverhältnis. Kann
aspect_ratio ersetzen und akzeptiert dieselben Werte. Verwenden Sie nur eines der beiden Felder.Pixelabmessungen wie 1024x1024 werden nicht unterstützt und führen zu HTTP 400. Wählen Sie die Ausgabeauflösung über resolution.string
Standard:"1k"
Auflösungsstufe. Unterstützt
768sq, 1k, 1.5k, 2k und 4k, unabhängig von Groß- und Kleinschreibung. 768 entspricht 768sq.Dieser Parameter bestimmt die Preisstufe. Ohne Angabe werden Generierung und Abrechnung mit 1k durchgeführt. Nicht unterstützte Werte wie 3k führen zu HTTP 400.integer
Standard:"2"
Toleranz der Inhaltssicherheitsprüfung, von 0–4. 0 ist am strengsten.
boolean
Standard:"true"
Ob vor der Generierung Web- oder Bildsuchen erlaubt sind. Mit
false deaktivieren.Muss ein boolescher Wert sein, nicht die Zeichenfolgen "false" oder "true".integer
Standard:"1"
Jede Anfrage erzeugt 1 Bild; nur
1 wird unterstützt. Senden Sie für mehrere Bilder separate Aufgaben. Werte über 1 führen zu HTTP 400.Nicht unterstützte Parameter
Die folgenden Parameter führen bei Angabe zu HTTP 400; sie werden nicht stillschweigend ignoriert:width,height- Pixelabmessungen in
size, beispielsweise1024x1024 seed,steps,guidanceoutput_format,negative_prompt,prompt_upsampling,mask_url
resolution für eine höhere Auflösung und aspect_ratio für ein bestimmtes Seitenverhältnis.
Referenzbild bearbeiten
{
"model": "flux-3-image",
"prompt": "Färbe das Auto im Bild rot und behalte die ursprüngliche Straße, den Hintergrund und die Beleuchtung bei",
"image_urls": ["https://example.com/car.jpg"],
"aspect_ratio": "auto",
"resolution": "2k"
}
image_urls an, insgesamt höchstens 10 Bilder.
Mehrere Referenzbilder
Bearbeitung, lokale Bearbeitung und Layout verwenden denselben Endpunkt und dasselbe Modell dieser Seite; die Abrechnung erfolgt nachresolution. Die Referenzen sind der Reihe nach nummeriert: ref_image_0 für das erste, ref_image_1 für das zweite Bild. Im Prompt können Sie auch Image 1 / Image 2 verwenden.
{
"model": "flux-3-image",
"prompt": "Wandle Image 1 in den Stil von Image 2 um.",
"image_urls": [
"https://example.com/subject.jpg",
"https://example.com/style.jpg"
],
"aspect_ratio": "auto"
}
Lokale Bearbeitung (Bounding Box)
Beginnen Sieprompt mit natürlichsprachlichen Bearbeitungsanweisungen und bezeichnen Sie Elemente mit <Tags>, etwa <car_1>. Hängen Sie innerhalb derselben Zeichenfolge ein JSON-Array mit einem Objekt pro Box an. bbox ist kein separater Anfrageparameter.
| Feld | Beschreibung |
|---|---|
id | Entspricht dem Element-Tag im Prompt, ohne spitze Klammern. |
from | Quelle des Elements, etwa ref_image_0; für neu gezeichnete oder neu zu zeichnende Elemente null verwenden. |
src_bbox | Box im Quellbild; ebenfalls null, wenn from gleich null ist. |
tgt_bbox | Box im Ausgabebild; identisch mit src_bbox bedeutet Position beibehalten, andernfalls wird das Element verschoben. |
desc | Beschreibt, was am Element geändert oder beibehalten werden soll. |
src_bbox, tgt_bbox, bbox) verwenden [oben, links, unten, rechts], also [y1, x1, y2, x2], auf einem normalisierten Raster von 0–1000: links oben [0,0], rechts unten [1000,1000]. Es handelt sich nicht um Pixelkoordinaten.
Das Beispiel färbt das Auto innerhalb der Box rot und beschreibt den zu erhaltenden Hintergrund. URL und Boxpositionen sind Beispiele; passen Sie sie an Ihr Bild an.
{
"model": "flux-3-image",
"prompt": "Färbe in <ref_image_0> das Auto <car_1> rot und erhalte den Hintergrund <background_1>. [{\"id\":\"car_1\",\"from\":null,\"src_bbox\":null,\"tgt_bbox\":[250,300,750,800],\"desc\":\"Ein rotes Auto mit unveränderter ursprünglicher Form und Ausrichtung.\"},{\"id\":\"background_1\",\"from\":\"ref_image_0\",\"src_bbox\":[0,0,1000,1000],\"tgt_bbox\":[0,0,1000,1000],\"desc\":\"Ursprüngliche Straße, Hintergrund und Beleuchtung beibehalten.\"}]",
"image_urls": [
"https://example.com/car.jpg"
],
"aspect_ratio": "auto",
"resolution": "2k"
}
Element verschieben
Fügen Sie das folgende Objekt in das bbox-Array am Ende des Prompts ein.from bezeichnet das Quellbild, src_bbox die ursprüngliche und tgt_bbox die neue Position. Verwenden Sie auch in der natürlichsprachlichen Anweisung das passende Tag <knight_1>.
{
"id": "knight_1",
"from": "ref_image_0",
"src_bbox": [
500,
150,
850,
350
],
"tgt_bbox": [
194,
55,
544,
255
],
"desc": "Eine kleine graue Amigurumi-Ritterfigur."
}
Text-zu-Bild-Layout
Layouts funktionieren auch ohne Referenzbilder. Jede Box verwendetid, bbox und desc. Geben Sie aspect_ratio explizit an, da das Koordinatenraster mit dem Seitenverhältnis gestreckt wird.
{
"model": "flux-3-image",
"aspect_ratio": "1:1",
"prompt": "Minimalistische Illustration einer schwarzen laufenden Silhouette <silhouette_1> vor einem einfarbigen gelbgrünen Hintergrund <background_1>. [{\"id\":\"background_1\",\"bbox\":[0,0,1000,1000],\"desc\":\"Ein neongelbgrüner Hintergrund mit dezenter Papiertextur.\"},{\"id\":\"silhouette_1\",\"bbox\":[150,150,850,850],\"desc\":\"Eine schwarze laufende Silhouette mit gepunkteter Textur.\"}]"
}
Hinweise
-
Das bbox-JSON ist Teil der Zeichenfolge
prompt. Beim manuellen Schreiben des Anfrage-JSON müssen innere doppelte Anführungszeichen als\"maskiert werden. SDKs oder JSON-Serialisierung können dies automatisch übernehmen. -
Listen Sie auch die unverändert zu erhaltenden Bereiche auf und beschreiben Sie die Erhaltungsanforderungen in
desc. -
Element-Tags im Prompt müssen den JSON-Werten von
ideins zu eins entsprechen. Referenzkennungen wie<ref_image_0>verweisen auf Eingabebilder. -
Dieses Modell hat keinen Parameter
maskund unterstütztmask_urlnicht; die Übergabe vonmask_urlführt zu HTTP 400. Die bbox-Bearbeitung verwendet keinen Parameter zum Hochladen einer Maske.
Übermittlungsantwort
integer
Antwortstatuscode.
200 bedeutet Erfolg.array
Aufgabenergebnisse abfragen
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01K... \
--header 'Authorization: Bearer <token>'
{
"code": 200,
"data": {
"status": "completed",
"result": {
"images": [
{
"url": ["https://example.com/generated-image.jpg"]
}
]
}
}
}
data.result.images[0].url. Bei Aufgabenstatus failed prüfen Sie die zurückgegebene Fehlermeldung, statt weiter auf ein Bild zu warten.
Auflösung und Abrechnung
Abrechnung pro Bild. Der Einzelpreis hängt ausschließlich vonresolution ab, nicht vom Seitenverhältnis oder der Anzahl der Referenzbilder. Referenzbilder verursachen keine zusätzlichen Kosten.
| Auflösungsstufe | Ungefähre Ausgabegröße |
|---|---|
768sq | Ca. 768×768 |
1k (Standard) | Ca. 1MP |
1.5k | Ca. 2MP |
2k | Ca. 4MP |
4k | Ca. 16MP |
Häufige Parameterfehler
| Anfrage | Ergebnis und Maßnahme |
|---|---|
resolution: "3k" | HTTP 400; eine der 5 unterstützten Stufen verwenden |
size: "1024x1024" | HTTP 400; Seitenverhältnis verwenden und Auflösung über resolution auswählen |
n: 2 | HTTP 400; pro Anfrage wird nur 1 Bild generiert |
| 11 Referenzbilder | HTTP 400; höchstens 10 angeben |
grounding: "false" | HTTP 400; booleschen Wert false verwenden |