happyhorse-1.0-i2v
Το HappyHorse 1.0 I2V συνδυάζει εικόνα και προτροπή κίνησης για δημιουργία βίντεο. Επιλέξτε διάρκεια και ανάλυση και παρακολουθήστε το αρχικό αίτημα πλάνου μέσω του Ailoot.
Σχετικά με το μοντέλο
Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.
Χρησιμοποιήστε happyhorse-1.0-i2v με model, prompt και image στο /v1/videos. Η εικόνα παρέχει το αρχικό οπτικό υλικό· το prompt περιγράφει την κίνηση θέματος και κάμερας. Επιλέξτε διάρκεια από 3 έως 15 δευτερόλεπτα και ανάλυση 720P ή 1080P.
Ετοιμάστε εικόνα με ευδιάκριτο θέμα και αρκετό χώρο για την επιθυμητή δράση. Οι οδηγίες κίνησης μπορούν να ζητούν από το θέμα να στραφεί προς την κάμερα με ακίνητο φόντο ή σταδιακή κίνηση της κάμερας γύρω από προϊόν. Δηλώστε την τελική στάση και τα στοιχεία προς διατήρηση, αντί να στριμώχνετε άσχετες αλλαγές σκηνής στο πλάνο.
Υποβάλετε το πλάνο μία φορά μέσω του /v1/videos, κρατήστε το αναγνωριστικό αιτήματος που επιστρέφεται και ελέγχετε περιοδικά εκείνη την αρχική λειτουργία μέσω του /v1/videos/{request_id}. Αποθηκεύστε κάθε ολοκληρωμένο βίντεο και ολόκληρη την απόκριση πριν ελέγξετε την κίνηση, το κάδρο και την τελική κατάσταση ως προς τις οδηγίες.
Ailoot Ultra · Video POST /v1/videos happyhorse-1.0-i2v
happyhorse-1.0-i2vΕισαγωγή
Το HappyHorse 1.0 I2V συνδυάζει εικόνα και προτροπή κίνησης για δημιουργία βίντεο. Επιλέξτε διάρκεια και ανάλυση και παρακολουθήστε το αρχικό αίτημα πλάνου μέσω του Ailoot.
- Αποδεκτές είσοδοι
- Κείμενο · Εικόνες
- Αποτελέσματα
- Βίντεο
Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι
Ailoot Ultra · Video POST /v1/videos
- Είσοδος
text,image- Έξοδος
video
| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
|---|---|---|---|---|
Πεδίοmodel | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια happyhorse-1.0-i2v Συνθήκες: Χρησιμοποιήστε ακριβώς αυτόν τον επιλογέα δρομολόγησης του Ailoot. | Προεπιλογή— |
Πεδίοprompt | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια Συνθήκες: Χρησιμοποιήστε το τεκμηριωμένο πεδίο και τις αναφερόμενες επιλογές του επιλεγμένου μοντέλου· παραλείψτε μια προαιρετική τιμή που δεν έχει καθοριστεί. | Προεπιλογή— |
Πεδίοimage | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια Συνθήκες: Δώστε το πραγματικό προσβάσιμο URL της εικόνας σας. Μια λίστα γίνεται δεκτή μόνο όταν το σχήμα της παραμέτρου ορίζει πίνακα. | Προεπιλογή— |
Πεδίοresolution | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια 720P, 1080P Συνθήκες: Χρησιμοποιήστε το τεκμηριωμένο πεδίο και τις αναφερόμενες επιλογές του επιλεγμένου μοντέλου· παραλείψτε μια προαιρετική τιμή που δεν έχει καθοριστεί. | Προεπιλογή720P |
Πεδίοduration | Τύποςinteger | ΑπαίτησηΠροαιρετικό | Τιμές και όρια 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Συνθήκες: Χρησιμοποιήστε το τεκμηριωμένο πεδίο και τις αναφερόμενες επιλογές του επιλεγμένου μοντέλου· παραλείψτε μια προαιρετική τιμή που δεν έχει καθοριστεί. | Προεπιλογή5 |
Παράμετροι και κύκλος ζωής μεθόδου
| Παράμετρος | Σύμβαση |
|---|---|
Παράμετροςcontent_type | Σύμβασηapplication/json |
Παράμετροςrequired | Σύμβασηmodel, prompt, image |
Παράμετροςoptional | Σύμβασηresolution, duration |
Παράμετροςmaterial_types | Σύμβασηtext, image |
Παράμετροςconditions | ΣύμβασηΧρησιμοποιήστε ακριβώς αυτόν τον επιλογέα δρομολόγησης του Ailoot., Χρησιμοποιήστε το τεκμηριωμένο πεδίο και τις αναφερόμενες επιλογές του επιλεγμένου μοντέλου· παραλείψτε μια προαιρετική τιμή που δεν έχει καθοριστεί., Δώστε το πραγματικό προσβάσιμο URL της εικόνας σας. Μια λίστα γίνεται δεκτή μόνο όταν το σχήμα της παραμέτρου ορίζει πίνακα., Χρησιμοποιήστε το τεκμηριωμένο πεδίο και τις αναφερόμενες επιλογές του επιλεγμένου μοντέλου· παραλείψτε μια προαιρετική τιμή που δεν έχει καθοριστεί., Χρησιμοποιήστε το τεκμηριωμένο πεδίο και τις αναφερόμενες επιλογές του επιλεγμένου μοντέλου· παραλείψτε μια προαιρετική τιμή που δεν έχει καθοριστεί. |
Εναλλακτικά ονόματα μεθόδου: /v1/videos/generations
Κύκλος ζωής: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Τιμολόγηση
Πώς υπολογίζεται η τελική χρέωση
Οι εμφανιζόμενες τιμές χρησιμοποιούνται για την εκτίμηση του κόστους πριν από την παραγωγή. Η τελική χρέωση υπολογίζεται από το κόστος που καταγράφηκε για την αρχική παραγωγή. Η μετρημένη διάρκεια της εξόδου και οι προβλεπόμενες ποσότητες δεν αποτελούν την τελική χρεώσιμη ποσότητα.
Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.
- Γρήγορη λειτουργία
- Δεν έχει οριστεί Όταν επιλέγεται η γρήγορη λειτουργία
- Λειτουργία flex
- Δεν έχει οριστεί Όταν επιλέγεται η λειτουργία flex
- Μέγιστη προσπάθεια συλλογισμού
- Δεν έχει οριστεί Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default
Εκτιμώμενες χρεώσεις για σύγκριση
Τιμές ανά διαμόρφωση
Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.
| Διαμόρφωση | Πίνακας χρεώσεων | Προβλεπόμενη ποσότητα | Ανάλυση εξόδου | Μονάδα τιμολόγησης | Συνθήκες χρέωσης | Χρέωση |
|---|---|---|---|---|---|---|
| ΔιαμόρφωσηΒασικές χρεώσεις token | Πίνακας χρεώσεωνΒασική χρέωση | Προβλεπόμενη ποσότητα— | Ανάλυση εξόδου— | Μονάδα τιμολόγησης— | Συνθήκες χρέωσης— | Χρέωση Είσοδος · Token εισόδου · Εκτίμηση μόνο για σύγκριση — / 1K token Έξοδος · Token εξόδου · Εκτίμηση μόνο για σύγκριση — / 1K token Είσοδος · Ανάγνωση από την κρυφή μνήμη · Εκτίμηση μόνο για σύγκριση — / 1K token Είσοδος · Εγγραφή στην κρυφή μνήμη · Εκτίμηση μόνο για σύγκριση — / 1K token Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα · Εκτίμηση μόνο για σύγκριση — / 1K token |
| ΔιαμόρφωσηΠαραγόμενο βίντεο | Πίνακας χρεώσεων— | Προβλεπόμενη ποσότητα— | Ανάλυση εξόδου1080P | Μονάδα τιμολόγησηςανά δευτερόλεπτο βίντεο | Συνθήκες χρέωσηςΕνδεικτική εκτίμηση για το παραγόμενο βίντεο σε ανάλυση 1080P. Η τελική χρέωση βασίζεται στο καταγεγραμμένο αρχικό τιμολόγιο. | Χρέωση Έξοδος · Βίντεο εξόδου · Εκτίμηση μόνο για σύγκριση $0.552 ανά δευτερόλεπτο βίντεο Μόνο ενδεικτική εκτίμηση· η τελική χρέωση βασίζεται στο καταγεγραμμένο αρχικό τιμολόγιο. |
| ΔιαμόρφωσηΠαραγόμενο βίντεο | Πίνακας χρεώσεων— | Προβλεπόμενη ποσότητα— | Ανάλυση εξόδου720P | Μονάδα τιμολόγησηςανά δευτερόλεπτο βίντεο | Συνθήκες χρέωσηςΕνδεικτική εκτίμηση για το παραγόμενο βίντεο σε ανάλυση 720P. Η τελική χρέωση βασίζεται στο καταγεγραμμένο αρχικό τιμολόγιο. | Χρέωση Έξοδος · Βίντεο εξόδου · Εκτίμηση μόνο για σύγκριση $0.312 ανά δευτερόλεπτο βίντεο Μόνο ενδεικτική εκτίμηση· η τελική χρέωση βασίζεται στο καταγεγραμμένο αρχικό τιμολόγιο. |
| ΔιαμόρφωσηΕκτιμώμενο κόστος δημιουργίας | Πίνακας χρεώσεων— | Προβλεπόμενη ποσότηταεκτίμηση για μία δημιουργία | Ανάλυση εξόδου— | Μονάδα τιμολόγησης— | Συνθήκες χρέωσης— | Χρέωση Έξοδος · Εκτιμώμενο κόστος δημιουργίας · Εκτίμηση μόνο για σύγκριση $0.312 εκτίμηση πριν από τη δημιουργία Αυτή η εκτίμηση δεν αποτελεί πρόσθετη χρέωση ούτε σταθερή τιμή για την ολοκληρωμένη παραγωγή. |
Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. Πώς λειτουργούν η δέσμευση και η εκκαθάριση →
Παραδείγματα αιτημάτων
Ailoot Ultra · Video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
: "${AILOOT_IMAGE_URL:?Set an actual customer material or documented value}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.0-i2v", "prompt": "A cat is walking on grass.", "image": "YOUR_ACCESSIBLE_IMAGE_URL"}')
p['image']=os.environ['AILOOT_IMAGE_URL']
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 \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
# Submit once. Retain the complete result, original identifiers and every response header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("status.json").read_text())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
Λήψη και αποθήκευση αποτελεσμάτων
Ailoot Ultra · Video
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα
Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.
Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, τα αρχικά αναγνωριστικά, κάθε πραγματική έξοδο και όλα τα πεδία χρήσης και λογιστικής καταγραφής. Αποθηκεύστε κάθε μοναδικό αρχείο πολυμέσων που σας ανήκει και διατηρήστε κάθε ρόλο που παραπέμπει σε αυτό.
Αν χρειάζεται έλεγχος της αρχικής απάντησης
Διατηρήστε το δημόσιο id εργασίας ή λειτουργίας που επιστρέφεται και όλες τις κεφαλίδες. Διαβάστε μόνο την αρχική εργασία· τα unknown ή result_pending_check δεν επιτρέπουν άλλη δημιουργία.
Πεδία απάντησης
| Πεδίο | Τύπος |
|---|---|
Πεδίοid | Τύποςstring |
Πεδίοpolling_url | Τύποςstring |
Πεδίοprovider_task_id | Τύποςstring |
Πεδίοtask_id | Τύποςstring |
Πεδίοstatus | Τύποςstring |
Πεδίοvideo_url | Τύποςstring |
Σφάλματα και επόμενα βήματα
| Απάντηση | Συνθήκη | Επόμενο βήμα |
|---|---|---|
Απάντηση400 · invalid_request_error | ΣυνθήκηΈνα υποχρεωτικό πεδίο, ο επιλογέας μοντέλου, ο τύπος ή η μορφή αναπαράστασης της εισόδου δεν είναι έγκυρα. | Επόμενο βήμαΕξετάστε τις λεπτομέρειες επικύρωσης που επιστράφηκαν πριν ετοιμάσετε ξεχωριστό αίτημα. |
Απάντηση | ΣυνθήκηΤο αρχικό αίτημα ή αποτέλεσμα είναι άγνωστο ή απαιτεί έλεγχο. | Επόμενο βήμαΔιατηρήστε τα αρχικά αναγνωριστικά και τις κεφαλίδες· διαβάστε μόνο τις υποστηριζόμενες εγγραφές κατάστασης ή βιβλιοθήκης. Μην υποβάλετε ξανά αίτημα δημιουργίας. |
Εναλλακτικά ονόματα
Εναλλακτικά ονόματα μοντέλου
Ailoot Ultra happyhorse-1.0-i2v
Εναλλακτικές διαδρομές μεθόδων
/v1/videos/generations
Σχετικά ID μοντέλων
FAQ · happyhorse-1.0-i2v
- Ποιες είσοδοι και αποτελέσματα διατίθενται;
POST /v1/videos·happyhorse-1.0-i2v:text,image→video- Ποια πεδία χρησιμοποιεί το αίτημα;
POST /v1/videos·happyhorse-1.0-i2v:model,prompt,image,resolution,duration