curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-nano-banana-2.1",
"prompt": "Eine orangefarbene Katze auf einem Holztisch neben einer Tasse Kaffee, sanftes Morgenlicht, realistische Fotografie",
"size": "16:9",
"resolution": "2K",
"n": 1
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "gemini-nano-banana-2.1",
"prompt": "Eine orangefarbene Katze auf einem Holztisch neben einer Tasse Kaffee, sanftes Morgenlicht, realistische Fotografie",
"size": "16:9",
"resolution": "2K",
"n": 1
}
)
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: "gemini-nano-banana-2.1",
prompt: "Eine orangefarbene Katze auf einem Holztisch neben einer Tasse Kaffee, sanftes Morgenlicht, realistische Fotografie",
size: "16:9",
resolution: "2K",
n: 1
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Nano banana 2.1
Nano banana 2.1 Bildgenerierung
Text-zu-Bild und Bearbeitung von Referenzbildern mit 1K / 2K / 4K und 10 Seitenverhältnissen, als offizielle und Ext-Version.
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": "gemini-nano-banana-2.1",
"prompt": "Eine orangefarbene Katze auf einem Holztisch neben einer Tasse Kaffee, sanftes Morgenlicht, realistische Fotografie",
"size": "16:9",
"resolution": "2K",
"n": 1
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "gemini-nano-banana-2.1",
"prompt": "Eine orangefarbene Katze auf einem Holztisch neben einer Tasse Kaffee, sanftes Morgenlicht, realistische Fotografie",
"size": "16:9",
"resolution": "2K",
"n": 1
}
)
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: "gemini-nano-banana-2.1",
prompt: "Eine orangefarbene Katze auf einem Holztisch neben einer Tasse Kaffee, sanftes Morgenlicht, realistische Fotografie",
size: "16:9",
resolution: "2K",
n: 1
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Modellauswahl
| Modell-ID | Abrechnung | Bilder pro Anfrage | Größe der Referenzbilder |
|---|---|---|---|
gemini-nano-banana-2.1 | Tatsächlicher Tokenverbrauch | 1–4 | Maximal 20MB pro Bild |
gemini-nano-banana-2.1-ext | Pro Bild nach Auflösungsstufe | Nur 1 | Maximal 20MB pro Bild, insgesamt 50MB |
Dieser Endpunkt arbeitet asynchron. Nach erfolgreicher Übermittlung wird eine
task_id zurückgegeben. Rufen Sie Status und Bilder über die Aufgabenabfrage ab. Empfohlen werden Abfragen alle 3–5 Sekunden und eine gesamte Wartezeit von mindestens 3 Minuten vor einem Timeout.curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-nano-banana-2.1",
"prompt": "Eine orangefarbene Katze auf einem Holztisch neben einer Tasse Kaffee, sanftes Morgenlicht, realistische Fotografie",
"size": "16:9",
"resolution": "2K",
"n": 1
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "gemini-nano-banana-2.1",
"prompt": "Eine orangefarbene Katze auf einem Holztisch neben einer Tasse Kaffee, sanftes Morgenlicht, realistische Fotografie",
"size": "16:9",
"resolution": "2K",
"n": 1
}
)
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: "gemini-nano-banana-2.1",
prompt: "Eine orangefarbene Katze auf einem Holztisch neben einer Tasse Kaffee, sanftes Morgenlicht, realistische Fotografie",
size: "16:9",
resolution: "2K",
n: 1
})
});
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
Modell-ID:
gemini-nano-banana-2.1 oder gemini-nano-banana-2.1-ext.string
erforderlich
Textbeschreibung für die Bildgenerierung oder -bearbeitung. Chinesisch und Englisch werden unterstützt.
string
Standard:"auto"
Seitenverhältnis der Ausgabe. Unterstützt werden
1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9 und 21:9. Schreibweisen wie 16x9 sind ebenfalls zulässig.Bei Auslassung oder auto entscheidet das Modell. Bei Bild-zu-Bild folgt die Ausgabe dem Seitenverhältnis des Referenzbildes.Andere Verhältnisse wie 1:4, 4:1, 1:8 und 8:1 werden nicht unterstützt. Nicht unterstützte Werte führen zum Fehlschlagen der Aufgabe und zur Erstattung.string
Standard:"1K"
Auflösungsstufe:
1K, 2K oder 4K. Kleinschreibung wird akzeptiert. Der Wert beeinflusst auch die Abrechnung.0.5K und 512 werden nicht unterstützt und führen bei der Übermittlung zu HTTP 400. Andere unbekannte Werte wie 3K werden für Generierung und Abrechnung als 1K behandelt. Verwenden Sie nur die oben genannten unterstützten Werte.integer
Standard:"1"
Anzahl der generierten Bilder: 1–4 bei der offiziellen Version, nur 1 bei Ext.Werte über 4 führen sofort zu HTTP 400. Ext-Anfragen mit 2–4 schlagen während der Ausführung fehl und werden vollständig erstattet. Senden Sie für mehrere Bilder separate Ext-Aufgaben oder verwenden Sie die offizielle Version.
string[]
Liste der Referenzbilder. Ohne diese Liste wird Text-zu-Bild verwendet, mit ihr Bild-zu-Bild oder Bildbearbeitung. Jeder Eintrag unterstützt:
- Eine öffentlich zugängliche HTTP(S)-Bild-URL.
- Eine Base64-Data-URL wie
data:image/png;base64,....
boolean
Standard:"false"
Gilt nur für
gemini-nano-banana-2.1-ext. Bei Aktivierung wird nach einem Ext-Fehler versucht, die Aufgabe mit der offiziellen Version abzuschließen.Wird tatsächlich die offizielle Version verwendet, erfolgt die Abrechnung nach deren tatsächlichem Tokenverbrauch und nicht nach dem Ext-Preis pro Bild.string
Callback-URL für die Benachrichtigung nach Aufgabenende. Siehe Aufgaben-Webhooks.
Referenzwerte für Ausgabeabmessungen
| Seitenverhältnis | 1K | 2K | 4K |
|---|---|---|---|
| 1:1 | 1024×1024 | 2048×2048 | 4096×4096 |
| 2:3 | 848×1264 | 1696×2528 | 3392×5056 |
| 3:2 | 1264×848 | 2528×1696 | 5056×3392 |
| 3:4 | 896×1200 | 1792×2400 | 3584×4800 |
| 4:3 | 1200×896 | 2400×1792 | 4800×3584 |
| 4:5 | 928×1152 | 1856×2304 | 3712×4608 |
| 5:4 | 1152×928 | 2304×1856 | 4608×3712 |
| 9:16 | 768×1376 | 1536×2752 | 3072×5504 |
| 16:9 | 1376×768 | 2752×1536 | 5504×3072 |
| 21:9 | 1584×672 | 3168×1344 | 6336×2688 |
Referenzbild bearbeiten
{
"model": "gemini-nano-banana-2.1-ext",
"prompt": "Setze der Katze im Bild eine rote Strickmütze auf und lasse alles andere unverändert",
"image_urls": ["https://example.com/cat.jpg"],
"resolution": "1K"
}
size folgt die Ausgabe dem Seitenverhältnis des Referenzbildes.
Stapelgenerierung (nur offizielle Version)
{
"model": "gemini-nano-banana-2.1",
"prompt": "Cyberpunk-Stadt bei Nacht, Neonlichter, Straßen nach dem Regen",
"size": "16:9",
"resolution": "2K",
"n": 4
}
Übermittlungsantwort
integer
Antwortstatuscode.
200 bedeutet Erfolg.array
Ergebnis der Aufgabenübermittlung.
status ist submitted. task_id dient zur Abfrage von Status und Ergebnis und ist nicht die endgültige Bild-URL.Aufgabenergebnisse abfragen
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01K... \
--header 'Authorization: Bearer <token>'
{
"code": 200,
"data": {
"id": "task_01K...",
"status": "completed",
"progress": 100,
"result": {
"images": [
{
"url": ["https://example.com/generated-image.png"],
"expires_at": 1791417625
}
]
}
}
}
| Aufgabenstatus | Bedeutung |
|---|---|
pending | In der Warteschlange |
processing | Wird generiert |
completed | Erfolgreich; Bild-URL-Array aus data.result.images[0].url lesen |
failed | Fehlgeschlagen; Ursache in data.error.message. Vollständige Erstattung; data.cost ist 0 |
data.result.images[0].url. Bei 4 generierten Bildern enthält es 4 Links. Es werden nur fertige Bilder zurückgegeben; n=1 entspricht 1 fertigen Bild.
Links laufen 24 Stunden nach Aufgabenabschluss ab, wie in expires_at angegeben. Laden Sie die Bilder rechtzeitig herunter und speichern Sie sie. Die Ausgabe ist PNG oder JPEG; maßgeblich ist der tatsächliche Dateiinhalt. data.cost im Abfrageergebnis ist der endgültige Betrag in USD.
Abrechnung
- Offizielle Version: Abrechnung nach tatsächlichen Eingabe- und Ausgabetokens. Prompts und Referenzbilder zählen zur Eingabe. Bei Übermittlung wird anhand der Auflösungsstufe und
nvorab abgebucht; nach Abschluss erfolgt je nach tatsächlichem Verbrauch eine Erstattung oder Nachbelastung. - Ext-Version: Preis der Auflösungsstufe × tatsächlich generierte Bildanzahl. Das Seitenverhältnis beeinflusst die Stufe nicht. Ist
official_fallbackaktiviert und wird tatsächlich die offizielle Version verwendet, gilt deren Tokenabrechnung. - Die Einzelpreise finden Sie unter Modellpreise. Bei Übermittlung abgelehnte Anfragen erstellen keine Aufgabe und verursachen keine Kosten. Fehlgeschlagene Aufgaben werden vollständig erstattet.
Häufige Fehler
| Situation | Maßnahme |
|---|---|
| HTTP 400 | Auf 0.5K / 512, n über 4 oder Überschreitung der Größe pro Referenzbild prüfen |
| HTTP 401 | API Key prüfen |
| HTTP 402 | Prüfen, ob das Guthaben für die Vorabbuchung ausreicht |
| HTTP 429 | Ratenlimit erreicht; mit zunehmender Wartezeit erneut versuchen |
| Aufgabe fehlgeschlagen: nicht unterstütztes Seitenverhältnis | Eines der 10 unterstützten size-Verhältnisse oder auto verwenden |
| Aufgabe fehlgeschlagen: mehrere Bilder mit Ext angefordert | n auf 1 setzen oder die offizielle Version verwenden |
| Aufgabe fehlgeschlagen: Inhaltssicherheitsprüfung | Prompt oder Referenzbilder ändern und erneut versuchen |
| Aufgabe fehlgeschlagen: Referenzbild konnte nicht heruntergeladen werden | Öffentliche Erreichbarkeit der Bild-URL prüfen |
Nano banana 2.1 und Gemini 3.1 Flash Image sind unterschiedliche Modelle; ihre Namen sind keine austauschbaren Aliasse. Entfernen Sie beim Wechsel vom letzteren Modell die Auflösung
0.5K und die vier extremen Verhältnisse 1:4, 4:1, 1:8 und 8:1.