# Qwen Image 2.0 API Référence API complète pour les modèles Qwen Image 2.0 fournis par Alibaba Qwen. ## Variantes de modèle Cette API prend en charge quatre variantes de modèle : | Modèle | ID | Description | |-------|-----|-------------| | **Qwen Image 2** | `qwen-image-2.0` | Génération text-to-image | | **Qwen Image 2 Edit** | `qwen-image-2.0-edit` | Modification d’image et composition multi-image | | **Qwen Image 2 Pro** | `qwen-image-2.0-pro` | Génération text-to-image améliorée avec une qualité de sortie supérieure | | **Qwen Image 2 Pro Edit** | `qwen-image-2.0-pro-edit` | Modification d’image améliorée et composition multi-image | ## Comparaison rapide | Fonctionnalité | Standard | Pro | |---------|----------|-----| | Text-to-Image | ✅ Oui | ✅ Oui | | Édition d’image | ✅ Oui | ✅ Oui | | Ratios d’aspect | 7 options | 7 options | | Entrée image (Edit) | ✅ Oui (1 à 6 images) | ✅ Oui (1 à 6 images) | | Prise en charge multi-image | ✅ Oui | ✅ Oui | | Qualité de sortie | Standard | Améliorée | | Fonctionnalité | Text-to-Image | Edit | |---------|---------------|------| | Entrée | prompt texte | Image(s) + prompt texte | | Entrée image | ❌ Non | ✅ Oui (1 à 6 images) | | Prise en charge multi-image | ❌ Non | ✅ Oui | | Prise en charge de seed | ✅ Facultatif | ✅ Facultatif | ### Ratios d’aspect pris en charge Les modèles Standard et Pro prennent tous deux en charge 7 ratios d’aspect : - `16:9` (default), `9:16`, `1:1`, `4:3`, `3:4`, `3:2`, `2:3` ## Qwen Image 2 (Text-to-Image) ### Point de terminaison ``` POST /api/v1/image/task ``` ### Authentification ``` Authorization: Bearer YOUR_API_KEY ``` ### Paramètres de requête #### Obligatoire | Paramètre | Type | Description | |-----------|------|-------------| | `model_name` | string | Doit être `"qwen-image-2.0"` | | `prompt` | string | Prompt de génération d’image | | `width` | number | Valeur du ratio de largeur (par ex. 16 pour 16:9) | | `height` | number | Valeur du ratio de hauteur (par ex. 9 pour 16:9) | **Note :** Le ratio largeur:hauteur doit être l’un des suivants : `16:9`, `9:16`, `1:1`, `4:3`, `3:4`, `3:2`, `2:3` #### Facultatif | Paramètre | Type | Description | |-----------|------|-------------| | `seed` | number | Seed aléatoire pour des résultats reproductibles | ### Exemple de requête ```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 (Édition d’image) ### Point de terminaison ``` POST /api/v1/image/task ``` ### Paramètres de requête #### Obligatoire | Paramètre | Type | Description | |-----------|------|-------------| | `model_name` | string | Doit être `"qwen-image-2.0-edit"` | | `prompt` | string | Description des modifications souhaitées | | `width` | number | Valeur du ratio de largeur (par ex. 16 pour 16:9) | | `height` | number | Valeur du ratio de hauteur (par ex. 9 pour 16:9) | | `image_url_list` | string[] | Tableau d’URL d’images d’entrée (1 à 6 éléments) | **Note :** Le ratio largeur:hauteur doit être l’un des suivants : `16:9`, `9:16`, `1:1`, `4:3`, `3:4`, `3:2`, `2:3` #### Facultatif | Paramètre | Type | Description | |-----------|------|-------------| | `seed` | number | Seed aléatoire pour des résultats reproductibles | ### Exemple de modification d’une seule image ```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'] } ``` ### Exemple de composition multi-image Jusqu’à 6 images peuvent être combinées dans une seule requête : ```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) Utilise les mêmes paramètres que Qwen Image 2, avec `model_name` défini sur `qwen-image-2.0-pro` pour une qualité de sortie améliorée. ### Exemple de requête ```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 (Édition d’image) Utilise les mêmes paramètres que Qwen Image 2 Edit, avec `model_name` défini sur `qwen-image-2.0-pro-edit` pour une qualité de sortie améliorée. ### Exemple de requête ```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; ``` ## Format de réponse ### Réponse initiale Tous les modèles renvoient un `task_id` pour le polling : ```json { "code": 0, "data": { "task_id": "{task_id}", "task_status": "submitted", "response_url": "https://api.flaq.ai/api/v1/image/{task_id}" }, "message": "success" } ``` ### Réponse de polling Interrogez `GET /api/v1/image/{taskId}` pour vérifier le statut : ```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" } ``` ### Valeurs de statut - `submitted`: Tâche acceptée - `processing`: Génération en cours - `succeed`: Génération terminée avec succès - `failed`: La génération a échoué ## Gestion des erreurs ### Erreurs fréquentes **Ratio d’aspect non valide** ```json { "code": 400, "message": "Ratio must be one of: 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3" } ``` **URL d’image manquante (mode édition)** ```json { "code": 400, "message": "image_url_list is required for edit models" } ``` **Trop d’images (mode édition)** ```json { "code": 400, "message": "image_url_list supports a maximum of 6 images" } ``` **Unauthorized** ```json { "code": 401, "message": "Invalid or missing API key" } ``` ## Bonnes pratiques ### Conseils Text-to-Image 1. **Soyez précis** : incluez le sujet, le style, l’éclairage et les détails de composition dans votre prompt 2. **Choix du ratio d’aspect** : choisissez le ratio selon votre cas d’usage (16:9 pour les bannières Web, 9:16 pour mobile, 1:1 pour les réseaux sociaux) 3. **Utilisez seed pour la reproductibilité** : définissez une valeur `seed` fixe lorsque vous avez besoin de résultats cohérents entre les requêtes 4. **Standard vs Pro** : utilisez Standard pour itérer rapidement et Pro lorsque la qualité de sortie est prioritaire ### Conseils de modification d’image 1. **Instructions claires** : soyez précis sur ce qu’il faut modifier dans le prompt 2. **Composition multi-image** : fournissez jusqu’à 6 images et décrivez comment elles doivent être combinées 3. **Guidage du prompt** : décrivez le résultat souhaité plutôt que de simplement lister les changements 4. **Qualité d’image** : des images d’entrée de meilleure qualité produisent généralement de meilleurs résultats d’édition