# Qwen Image 2.0 API Riferimento API completo per i modelli Qwen Image 2.0 basati su Alibaba Qwen. ## Varianti del modello Questa API supporta quattro varianti del modello: | Modello | ID | Descrizione | |-------|-----|-------------| | **Qwen Image 2** | `qwen-image-2.0` | Generazione text-to-image | | **Qwen Image 2 Edit** | `qwen-image-2.0-edit` | Modifica immagini e composizione multi-immagine | | **Qwen Image 2 Pro** | `qwen-image-2.0-pro` | Generazione da testo a immagine migliorata con output di qualita superiore | | **Qwen Image 2 Pro Edit** | `qwen-image-2.0-pro-edit` | Modifica immagini e composizione multi-immagine migliorate | ## Confronto rapido | Funzionalita | Standard | Pro | |---------|----------|-----| | Da testo a immagine | ✅ Sì | ✅ Sì | | Modifica immagini | ✅ Sì | ✅ Sì | | Proporzioni | 7 opzioni | 7 opzioni | | Input immagine (modifica) | ✅ Sì (1-6 immagini) | ✅ Sì (1-6 immagini) | | Supporto multi-immagine | ✅ Sì | ✅ Sì | | Qualita output | Standard | Migliorata | | Funzionalita | Da testo a immagine | Edit | |---------|---------------|------| | Input | Prompt testuale | Immagine/i + prompt testuale | | Input immagine | ❌ No | ✅ Sì (1-6 immagini) | | Supporto multi-immagine | ❌ No | ✅ Sì | | Supporto seed | ✅ Opzionale | ✅ Opzionale | ### Proporzioni supportate Entrambi i modelli Standard e Pro supportano 7 proporzioni: - `16:9` (predefinito), `9:16`, `1:1`, `4:3`, `3:4`, `3:2`, `2:3` ## Qwen Image 2 (Da testo a immagine) ### Punto di accesso ``` POST /api/v1/image/task ``` ### Autenticazione ``` Authorization: Bearer YOUR_API_KEY ``` ### Parametri della richiesta #### Obbligatorio | Parametro | Tipo | Descrizione | |-----------|------|-------------| | `model_name` | string | Deve essere `"qwen-image-2.0"` | | `prompt` | string | Prompt di generazione immagini | | `width` | number | Valore del rapporto di larghezza (per esempio, 16 per 16:9) | | `height` | number | Valore del rapporto di altezza (per esempio, 9 per 16:9) | **Nota:** Il rapporto width:height deve essere uno tra: `16:9`, `9:16`, `1:1`, `4:3`, `3:4`, `3:2`, `2:3` #### Opzionale | Parametro | Tipo | Descrizione | |-----------|------|-------------| | `seed` | number | Seed casuale per risultati riproducibili | ### Richiesta di esempio ```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 (Modifica immagini) ### Punto di accesso ``` POST /api/v1/image/task ``` ### Parametri della richiesta #### Obbligatorio | Parametro | Tipo | Descrizione | |-----------|------|-------------| | `model_name` | string | Deve essere `"qwen-image-2.0-edit"` | | `prompt` | string | Descrizione delle modifiche desiderate | | `width` | number | Valore del rapporto di larghezza (per esempio, 16 per 16:9) | | `height` | number | Valore del rapporto di altezza (per esempio, 9 per 16:9) | | `image_url_list` | string[] | Array di URL immagine in input (1-6 elementi) | **Nota:** Il rapporto width:height deve essere uno tra: `16:9`, `9:16`, `1:1`, `4:3`, `3:4`, `3:2`, `2:3` #### Opzionale | Parametro | Tipo | Descrizione | |-----------|------|-------------| | `seed` | number | Seed casuale per risultati riproducibili | ### Esempio di modifica di una singola immagine ```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'] } ``` ### Esempio di composizione multi-immagine Fino a 6 immagini possono essere combinate in una singola richiesta: ```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 (Da testo a immagine) Usa gli stessi parametri di Qwen Image 2, con `model_name` impostato su `qwen-image-2.0-pro` per una qualita di output migliorata. ### Richiesta di esempio ```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 (Modifica immagini) Usa gli stessi parametri di Qwen Image 2 Edit, con `model_name` impostato su `qwen-image-2.0-pro-edit` per una qualita di output migliorata. ### Richiesta di esempio ```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; ``` ## Formato della risposta ### Risposta iniziale Tutti i modelli restituiscono un `task_id` per il 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" } ``` ### Risposta di polling Interroga `GET /api/v1/image/{taskId}` per controllare lo stato: ```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" } ``` ### Valori di stato - `submitted`: Task accettato - `processing`: Generazione in corso - `succeed`: Generazione completata correttamente - `failed`: Generazione non riuscita ## Gestione degli errori ### Errori comuni **Proporzioni 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 immagine mancante (modalita modifica)** ```json { "code": 400, "message": "image_url_list is required for edit models" } ``` **Troppe immagini (modalita modifica)** ```json { "code": 400, "message": "image_url_list supports a maximum of 6 images" } ``` **Non autorizzato** ```json { "code": 401, "message": "Invalid or missing API key" } ``` ## Buone pratiche ### Consigli per testo a immagine 1. **Sii specifico**: Includi nel prompt dettagli su soggetto, stile, illuminazione e composizione 2. **Scelta delle proporzioni**: Scegli il rapporto in base al caso d'uso (16:9 per banner web, 9:16 per mobile, 1:1 per social media) 3. **Usa il seed per la riproducibilita**: Imposta un valore `seed` fisso quando ti servono risultati coerenti tra richieste 4. **Standard vs Pro**: Usa Standard per iterazioni rapide e Pro quando la qualita dell'output e la priorita ### Consigli per modifica immagini 1. **Istruzioni chiare**: Specifica nel prompt cosa cambiare 2. **Composizione multi-immagine**: Fornisci fino a 6 immagini e descrivi come devono essere combinate 3. **Guida del prompt**: Descrivi il risultato desiderato invece di elencare solo le modifiche 4. **Qualita dell'immagine**: Immagini in input di qualita superiore producono in genere modifiche migliori