curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen-image-3.0",
"prompt": "A cafe poster with the title Autumn Limited, warm tones, refined layout",
"size": "16:9",
"resolution": "1K"
}'
import requests
url = "https://api.apimart.ai/v1/images/generations"
payload = {
"model": "qwen-image-3.0",
"prompt": "A cafe poster with the title Autumn Limited, warm tones, refined layout",
"size": "16:9",
"resolution": "1K",
}
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: "qwen-image-3.0",
prompt: "A cafe poster with the title Autumn Limited, warm tones, refined layout",
size: "16:9",
resolution: "1K",
};
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_01JGXYZ1234567890ABCDEF"
}
]
}
{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Insufficient account balance, please top up and try again",
"type": "payment_required"
}
}
{
"error": {
"code": 429,
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}
Qwen Image 3.0
Qwen Image 3.0 Bildgenerierung
- Asynchroner Verarbeitungsmodus, gibt eine Task-ID für spätere Abfragen zurück
- Unterstützt Text-zu-Bild und Bild-zu-Bild (1-3 Referenzbilder zur Bearbeitung)
- Unterstützt 1K- / 2K-Auflösung, bis zu 6 Bilder pro Anfrage
- Standard- und Pro-Varianten (Pro ist stärker bei dichter Layout- und Textarbeit)
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": "qwen-image-3.0",
"prompt": "A cafe poster with the title Autumn Limited, warm tones, refined layout",
"size": "16:9",
"resolution": "1K"
}'
import requests
url = "https://api.apimart.ai/v1/images/generations"
payload = {
"model": "qwen-image-3.0",
"prompt": "A cafe poster with the title Autumn Limited, warm tones, refined layout",
"size": "16:9",
"resolution": "1K",
}
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: "qwen-image-3.0",
prompt: "A cafe poster with the title Autumn Limited, warm tones, refined layout",
size: "16:9",
resolution: "1K",
};
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_01JGXYZ1234567890ABCDEF"
}
]
}
{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Insufficient account balance, please top up and try again",
"type": "payment_required"
}
}
{
"error": {
"code": 429,
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen-image-3.0",
"prompt": "A cafe poster with the title Autumn Limited, warm tones, refined layout",
"size": "16:9",
"resolution": "1K"
}'
import requests
url = "https://api.apimart.ai/v1/images/generations"
payload = {
"model": "qwen-image-3.0",
"prompt": "A cafe poster with the title Autumn Limited, warm tones, refined layout",
"size": "16:9",
"resolution": "1K",
}
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: "qwen-image-3.0",
prompt: "A cafe poster with the title Autumn Limited, warm tones, refined layout",
size: "16:9",
resolution: "1K",
};
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_01JGXYZ1234567890ABCDEF"
}
]
}
{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Insufficient account balance, please top up and try again",
"type": "payment_required"
}
}
{
"error": {
"code": 429,
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}
Unterstützte Modelle
| Modell | Beschreibung | Max. Bilder | Auflösung |
|---|---|---|---|
qwen-image-3.0 | Klare Anweisungsbefolgung, stabile Textwiedergabe; gutes Preis-Leistungs-Verhältnis für den allgemeinen Einsatz | 6 | 1K / 2K |
qwen-image-3.0-pro | Reichhaltigerer Inhalt; ideal für Zeitungen, Storyboards, Speisekarten, Prüfungen, dichte Layouts | 6 | 1K / 2K |
Bevorzugen Sie
-pro bei dichtem Text/Layout. Verwenden Sie qwen-image-3.0 für allgemeine Bilder. Prompt max. ca. 4.5k Tokens. Modellnamen sind nicht mit der 2.0-Serie austauschbar.Authorizations
string
erforderlich
Alle Endpunkte erfordern eine Bearer-Token-AuthentifizierungHolen Sie Ihren API-Key von der API-Key-Verwaltungsseite:
Authorization: Bearer YOUR_API_KEY
Body
string
erforderlich
Modellname
qwen-image-3.0- Standardqwen-image-3.0-pro- Pro (dichter Text / Layout)
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 Bildgenerierung, max. ca. 4.5k Tokens
string[]
Array mit Referenzbild-URLs (Bild-zu-Bild / Bearbeitung), 1-3 Bilder
- Öffentliche
http(s)://-URL oderdata:image/png;base64,...(Base64 wird zuerst neu hochgeladen) - Formate: JPG / JPEG / PNG / BMP / TIFF / WEBP / GIF
- Pro Datei ≤ 10MB; Breite/Höhe empfohlen 384-2048 px
string
Standard:"1K"
Auflösungsstufe (beeinflusst die Abrechnungsstufe)
1K(Standard; Kleinbuchstaben akzeptiert)2K
size angeben (z. B. 1600x900). Bei Rohpixeln wird eine Fläche > 2.25M Pixel als 2K abgerechnet.string
Standard:"1:1"
Seitenverhältnis oder explizite PixelgrößeUnterstützte Verhältnisse:
1:1(Standard)4:3/3:416:9/9:163:2/2:3
16x9-Stil oder Pixel wie 1024x1024. Bei benutzerdefinierten Pixeln muss jede Kante (Breite und Höhe) 512–2048 sein, Seitenverhältnis 1:8 ~ 8:1.Wenn weder size noch resolution gesetzt sind, ist die Ausgabe fest 1024×1024.integer
Standard:"1"
Anzahl der Bilder, 1-6. Werte über 6 werden auf 6 begrenzt.
string
Negativer Prompt: zu vermeidende Inhalte
boolean
Standard:"false"
Intelligente Prompt-UmschreibungStandardmäßig aus, damit Ergebnisse vorhersagbar bleiben. Zum Aktivieren auf
true setzen.string
Umschreibmodus (nur 3.0-Serie; erfordert
prompt_extend: true)direct- funktioniert für Text-zu-Bild und Bild-zu-Bildagent- nur Text-zu-Bild, aggressivere Umschreibung
Größentabelle
Kombiniertresolution (Stufe) + size (Verhältnis):
| Auflösung | 1:1 | 4:3 | 3:4 | 16:9 | 9:16 | 3:2 | 2:3 |
|---|---|---|---|---|---|---|---|
| 1K | 1024×1024 | 1152×864 | 864×1152 | 1280×720 | 720×1280 | 1248×832 | 832×1248 |
| 2K | 2048×2048 | 2048×1536 | 1536×2048 | 2048×1152 | 1152×2048 | 2048×1360 | 1360×2048 |
Anwendungsfälle
Text-zu-Bild (mehrere)
{
"model": "qwen-image-3.0",
"prompt": "Flat illustration of a city skyline at dusk, warm orange tones",
"size": "16:9",
"resolution": "1K",
"n": 4
}
Dichtes Layout mit Umschreibung
{
"model": "qwen-image-3.0-pro",
"prompt": "A Western restaurant menu with appetizers, mains, and desserts columns, five dishes each with prices, serif font, cream background",
"size": "3:4",
"resolution": "2K",
"prompt_extend": true,
"prompt_extend_mode": "agent"
}
Bild-zu-Bild (Bearbeitung)
{
"model": "qwen-image-3.0-pro",
"prompt": "Change the sign text to Open, keep everything else the same",
"image_urls": ["https://example.com/shop.jpg"],
"size": "1:1"
}
Negativer Prompt
{
"model": "qwen-image-3.0",
"prompt": "Photorealistic mountain cabin in morning mist",
"negative_prompt": "text, watermark, people, low resolution",
"size": "3:2"
}
Limits
| Element | Limit |
|---|---|
| Prompt | ≤ 4.5k Tokens |
| Ausgabegröße | Benutzerdefinierte Pixel: jede Kante 512–2048; Seitenverhältnis 1:8 ~ 8:1 |
| Bildanzahl | 1-6 (Überschuss begrenzt) |
| Referenzbilder | 1-3 |
| Referenzformate | JPG / JPEG / PNG / BMP / TIFF / WEBP / GIF |
| Referenzgröße | ≤ 10MB; Breite/Höhe empfohlen 384-2048 px |
Response
integer
Statuscode; 200 bei Erfolg
array
Unterschiede zu 2.0
| 2.0-Serie | 3.0-Serie | |
|---|---|---|
| Promptlänge | Kürzer | ~4.5k Tokens |
prompt_extend_mode | Nicht unterstützt | direct / agent |
| Auflösung | 1K / 2K | 1K / 2K (Pro 2K teurer) |
| Referenzbilder | Unterstützt | 1-3 Bilder |
Hinweise
- Asynchron: Nach dem Absenden erhalten Sie eine
task_id. Abfragen Sie Aufgabenstatus abrufen alle 3~5 Sekunden; Client-Timeout ca. 3 Minuten (2K + mehrere Bilder ist langsamer). - Speicherung: Bilder werden auf das Plattform-CDN gespiegelt und sind langfristig verfügbar.
- Abrechnung: Pro geliefertem Bild × Auflösungsstufe nach tatsächlicher Pixelfläche (> 2.25M Pixel = 2K).
qwen-image-3.0berechnet 1K/2K gleich;-pro2K ist 2× 1K. Bei Fehlern volle Rückerstattung; Referenzbilder sind kostenlos. - Fehler: Ungültige size/Verhältnisse,
agentbei Bild-zu-Bild, unerreichbare/zu große Referenzen → 400; Ratenlimit → 429.
Ergebnisse abfragenVerwenden Sie Aufgabenstatus abrufen für Fortschritt und
result.images.