# Qwen Image 2.0 API Vollständige API-Referenz für Qwen Image 2.0-Modelle auf Basis von Alibaba Qwen. ## Modellvarianten Diese API unterstützt vier Modellvarianten: | Modell | Kennung | Beschreibung | |-------|-----|-------------| | **Qwen Image 2** | `qwen-image-2.0` | Text-zu-Bild-Generierung | | **Qwen Image 2 Edit** | `qwen-image-2.0-edit` | Bildbearbeitung und Mehrbild-Zusammenstellung | | **Qwen Image 2 Pro** | `qwen-image-2.0-pro` | Erweiterte Text-zu-Bild-Generierung mit höherer Ausgabequalität | | **Qwen Image 2 Pro Edit** | `qwen-image-2.0-pro-edit` | Erweiterte Bildbearbeitung und Mehrbild-Zusammenstellung | ## Schnellvergleich | Funktion | Standard | Pro | |---------|----------|-----| | Text-to-Image | ✅ Yes | ✅ Yes | | Image Editing | ✅ Yes | ✅ Yes | | Aspect Ratios | 7 options | 7 options | | Image Input (Edit) | ✅ Yes (1-6 images) | ✅ Yes (1-6 images) | | Multi-Image Support | ✅ Yes | ✅ Yes | | Output Quality | Standard | Enhanced | | Funktion | Text-to-Image | Edit | |---------|---------------|------| | Input | Text prompt | Image(s) + Text prompt | | Image Input | ❌ No | ✅ Yes (1-6 images) | | Multi-Image Support | ❌ No | ✅ Yes | | Seed Support | ✅ Optional | ✅ Optional | ### Unterstützte Seitenverhältnisse Sowohl Standard- als auch Pro-Modelle unterstützen 7 Seitenverhältnisse: - `16:9` (default), `9:16`, `1:1`, `4:3`, `3:4`, `3:2`, `2:3` ## Qwen Image 2 (Text-to-Image) ### Endpoint ``` POST /api/v1/image/task ``` ### Authentifizierung ``` Authorization: Bearer YOUR_API_KEY ``` ### Anfrageparameter #### Erforderlich | Parameter | Typ | Beschreibung | |-----------|------|--------------| | `model_name` | string | Muss `"qwen-image-2.0"` sein | | `prompt` | string | Prompt für die Bilderzeugung | | `width` | number | Wert für das Breitenverhältnis (z. B. 16 für 16:9) | | `height` | number | Wert für das Höhenverhältnis (z. B. 9 für 16:9) | **Hinweis:** Das Breite:Höhe-Verhältnis muss eines der folgenden sein: `16:9`, `9:16`, `1:1`, `4:3`, `3:4`, `3:2`, `2:3` #### Optional | Parameter | Typ | Beschreibung | |-----------|------|--------------| | `seed` | number | Zufalls-Seed für reproduzierbare Ergebnisse | ### Beispielanfrage ```javascript const response = await fetch('https://api.flaq.ai/api/v1/image/task', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model_name: 'qwen-image-2.0', prompt: 'A serene mountain landscape at sunset', width: 16, height: 9 }) }); const { data } = await response.json(); const taskId = data.task_id; // Poll for results const pollResponse = await fetch( `https://api.flaq.ai/api/v1/image/${taskId}`, { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } } ); const result = await pollResponse.json(); console.log(result.data.task_result.images[0].url); ``` ## Qwen Image 2 Edit (Image Editing) ### Endpoint ``` POST /api/v1/image/task ``` ### Anfrageparameter #### Erforderlich | Parameter | Typ | Beschreibung | |-----------|------|--------------| | `model_name` | string | Muss `"qwen-image-2.0-edit"` sein | | `prompt` | string | Beschreibung der gewünschten Änderungen | | `width` | number | Wert für das Breitenverhältnis (z. B. 16 für 16:9) | | `height` | number | Wert für das Höhenverhältnis (z. B. 9 für 16:9) | | `image_url_list` | string[] | Array of input image URLs (1-6 items) | **Hinweis:** Das Breite:Höhe-Verhältnis muss eines der folgenden sein: `16:9`, `9:16`, `1:1`, `4:3`, `3:4`, `3:2`, `2:3` #### Optional | Parameter | Typ | Beschreibung | |-----------|------|--------------| | `seed` | number | Zufalls-Seed für reproduzierbare Ergebnisse | ### Beispiel für Einzelbildbearbeitung ```javascript { model_name: 'qwen-image-2.0-edit', prompt: 'Change the sky to sunset colors', width: 16, height: 9, image_url_list: ['https://example.com/image.jpg'] } ``` ### Beispiel für Mehrbild-Zusammenstellung Bis zu 6 Bilder können in einer einzelnen Anfrage kombiniert werden: ```javascript { model_name: 'qwen-image-2.0-edit', prompt: 'Combine these images into a cohesive landscape', width: 16, height: 9, image_url_list: ['https://example.com/image1.jpg', 'https://example.com/image2.jpg', 'https://example.com/image3.jpg'] } ``` ## Qwen Image 2 Pro (Text-to-Image) Verwendet dieselben Parameter wie Qwen Image 2, mit `model_name` auf `qwen-image-2.0-pro` gesetzt für verbesserte Ausgabequalität. ### Beispielanfrage ```javascript const response = await fetch('https://api.flaq.ai/api/v1/image/task', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model_name: 'qwen-image-2.0-pro', prompt: 'A serene mountain landscape at sunset', width: 16, height: 9 }) }); const { data } = await response.json(); const taskId = data.task_id; ``` ## Qwen Image 2 Pro Edit (Image Editing) Verwendet dieselben Parameter wie Qwen Image 2 Edit, mit `model_name` auf `qwen-image-2.0-pro-edit` gesetzt für verbesserte Ausgabequalität. ### Beispielanfrage ```javascript const response = await fetch('https://api.flaq.ai/api/v1/image/task', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model_name: 'qwen-image-2.0-pro-edit', prompt: 'Change the sky to sunset colors', width: 16, height: 9, image_url_list: ['https://example.com/image.jpg'] }) }); const { data } = await response.json(); const taskId = data.task_id; ``` ## Antwortformat ### Erste Antwort Alle Modelle geben eine `task_id` zum Polling zurück: ```json { "code": 0, "data": { "task_id": "{task_id}", "task_status": "submitted", "response_url": "https://api.flaq.ai/api/v1/image/{task_id}" }, "message": "success" } ``` ### Polling-Antwort Rufe `GET /api/v1/image/{taskId}` ab, um den Status zu prüfen: ```json { "code": 0, "data": { "task_id": "{task_id}", "task_status": "succeed", "task_status_msg": null, "response_url": "https://api.flaq.ai/api/v1/image/{task_id}", "task_result": { "credit": 0.0997, "images": [ { "url": "https://example.com/generated-image.jpeg" } ] } }, "message": "success" } ``` ### Statuswerte - `submitted`: Aufgabe akzeptiert - `processing`: Generierung läuft - `succeed`: Generierung erfolgreich abgeschlossen - `failed`: Generierung fehlgeschlagen ## Fehlerbehandlung ### Häufige Fehler **Ungültiges Seitenverhältnis** ```json { "code": 400, "message": "Ratio must be one of: 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3" } ``` **Fehlende Bild-URL (Edit-Modus)** ```json { "code": 400, "message": "image_url_list is required for edit models" } ``` **Zu viele Bilder (Edit-Modus)** ```json { "code": 400, "message": "image_url_list supports a maximum of 6 images" } ``` **Unauthorized** ```json { "code": 401, "message": "Invalid or missing API key" } ``` ## Best Practices ### Tipps für Text-zu-Bild 1. **Sei spezifisch**: Motiv, Stil, Licht und Kompositionsdetails in deinem Prompt angeben 2. **Seitenverhältnis auswählen**: Verhältnis nach dem Anwendungsfall wählen (16:9 für Web-Banner, 9:16 für Mobile, 1:1 für Social Media) 3. **Seed für Reproduzierbarkeit verwenden**: Einen festen `seed`-Wert setzen, wenn konsistente Ergebnisse über mehrere Anfragen hinweg benötigt werden 4. **Standard vs Pro**: Standard für schnelle Iterationen verwenden, wenn die Ausgabequalität im Vordergrund steht ### Tipps für Bildbearbeitung 1. **Klare Anweisungen**: Im Prompt genau angeben, was geändert werden soll 2. **Mehrbild-Zusammenstellung**: Bis zu 6 Bilder bereitstellen und beschreiben, wie sie kombiniert werden sollen 3. **Prompt-Führung**: Das gewünschte Ergebnis statt nur der Änderungen beschreiben 4. **Bildqualität**: Höherwertige Eingabebilder erzeugen in der Regel bessere Bearbeitungsergebnisse