Vidu: Q2 Text-to-Video
Vidu Q2 crea video da una descrizione testuale della scena, con durata di 1–10 secondi, uscita 540p, 720p o 1080p e cinque rapporti d’aspetto. Questo specifico profilo viduq2 usa il prompt per stile e movimento e restituisce il risultato tramite un’attività asincrona.
Informazioni sul modello
Questa descrizione illustra le funzionalità del modello. Gli input, gli output e le opzioni disponibili in Ailoot per il metodo selezionato sono elencati di seguito.
Vidu Q2 crea video da una scena scritta tramite il profilo di generazione video da testo selezionato con viduq2. Gli ingressi obbligatori sono l’identificatore esatto del modello e un prompt che descrive la scena. Usatelo per un breve concetto di prodotto, una veduta d’insieme o un’azione di un personaggio il cui aspetto e movimento siano specificabili a parole. Questo metodo configurato genera video da testo; la sua descrizione non assegna al selettore una modalità separata con immagine di riferimento o di modifica video.
Costruite la richiesta intorno a una sequenza visibile. Identificate soggetto, luogo, azione, ampiezza dell’inquadratura, movimento della camera e composizione finale. Per un concetto di prodotto, descrivete un oggetto su un tavolo, la luce che si sposta sul materiale e un lento avvicinamento della camera che termina su un dettaglio riconoscibile. Per una scena di un luogo, presentate l’ambiente prima di avvicinarvi al punto focale. Mantenete l’azione adeguata alla durata scelta della clip, affinché la scena abbia spazio per il finale desiderato.
Il limite del prompt è di 2 000 caratteri. Mettete prima il soggetto e l’azione essenziali, poi aggiungete i dettagli di illuminazione, materiale, ambiente e camera che cambiano il risultato desiderato. Specificate lo stile visivo nel prompt. La guida specifica di Q2 afferma che i parametri separati style e movement_amplitude non hanno effetto per questo modello, quindi le impostazioni predefinite general o anime e le opzioni di ampiezza del movimento non sostituiscono una descrizione chiara della scena.
L’impostazione di durata specifica del modello accetta secondi interi da uno a dieci. Le scelte di risoluzione specifiche di Q2 sono 540p, 720p e 1080p, con 720p come valore predefinito documentato. Scegliete insieme durata e risoluzione in base all’azione e alla destinazione. Una breve presentazione e un movimento più lungo richiedono tempi diversi; aumentare la durata richiesta deve servire la sequenza visibile, non semplicemente allungare una descrizione invariata. Esaminate le dimensioni e la durata effettive della clip restituita quando preparate il posizionamento finale.
Le scelte documentate di aspect_ratio sono 16:9, 9:16, 3:4, 4:3 e 1:1, con 16:9 come valore predefinito. La guida include esplicitamente 3:4 e 4:3 per la famiglia Q2. Scegliete il formato prima della generazione e descrivete una composizione adatta: mantenete leggibile il soggetto principale in una vista verticale oppure usate la larghezza di un’inquadratura orizzontale per l’ambiente circostante. Lasciate la vista finale abbastanza chiara per la pagina, la presentazione o il successivo inserimento di didascalie previsti.
Il campo seed controlla la variazione. Ometterlo o fornire 0 seleziona un valore casuale; un valore diverso da zero seleziona l’opzione documentata di seed fisso per una generazione ripetibile. Preservate il seed restituito insieme al prompt e alle impostazioni quando confrontate le versioni. L’operazione condivisa documenta anche i controlli audio e off_peak specificamente per i modelli Q3. Queste opzioni Q3 non sono capacità assegnate a questo profilo Q2; pianificate la richiesta in base al suo ingresso testuale e alla sua uscita video documentati.
La generazione è asincrona. L’invio restituisce task_id e uno stato iniziale, con created usato per un’attività appena creata. Conservate l’identità dell’attività mentre seguite l’elaborazione. La consultazione documentata del risultato usa state=success per un risultato riuscito e restituisce un array creations. Ogni elemento ha l’URL del video in creations[].url; salvate tutti i video restituiti anziché presumere che l’attività contenga sempre esattamente una creazione.
La documentazione del risultato riporta anche durata, fps e larghezza e altezza della risoluzione del video effettivo. Conservate questi valori riportati con la clip completata anziché trattare la frequenza dei fotogrammi o le dimensioni di un esempio come una specifica fissa di Q2. La risposta di creazione dell’attività include un valore credits insieme alla configurazione della richiesta. Conservate questi metadati riportati dell’attività e l’identità dell’attività completata insieme al risultato, affinché ogni video resti collegato alle proprie impostazioni di generazione.
Verificate l’intera sequenza rispetto alla richiesta originale: aspetto del soggetto, forma dell’oggetto, direzione del movimento, continuità della camera e vista finale desiderata. Per una revisione, identificate il dettaglio concreto che non rispetta la richiesta e preservate le parti riuscite della scena. Tenete insieme il prompt, il selettore esatto, le impostazioni, l’identità dell’attività e i video completati, affinché un confronto successivo si basi sugli artefatti reali.
Ailoot Ultra · Generazione video POST /v1/videos viduq2
viduq2Introduzione
Vidu Q2 crea video da una descrizione testuale della scena, con durata di 1–10 secondi, uscita 540p, 720p o 1080p e cinque rapporti d’aspetto. Questo specifico profilo viduq2 usa il prompt per stile e movimento e restituisce il risultato tramite un’attività asincrona.
- Input accettati
- Testo
- Risultati
- Video
Disponibile in Ailoot · input e metodi
Ailoot Ultra · Generazione video POST /v1/videos
- Tipi di input
text- Tipi di output
video
| Campo | Tipo | Requisito | Valori e limiti | Predefinito |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObbligatorio | Valori e limiti viduq2 | Predefinito— |
Campoprompt | Tipostring | RequisitoObbligatorio | Valori e limiti Condizioni: Descrivi la scena da generare. Il limite documentato è di 2000 caratteri; Ailoot verifica che la stringa non sia vuota e conserva il testo. | Predefinito— |
Campoduration | Tipointeger | RequisitoFacoltativo | Valori e limiti Minimo: 1 Massimo: 10 Condizioni: La descrizione specifica di viduq2 indica 1–10 secondi interi. Non è documentata una durata predefinita specifica del modello. Unità: secondi | Predefinito— |
Camposeed | Tipostring | RequisitoFacoltativo | Valori e limiti Condizioni: Ometti oppure invia la stringa "0" per la casualità. Un seed non nullo fornito seleziona il comportamento documentato con seed fisso; non è specificato alcun intervallo numerico. | Predefinito— |
Campoaspect_ratio | Tipostring | RequisitoFacoltativo | Valori e limiti 16:9, 9:16, 3:4, 4:3, 1:1 | Predefinito16:9 |
Camporesolution | Tipostring | RequisitoFacoltativo | Valori e limiti 540p, 720p, 1080p Condizioni: L'elenco specifico di viduq2 documenta queste fasce per 1–10 secondi. Un'enumerazione e una tabella condivise menzionano anche 360p; la sua applicabilità contraddice quell'elenco e non viene dichiarata qui. | Predefinito720p |
Campostyle | Tipostring | RequisitoFacoltativo | Valori e limiti general, anime Condizioni: La richiesta condivisa accetta questo campo, ma la documentazione specifica esplicitamente che non ha effetto per viduq2. | Predefinitogeneral |
Campomovement_amplitude | Tipostring | RequisitoFacoltativo | Valori e limiti auto, small, medium, large Condizioni: La richiesta condivisa accetta questo campo, ma la documentazione specifica esplicitamente che non ha effetto per i modelli q2. | Predefinitoauto |
Combinazioni di materiali in input
Parametri e ciclo di vita del metodo
| Parametro | Contratto |
|---|---|
Parametrocontent_type | Contrattoapplication/json |
Parametrorequired | Contrattomodel, prompt |
Parametrooptional | Contrattoduration, seed, aspect_ratio, resolution, style, movement_amplitude |
Parametromaterial_types | Contrattotext |
Parametroadditional_properties | Contrattotrue |
Parametrovalidation_scope | ContrattoAiloot convalida le stringhe model/prompt non vuote. I tipi e i limiti facoltativi riportati sotto costituiscono il contratto documentato della richiesta; gli altri campi vengono conservati per il modello selezionato. |
Alias del metodo: /v1/videos/generations
Ciclo di vita: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
Crea una sola volta e conserva l'id pubblico e polling_url restituiti.
Interroga periodicamente l'operazione originale e leggi state; il completamento richiede success e un risultato creations[].url di tua proprietà.
Scarica ogni URL video restituito di tua proprietà; dall'esempio non dedurre un numero fisso di risultati, una durata o una frequenza dei fotogrammi.
Tariffe
Calcolo del costo finale
Le tariffe visualizzate stimano il costo prima della generazione. L'addebito finale viene calcolato in base al costo registrato per la generazione originale. La durata misurata dell'output e le quantità previste non costituiscono la quantità finale fatturabile.
Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.
- Modalità rapida
- Non specificato Quando è selezionata la modalità rapida
- Modalità flex
- Non specificato Quando è selezionata la modalità flex
- Sforzo massimo di ragionamento
- Non specificato Quando lo sforzo massimo di ragionamento usa l'adeguamento predefinito (default)
Tariffe stimate per il confronto
Prezzi per configurazione
Associa ogni costo alle condizioni indicate. Usa una sola tariffa per ogni insieme di configurazioni alternative.
| Configurazione | Listino delle tariffe | Quantità prevista | Costo |
|---|---|---|---|
| ConfigurazioneTariffe base dei token | Listino delle tariffeTariffa base | Quantità prevista— | Costo Input · Token in input · Stima solo a fini di confronto — / 1K token Output · Token in output · Stima solo a fini di confronto — / 1K token Input · Lettura dalla cache · Stima solo a fini di confronto — / 1K token Input · Scrittura nella cache · Stima solo a fini di confronto — / 1K token Input · Scrittura nella cache, 1 ora · Stima solo a fini di confronto — / 1K token |
| ConfigurazioneCosto stimato della generazione | Listino delle tariffe— | Quantità previstastima per una generazione | Costo Output · Costo di generazione stimato · Stima solo a fini di confronto $5.12 stima prima della generazione Questa stima non è un addebito aggiuntivo né una tariffa fissa per la generazione completata. |
Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →
Esempi di richieste
Ailoot Ultra · Generazione video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"viduq2","prompt":"In an ultra-realistic fashion photography style featuring light blue and pale amber tones, an astronaut in a spacesuit walks through the fog. The background consists of enchanting white and golden lights, creating a minimalist still life and an impressive panoramic scene."}
JSON_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i:raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use the actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("state")!="success":raise SystemExit("Poll the same original job until its owned result is returned.")
creations=r.get("creations")
if not isinstance(creations,list) or not creations:raise SystemExit("No completed video creations.")
urls=[]
for item in creations:
value=item.get("url") if isinstance(item,dict) else None
values=[value] if isinstance(value,str) else value
if not isinstance(values,list) or not values:raise SystemExit("No completed video URL.")
for u in values:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for the actual Ailoot-owned signed result.")
urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
Ricevi e salva i risultati
Ailoot Ultra · Generazione video
Il JSON conserva lo stato nativo e l'array creations, aggiungendo id/provider_task_id/polling_url pubblici. Gli URL video selezionati sono vuoti prima della pubblicazione e diventano URL firmati di proprietà di Ailoot dopo il completamento.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Conserva tutti i risultati completati
Salva ogni video completato o file restituito; recupera ogni URL di risorsa effettivamente restituito.
Scarica ogni URL effettivamente restituito in creations[].url; un indice del contenuto identifica un risultato reale restituito.
Se occorre verificare la risposta originale
La dichiarazione fissata non elenca stati finali di errore. Conserva risposta, intestazioni e id originali e verifica quella stessa operazione per qualsiasi stato non riconosciuto o errore result_pending_check; non inviare mai nuovamente una creazione dall'esito sconosciuto.
Campi della risposta
| Campo | Tipo | Significato |
|---|---|---|
Campoid | Tipostring | SignificatoIdentificatore pubblico dell'attività o dell'operazione Ailoot restituito. |
Campoprovider_task_id | Tipostring | SignificatoIdentificatore dell'attività originale, distinto dall'id pubblico. |
Campopolling_url | Tipostring | SignificatoPercorso di consultazione Ailoot restituito per l'attività originale. |
Campotask_id | Tipostring when supplied | SignificatoIdentificatore originale presente nella risposta di creazione. |
Campostate | Tipostring when supplied | SignificatoStato nativo dell'attività: created per lo stato in attesa fissato e success per il completamento. |
Campoerr_code | Tipostring when supplied | SignificatoDiagnostica dell'attività; la specifica salvata non dichiara un elenco enumerato di codici di errore. |
Campocreations[].url | Tipostring|string[] | SignificatoOgni URL video completato selezionato viene sostituito con un URL firmato di proprietà di Ailoot. |
Campocreations[].video.duration | Tiponumber when supplied | SignificatoDurata del video restituita; verifica il risultato effettivo completato. |
Campocreations[].video.fps | Tipointeger when supplied | SignificatoFrequenza dei fotogrammi restituita; non viene promessa una frequenza fissa. |
Campocreations[].video.resolution.width | Tipointeger when supplied | SignificatoLarghezza del risultato restituita in pixel. |
Campocreations[].video.resolution.height | Tipointeger when supplied | SignificatoAltezza del risultato restituita in pixel. |
Errori e passaggi successivi
| Risposta | Condizione | Passaggio successivo |
|---|---|---|
Risposta400 · invalid_request_error | CondizioneJSON o modello non valido, stringhe obbligatorie mancanti o vuote oppure indice del contenuto non valido. | Passaggio successivo |
Risposta401 · authentication_error | CondizioneChiave API Ailoot non valida. | Passaggio successivo |
Risposta403 · permission_error | CondizioneIl gruppo della chiave API non è autorizzato a utilizzare questa rotta multimediale. | Passaggio successivo |
Risposta404 · not_found_error | CondizioneL'attività originale o il risultato richiesto è assente oppure non appartiene allo stesso utente, alla stessa chiave API o allo stesso gruppo. | Passaggio successivo |
Risposta502 · result_pending_check | CondizioneL'invio o lo stato originale è incompleto oppure non può essere riconciliato; conserva l'ID originale e non inviare nuovamente la richiesta. | Passaggio successivo |
Risposta503 · result_pending_check | CondizioneIl collegamento originale, la rotta o il contenuto multimediale di tua proprietà è ancora in verifica; continua a verificare quell'operazione originale. | Passaggio successivo |
Risposta503 · server_error | CondizioneIl servizio multimediale o l'archivio delle attività originali non è disponibile. | Passaggio successivo |
Alias
Alias del modello
Ailoot Ultra viduq2
Alias dei percorsi dei metodi
/v1/videos/generations
ID di chiamata correlati
FAQ · Vidu: Q2 Text-to-Video
- Quali input e risultati sono disponibili?
POST /v1/videos·viduq2:text→video- Quali campi usa la richiesta?
POST /v1/videos·viduq2:model,prompt,duration,seed,aspect_ratio,resolution,style,movement_amplitude- Quali limiti si applicano?
POST /v1/videos·viduq2:duration.minimum:1;duration.maximum:10