happyhorse-1.1-t2v
Μοντέλο δημιουργίας σύντομου βίντεο με ήχο από περιγραφή κειμένου. Είναι κατάλληλο για σκηνές στις οποίες η κίνηση, η σύνθεση και το οπτικό ύφος καθορίζονται με λέξεις.
- Ailoot · Βίντεο
POST /v1/videos/generationshappyhorse-1.1-t2v - Ailoot · Βίντεο
POST /v1/videos/generationshappyhorse-t2v - Ailoot · Βίντεο
POST /v1/videos/generationshappyhorse-t2v-latest
Σχετικά με το μοντέλο
Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.
Το HappyHorse-1.1-T2V είναι μοντέλο της Alibaba για τη δημιουργία σύντομων σκηνών βίντεο από κείμενο. Η περιγραφή ορίζει τους χαρακτήρες, τις ενέργειες, το περιβάλλον και την οπτική απόδοση· σε αυτή τη λειτουργία δεν απαιτείται αρχική εικόνα. Το μοντέλο δημιουργεί το βίντεο και μπορεί να παράγει τον ήχο που το συνοδεύει.
Ο κατασκευαστής δίνει έμφαση στην κατανόηση του νοήματος της σκηνής, στην κινηματογραφική σκηνοθεσία και στην εκφραστικότητα της κίνησης. Το κείμενο μπορεί να καθορίζει την ατμόσφαιρα, τις ενέργειες του χαρακτήρα, τη συμπεριφορά των αντικειμένων και τη φυσική δυναμική. Έτσι μπορείτε να χτίσετε τη σκηνή γύρω από όσα πρέπει να συμβούν και έπειτα να την κατευθύνετε με τον φωτισμό, τη γωνία λήψης και την κίνηση της κάμερας.
Σκηνοθεσία με λέξεις
Οι οδηγίες είναι υποχρεωτικές και μπορούν να είναι σε οποιαδήποτε γλώσσα. Μπορούν να περιλαμβάνουν έως 5000 μη κινεζικούς ή 2500 κινεζικούς χαρακτήρες· το επιπλέον τμήμα απορρίπτεται. Η δράση, το περιβάλλον και οι σημαντικές οπτικές λεπτομέρειες πρέπει να περιγραφούν μέσα σε αυτό το όριο. Αυτή η προσέγγιση αφήνει στο μοντέλο περιθώριο να δημιουργήσει μια νέα σκηνή, αντί να του ορίζει ένα έτοιμο πρώτο καρέ.
Σε αυτή τη λειτουργία, το κείμενο είναι το κύριο μέσο καθοδήγησης. Μπορείτε να περιγράψετε με λέξεις τη συγκεκριμένη εμφάνιση ενός χαρακτήρα ή αντικειμένου· η δυνατότητα να δοθεί η εμφάνισή του με ξεχωριστές εικόνες ανήκει σε άλλη λειτουργία της οικογένειας. Το αποτέλεσμα εξαρτάται από όλες τις οδηγίες, οπότε η ίδια αρχική τιμή τυχαιότητας βοηθά να προκύψουν παρόμοιες παραλλαγές, αλλά δεν εγγυάται ακριβή επανάληψη.
Βίντεο και ηχητική συνοδεία
Στο HappyHorse-1.1 η διάρκεια του βίντεο επιλέγεται ως ακέραιος αριθμός από 3 έως 15 δευτερόλεπτα. Υποστηρίζονται αναλύσεις 480P, 720P και 1080P. Το τελικό αρχείο είναι σε μορφή MP4 με ρυθμό 24 καρέ ανά δευτερόλεπτο. Το μοντέλο μπορεί να δημιουργεί ήχο μαζί με το βίντεο, συνδέοντας την ηχητική συνοδεία με όσα συμβαίνουν στη σκηνή.
Μπορείτε να ορίσετε εκ των προτέρων το σχήμα του καρέ. Διατίθενται 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 και 21:9 — από ευρύ κινηματογραφικό καρέ έως επιμήκες κατακόρυφο βίντεο. Η ανάλυση, η μορφή και η διάρκεια καθορίζουν το μέγεθος του αποτελέσματος· το περιεχόμενο και η κίνηση καθορίζονται από το κείμενο.
Αυτή η παραλλαγή προορίζεται για τη δημιουργία νέας σκηνής από μια ιδέα διατυπωμένη με λέξεις. Είναι κατάλληλη για ένα σύντομο επεισόδιο, μια οπτική ιδέα ή ένα βίντεο ατμόσφαιρας, όπου η σκηνοθεσία πρέπει να περιγραφεί με κείμενο.
Ailoot · Βίντεο POST /v1/videos/generations happyhorse-1.1-t2v
happyhorse-1.1-t2vhappyhorse-1.1-t2vhappyhorse-t2vhappyhorse-t2v-latest
Εισαγωγή
Μοντέλο δημιουργίας σύντομου βίντεο με ήχο από περιγραφή κειμένου. Είναι κατάλληλο για σκηνές στις οποίες η κίνηση, η σύνθεση και το οπτικό ύφος καθορίζονται με λέξεις.
- Αποδεκτές είσοδοι
- Κείμενο
- Αποτελέσματα
- Βίντεο
Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι
Ailoot · Βίντεο POST /v1/videos/generations
- Είσοδος
text- Έξοδος
video- Μορφή εξόδου
- mp4
| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
|---|---|---|---|---|
Πεδίοmodel | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια happyhorse-1.1-t2v | Προεπιλογή— |
Πεδίοprompt | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια Ελάχιστο μήκος: 1 | Προεπιλογή— |
Πεδίοduration | Τύποςinteger | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο: 3 Μέγιστο: 15 Μονάδα: δευτερόλεπτα | Προεπιλογή5 |
Πεδίοresolution | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια 480P, 720P, 1080P | Προεπιλογή720P |
Πεδίοratio | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Προεπιλογή16:9 |
Πεδίοimage_urls | Τύποςhttps_url|data_image_url[] | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο πλήθος στοιχείων: 0 Μέγιστο πλήθος στοιχείων: 0 Μέγιστο πλήθος αποκωδικοποιημένων byte: 20.971.520 Τύποι MIME: image/jpeg, image/png, image/webp | Προεπιλογή— |
Συνδυασμοί υλικών εισόδου
Κείμενο σε βίντεο · Υποχρεωτικό: prompt
Παράμετροι και κύκλος ζωής μεθόδου
| Παράμετρος | Σύμβαση |
|---|---|
Παράμετροςcontent_type | Σύμβασηapplication/json |
Παράμετροςrequired | Σύμβασηmodel, prompt |
Παράμετροςmaterial_types | Σύμβασηtext |
Παράμετροςoptional | Σύμβασηduration, resolution, ratio |
Παράμετροςduration_integer_range | Σύμβαση3, 15 |
Παράμετροςdefault_duration | Σύμβαση5 |
Παράμετροςresolution | Σύμβαση480P, 720P, 1080P |
Παράμετροςdefault_resolution | Σύμβαση720P |
Παράμετροςratio | Σύμβαση16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 |
Παράμετροςratio_must_omit | Σύμβασηfalse |
Παράμετροςimage_urls | Σύμβαση{"max_count":0} |
Κύκλος ζωής: 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
Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων.
Τιμολόγηση
Χρεώσεις μεθόδων Ailoot
POST /v1/videos/generations- Έξοδος
- 0,18 $ ανά δευτερόλεπτο στα 1080p
- Έξοδος
- 0,07 $ ανά δευτερόλεπτο στα 480p
- Έξοδος
- 0,14 $ ανά δευτερόλεπτο στα 720p
Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. Πώς λειτουργούν η δέσμευση και η εκκαθάριση →
Παραδείγματα αιτημάτων
Ailoot · Βίντεο
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-t2v", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
Λήψη και αποθήκευση αποτελεσμάτων
Ailoot · Βίντεο
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Έλεγχος κατάστασης εργασίας
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
for x in r.get("data",[]):print(x)
PY_STATUS
Αποθηκεύστε όλα τα ολοκληρωμένα αρχεία
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
u=urljoin("https://api.ailoot.ai",x)
z=urlsplit(u)
if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
index=$((index + 1))
done < asset-urls.txt
Άλλες ανακτήσεις περιεχομένου
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα
Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.
Διατηρήστε κάθε στοιχείο δεδομένων και δείκτη εξόδου που επιστρέφεται. Το content_url αφορά μόνο το πρώτο· ανακτήστε κάθε πραγματική διαδρομή περιεχομένου ή αρχείο πολυμέσων. Το GET περιεχομένου χωρίς index δεν αντιστοιχεί σε όλες τις εξόδους.
Αν χρειάζεται έλεγχος της αρχικής απάντησης
Διαβάστε την υπάρχουσα αρχική εργασία· μην επανυποβάλετε ποτέ αποστολή με άγνωστο αποτέλεσμα.
Πεδία απάντησης
| Πεδίο | Τύπος |
|---|---|
Πεδίοid | Τύποςstring |
Πεδίοobject | Τύποςstring |
Πεδίοmodel | Τύποςstring |
Πεδίοstatus | Τύποςstring |
Πεδίοcontent_url | Τύποςsigned URL |
Πεδίοdata[] | Τύποςsigned URL |
Πεδίοusage | Τύποςobject |
Πεδίοresult_pending_check | Τύποςboolean |
Σφάλματα και επόμενα βήματα
| Απάντηση | Συνθήκη | Επόμενο βήμα |
|---|---|---|
Απάντηση400 · invalid_request_error | ΣυνθήκηΜη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου | Επόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας. |
Απάντηση409 · video_not_ready | ΣυνθήκηΤο περιεχόμενο του αρχικού αποτελέσματος δεν είναι ακόμη διαθέσιμο | Επόμενο βήμαΕλέγχετε περιοδικά το αρχικό ID που επιστρέφεται και τηρείτε το Retry-After. |
Απάντησηserver_error | ΣυνθήκηΗ απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο | Επόμενο βήμαΔιατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας. |
Εναλλακτικά ονόματα
Εναλλακτικά ονόματα μοντέλου
Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest
Εναλλακτικές διαδρομές μεθόδων
Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.
Σχετικά ID μοντέλων
Ailoot · Βίντεο POST /v1/videos/generations happyhorse-t2v
happyhorse-t2vhappyhorse-1.1-t2vhappyhorse-t2vhappyhorse-t2v-latest
Εισαγωγή
Μοντέλο δημιουργίας σύντομου βίντεο με ήχο από περιγραφή κειμένου. Είναι κατάλληλο για σκηνές στις οποίες η κίνηση, η σύνθεση και το οπτικό ύφος καθορίζονται με λέξεις.
- Αποδεκτές είσοδοι
- Κείμενο
- Αποτελέσματα
- Βίντεο
Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι
Ailoot · Βίντεο POST /v1/videos/generations
- Είσοδος
text- Έξοδος
video- Μορφή εξόδου
- mp4
| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
|---|---|---|---|---|
Πεδίοmodel | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια happyhorse-t2v | Προεπιλογή— |
Πεδίοprompt | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια Ελάχιστο μήκος: 1 | Προεπιλογή— |
Πεδίοduration | Τύποςinteger | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο: 3 Μέγιστο: 15 Μονάδα: δευτερόλεπτα | Προεπιλογή5 |
Πεδίοresolution | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια 480P, 720P, 1080P | Προεπιλογή720P |
Πεδίοratio | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Προεπιλογή16:9 |
Πεδίοimage_urls | Τύποςhttps_url|data_image_url[] | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο πλήθος στοιχείων: 0 Μέγιστο πλήθος στοιχείων: 0 Μέγιστο πλήθος αποκωδικοποιημένων byte: 20.971.520 Τύποι MIME: image/jpeg, image/png, image/webp | Προεπιλογή— |
Συνδυασμοί υλικών εισόδου
Κείμενο σε βίντεο · Υποχρεωτικό: prompt
Παράμετροι και κύκλος ζωής μεθόδου
| Παράμετρος | Σύμβαση |
|---|---|
Παράμετροςmaterial_types | Σύμβασηtext |
Παράμετροςrequired | Σύμβασηnull |
Παράμετροςoptional_controls | Σύμβασηnull |
Κύκλος ζωής: 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
Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων.
Τιμολόγηση
Χρεώσεις μεθόδων Ailoot
POST /v1/videos/generations- Έξοδος
- 0,18 $ ανά δευτερόλεπτο στα 1080p
- Έξοδος
- 0,07 $ ανά δευτερόλεπτο στα 480p
- Έξοδος
- 0,14 $ ανά δευτερόλεπτο στα 720p
Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. Πώς λειτουργούν η δέσμευση και η εκκαθάριση →
Παραδείγματα αιτημάτων
Ailoot · Βίντεο
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-t2v", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
Λήψη και αποθήκευση αποτελεσμάτων
Ailoot · Βίντεο
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Έλεγχος κατάστασης εργασίας
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
for x in r.get("data",[]):print(x)
PY_STATUS
Αποθηκεύστε όλα τα ολοκληρωμένα αρχεία
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
u=urljoin("https://api.ailoot.ai",x)
z=urlsplit(u)
if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
index=$((index + 1))
done < asset-urls.txt
Άλλες ανακτήσεις περιεχομένου
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα
Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.
Διατηρήστε κάθε στοιχείο δεδομένων και δείκτη εξόδου που επιστρέφεται. Το content_url αφορά μόνο το πρώτο· ανακτήστε κάθε πραγματική διαδρομή περιεχομένου ή αρχείο πολυμέσων. Το GET περιεχομένου χωρίς index δεν αντιστοιχεί σε όλες τις εξόδους.
Αν χρειάζεται έλεγχος της αρχικής απάντησης
Διαβάστε την υπάρχουσα αρχική εργασία· μην επανυποβάλετε ποτέ αποστολή με άγνωστο αποτέλεσμα.
Πεδία απάντησης
| Πεδίο | Τύπος |
|---|---|
Πεδίοid | Τύποςstring |
Πεδίοobject | Τύποςstring |
Πεδίοmodel | Τύποςstring |
Πεδίοstatus | Τύποςstring |
Πεδίοcontent_url | Τύποςsigned URL |
Πεδίοdata[] | Τύποςsigned URL |
Πεδίοusage | Τύποςobject |
Πεδίοresult_pending_check | Τύποςboolean |
Σφάλματα και επόμενα βήματα
| Απάντηση | Συνθήκη | Επόμενο βήμα |
|---|---|---|
Απάντηση400 · invalid_request_error | ΣυνθήκηΜη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου | Επόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας. |
Απάντηση409 · video_not_ready | ΣυνθήκηΤο περιεχόμενο του αρχικού αποτελέσματος δεν είναι ακόμη διαθέσιμο | Επόμενο βήμαΕλέγχετε περιοδικά το αρχικό ID που επιστρέφεται και τηρείτε το Retry-After. |
Απάντησηserver_error | ΣυνθήκηΗ απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο | Επόμενο βήμαΔιατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας. |
Εναλλακτικά ονόματα
Εναλλακτικά ονόματα μοντέλου
Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest
Εναλλακτικές διαδρομές μεθόδων
Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.
Σχετικά ID μοντέλων
Ailoot · Βίντεο POST /v1/videos/generations happyhorse-t2v-latest
happyhorse-t2v-latesthappyhorse-1.1-t2vhappyhorse-t2vhappyhorse-t2v-latest
Εισαγωγή
Μοντέλο δημιουργίας σύντομου βίντεο με ήχο από περιγραφή κειμένου. Είναι κατάλληλο για σκηνές στις οποίες η κίνηση, η σύνθεση και το οπτικό ύφος καθορίζονται με λέξεις.
- Αποδεκτές είσοδοι
- Κείμενο
- Αποτελέσματα
- Βίντεο
Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι
Ailoot · Βίντεο POST /v1/videos/generations
- Είσοδος
text- Έξοδος
video- Μορφή εξόδου
- mp4
| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
|---|---|---|---|---|
Πεδίοmodel | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια happyhorse-t2v-latest | Προεπιλογή— |
Πεδίοprompt | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια Ελάχιστο μήκος: 1 | Προεπιλογή— |
Πεδίοduration | Τύποςinteger | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο: 3 Μέγιστο: 15 Μονάδα: δευτερόλεπτα | Προεπιλογή5 |
Πεδίοresolution | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια 480P, 720P, 1080P | Προεπιλογή720P |
Πεδίοratio | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Προεπιλογή16:9 |
Πεδίοimage_urls | Τύποςhttps_url|data_image_url[] | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο πλήθος στοιχείων: 0 Μέγιστο πλήθος στοιχείων: 0 Μέγιστο πλήθος αποκωδικοποιημένων byte: 20.971.520 Τύποι MIME: image/jpeg, image/png, image/webp | Προεπιλογή— |
Συνδυασμοί υλικών εισόδου
Κείμενο σε βίντεο · Υποχρεωτικό: prompt
Παράμετροι και κύκλος ζωής μεθόδου
| Παράμετρος | Σύμβαση |
|---|---|
Παράμετροςmaterial_types | Σύμβασηtext |
Παράμετροςrequired | Σύμβασηnull |
Παράμετροςoptional_controls | Σύμβασηnull |
Κύκλος ζωής: 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
Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων.
Τιμολόγηση
Χρεώσεις μεθόδων Ailoot
POST /v1/videos/generations- Έξοδος
- 0,18 $ ανά δευτερόλεπτο στα 1080p
- Έξοδος
- 0,07 $ ανά δευτερόλεπτο στα 480p
- Έξοδος
- 0,14 $ ανά δευτερόλεπτο στα 720p
Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. Πώς λειτουργούν η δέσμευση και η εκκαθάριση →
Παραδείγματα αιτημάτων
Ailoot · Βίντεο
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-t2v-latest", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
Λήψη και αποθήκευση αποτελεσμάτων
Ailoot · Βίντεο
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Έλεγχος κατάστασης εργασίας
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
for x in r.get("data",[]):print(x)
PY_STATUS
Αποθηκεύστε όλα τα ολοκληρωμένα αρχεία
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
u=urljoin("https://api.ailoot.ai",x)
z=urlsplit(u)
if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
index=$((index + 1))
done < asset-urls.txt
Άλλες ανακτήσεις περιεχομένου
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα
Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.
Διατηρήστε κάθε στοιχείο δεδομένων και δείκτη εξόδου που επιστρέφεται. Το content_url αφορά μόνο το πρώτο· ανακτήστε κάθε πραγματική διαδρομή περιεχομένου ή αρχείο πολυμέσων. Το GET περιεχομένου χωρίς index δεν αντιστοιχεί σε όλες τις εξόδους.
Αν χρειάζεται έλεγχος της αρχικής απάντησης
Διαβάστε την υπάρχουσα αρχική εργασία· μην επανυποβάλετε ποτέ αποστολή με άγνωστο αποτέλεσμα.
Πεδία απάντησης
| Πεδίο | Τύπος |
|---|---|
Πεδίοid | Τύποςstring |
Πεδίοobject | Τύποςstring |
Πεδίοmodel | Τύποςstring |
Πεδίοstatus | Τύποςstring |
Πεδίοcontent_url | Τύποςsigned URL |
Πεδίοdata[] | Τύποςsigned URL |
Πεδίοusage | Τύποςobject |
Πεδίοresult_pending_check | Τύποςboolean |
Σφάλματα και επόμενα βήματα
| Απάντηση | Συνθήκη | Επόμενο βήμα |
|---|---|---|
Απάντηση400 · invalid_request_error | ΣυνθήκηΜη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου | Επόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας. |
Απάντηση409 · video_not_ready | ΣυνθήκηΤο περιεχόμενο του αρχικού αποτελέσματος δεν είναι ακόμη διαθέσιμο | Επόμενο βήμαΕλέγχετε περιοδικά το αρχικό ID που επιστρέφεται και τηρείτε το Retry-After. |
Απάντησηserver_error | ΣυνθήκηΗ απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο | Επόμενο βήμαΔιατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας. |
Εναλλακτικά ονόματα
Εναλλακτικά ονόματα μοντέλου
Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest
Εναλλακτικές διαδρομές μεθόδων
Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.
Σχετικά ID μοντέλων
FAQ · happyhorse-1.1-t2v
- Ποιες είσοδοι και αποτελέσματα διατίθενται;
POST /v1/videos/generations·happyhorse-1.1-t2v:text→videoPOST /v1/videos/generations·happyhorse-t2v:text→videoPOST /v1/videos/generations·happyhorse-t2v-latest:text→video- Ποια πεδία χρησιμοποιεί το αίτημα;
POST /v1/videos/generations·happyhorse-1.1-t2v:model,prompt,duration,resolution,ratio,image_urlsPOST /v1/videos/generations·happyhorse-t2v:model,prompt,duration,resolution,ratio,image_urlsPOST /v1/videos/generations·happyhorse-t2v-latest:model,prompt,duration,resolution,ratio,image_urls- Ποια όρια ισχύουν;
POST /v1/videos/generations·happyhorse-1.1-t2v:duration.minimum:3;duration.maximum:15POST /v1/videos/generations·happyhorse-t2v:duration.minimum:3;duration.maximum:15POST /v1/videos/generations·happyhorse-t2v-latest:duration.minimum:3;duration.maximum:15