# API Happy Horse 1.1 Riferimento API completo per i modelli di generazione video Happy Horse 1.1 di Alibaba. ## Varianti del modello Questa API supporta tre varianti del modello: | Modello | ID | Descrizione | | --------------------------------------- | ------------------------------------ | --------------------------------------------------- | | **Happy Horse 1.1 Text to Video** | `happyhorse-1.1-text-to-video` | Genera video direttamente da prompt testuali | | **Happy Horse 1.1 Image to Video** | `happyhorse-1.1-image-to-video` | Anima una singola immagine di primo fotogramma con la guida del prompt | | **Happy Horse 1.1 Reference to Video** | `happyhorse-1.1-reference-to-video` | Genera video guidati da un massimo di 9 immagini di riferimento | ## Confronto rapido | Funzionalità | Testo a video | Immagine a video | Riferimento a video | | -------------- | ----------------------- | ---------------------- | ---------------------- | | Input | Prompt testuale | Immagine di primo fotogramma + prompt | Immagini di riferimento + prompt | | Intervallo di durata | 3-15 secondi | 3-15 secondi | 3-15 secondi | | Risoluzione | 720p, 1080p (predefinita 1080p) | 720p, 1080p (predefinita 1080p) | 720p, 1080p (predefinita 1080p) | | Proporzioni | 9 rapporti supportati (predefinito 16:9) | Non supportate (seguono l'immagine di input) | 9 rapporti supportati (predefinito 16:9) | | Seed | Opzionale | Opzionale | Opzionale | ### Proporzioni supportate (Testo a video e Riferimento a video) | Rapporto | Descrizione | | -------- | --------------------- | | `16:9` | Orizzontale (widescreen) | | `9:16` | Verticale | | `3:4` | Verticale standard | | `4:3` | Orizzontale standard | | `4:5` | Verticale | | `5:4` | Orizzontale | | `1:1` | Quadrato | | `9:21` | Verticale ultra alta | | `21:9` | Orizzontale ultra wide | ## Happy Horse 1.1 Text to Video ### Punto di accesso ``` POST /api/v1/video/task ``` ### Parametri della richiesta #### Obbligatori | Parametro | Tipo | Descrizione | | -------------- | ------ | ------------------------------------------------------------------ | | `model_name` | string | Deve essere `"happyhorse-1.1-text-to-video"` | | `prompt` | string | Prompt di generazione video | | `duration` | number | Durata del video in secondi (3-15) | | `resolution` | string | Risoluzione di output: `"720p"` o `"1080p"` (predefinita `"1080p"`) | | `aspect_ratio` | string | Proporzioni del video (vedi tabella sopra; predefinito `"16:9"`) | #### Opzionali | Parametro | Tipo | Descrizione | | --------- | ------ | ---------------------------------------------------------------------------------- | | `seed` | number | Seed casuale per generazioni riproducibili, intero nell'intervallo da `0` a `2147483647` | ### Richiesta di esempio ```javascript const response = await fetch('https://api.flaq.ai/api/v1/video/task', { method: 'POST', headers: { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ model_name: 'happyhorse-1.1-text-to-video', prompt: 'A cat playing with a ball of yarn on a sunny windowsill', duration: 5, resolution: '1080p', aspect_ratio: '16:9', seed: 42, }), }); const { data } = await response.json(); const taskId = data.task_id; ``` ## Happy Horse 1.1 Image to Video ### Parametri della richiesta #### Obbligatori | Parametro | Tipo | Descrizione | | ------------ | ------ | ------------------------------------------------------------------ | | `model_name` | string | Deve essere `"happyhorse-1.1-image-to-video"` | | `prompt` | string | Prompt di generazione video | | `duration` | number | Durata del video in secondi (3-15) | | `resolution` | string | Risoluzione di output: `"720p"` o `"1080p"` (predefinita `"1080p"`) | | `image_url` | string | URL dell'immagine di primo fotogramma (solo primo fotogramma) | #### Opzionali | Parametro | Tipo | Descrizione | | --------- | ------ | ---------------------------------------------------------------------------------- | | `seed` | number | Seed casuale per generazioni riproducibili, intero nell'intervallo da `0` a `2147483647` | > **Nota:** `aspect_ratio` non è supportato per image-to-video. L'inquadratura di output segue l'immagine di primo fotogramma caricata. ### Richiesta di esempio ```javascript const response = await fetch('https://api.flaq.ai/api/v1/video/task', { method: 'POST', headers: { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ model_name: 'happyhorse-1.1-image-to-video', image_url: 'https://example.com/first-frame.jpg', prompt: 'Gentle motion; cinematic lighting', duration: 5, resolution: '1080p', seed: 42, }), }); const { data } = await response.json(); const taskId = data.task_id; ``` ## Happy Horse 1.1 Reference to Video ### Parametri della richiesta #### Obbligatori | Parametro | Tipo | Descrizione | | -------------- | -------- | ------------------------------------------------------------------ | | `model_name` | string | Deve essere `"happyhorse-1.1-reference-to-video"` | | `prompt` | string | Prompt per la generazione video. Scrivi un prompt standard senza segnaposto oppure usa facoltativamente la funzione di riferimento @ (AT) con `<<>>` per richiamare esplicitamente gli elementi dell’array `images` | | `duration` | number | Durata del video in secondi (3-15) | | `resolution` | string | Risoluzione di output: `"720p"` o `"1080p"` (predefinita `"1080p"`) | | `aspect_ratio` | string | Proporzioni del video (vedi tabella sopra; predefinito `"16:9"`) | | `images` | string[] | URL delle immagini di riferimento (1-9 immagini) | #### Segnaposto di riferimento @ (AT) La funzione di riferimento @ (AT) collega le immagini di riferimento al prompt tramite segnaposto `<<>>` numerati. La numerazione inizia da `1` e segue l’ordine dell’array `images`. | Segnaposto | Valore referenziato | |-------------|------------------| | `<<>>` | `images[0]` | | `<<>>` | `images[1]` | | `<<>>` | `images[2]` | #### Opzionali | Parametro | Tipo | Descrizione | | --------- | ------ | ---------------------------------------------------------------------------------- | | `seed` | number | Seed casuale per generazioni riproducibili, intero nell'intervallo da `0` a `2147483647` | ### Requisiti per le immagini di riferimento - Formati supportati: `JPEG`, `JPG`, `PNG`, `WEBP` - Dimensione massima del file: 20 MB per immagine - Lato corto minimo: 400 px - Numero: almeno 1, fino a 9 immagini ### Richiesta di esempio ```javascript const response = await fetch('https://api.flaq.ai/api/v1/video/task', { method: 'POST', headers: { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ model_name: 'happyhorse-1.1-reference-to-video', prompt: 'Subject moves naturally while preserving reference style and appearance', duration: 5, resolution: '1080p', aspect_ratio: '16:9', images: [ 'https://example.com/ref-1.jpg', 'https://example.com/ref-2.jpg', ], seed: 42, }), }); const { data } = await response.json(); const taskId = data.task_id; ``` ### Esempio di richiesta Reference-to-Video con @ (AT) ```javascript const response = await fetch('https://api.flaq.ai/api/v1/video/task', { method: 'POST', headers: { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ model_name: 'happyhorse-1.1-reference-to-video', prompt: 'Show the person from <<>> walking beside the bicycle from <<>> through the street in <<>>, preserving all reference details', duration: 5, resolution: '1080p', aspect_ratio: '16:9', images: [ 'https://example.com/person-reference.jpg', 'https://example.com/bicycle-reference.jpg', 'https://example.com/street-reference.jpg', ], seed: 42, }), }); const { data } = await response.json(); const taskId = data.task_id; ``` ## Formato della risposta ### Risposta iniziale ```json { "code": 0, "message": "success", "data": { "task_id": "{task_id}", "response_url": "https://api.flaq.ai/api/v1/video/{task_id}", "task_status": "submitted" } } ``` ### Risposta di polling Esegui il polling di `GET /api/v1/video/{taskId}` per controllare lo stato: ```json { "code": 0, "message": "success", "data": { "task_id": "{task_id}", "response_url": "https://api.flaq.ai/api/v1/video/{task_id}", "task_status": "succeed", "task_status_msg": null, "task_result": { "credit": 0.2, "videos": [ { "url": "https://example.com/generated-video.mp4" } ] } } } ``` ### Valori di stato - `submitted`: Attività accettata e in attesa di elaborazione - `processing`: Generazione video in corso - `succeed`: Generazione video completata - `failed`: Generazione video non riuscita ## Tempo di elaborazione Tempo di elaborazione tipico: 2-5 minuti a seconda della durata e del carico della coda. ## Best practice 1. **Descrivi chiaramente il movimento**: aggiungi movimento del soggetto, movimento della camera e progressione della scena per migliorare la dinamica del video. 2. **Usa prima iterazioni brevi**: inizia con generazioni di 3-5 secondi per validare la direzione del prompt prima di eseguire clip più lunghi. 3. **Scegli l'immagine di input corretta**: per image-to-video, usa un'immagine di primo fotogramma chiara e ben illuminata, con una forte focalizzazione sul soggetto. 4. **Cura le immagini di riferimento**: per reference-to-video, fornisci immagini di riferimento coerenti e di alta qualità che rappresentino chiaramente il soggetto o lo stile che vuoi preservare. 5. **Riutilizza i seed per le varianti**: mantieni lo stesso `seed` quando testi affinamenti del prompt per confrontare gli output in modo più coerente. 6. **Abbina il rapporto al canale di distribuzione**: usa `16:9` per video orizzontali, `9:16` per shorts e reels, e `1:1` per posizionamenti quadrati.