μοντέλα

happyhorse-1.1-i2v

Markdown · JSON

happyhorse-1.1-i2v

Μοντέλο που δίνει κίνηση σε μια εικόνα: η αρχική εικόνα ορίζει το πρώτο καρέ και η περιγραφή καθοδηγεί την κίνηση που ακολουθεί. Δημιουργεί ένα σύντομο βίντεο με δυνατότητα ηχητικής συνοδείας.

Σχετικά με το μοντέλο

Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.

Το HappyHorse-1.1-I2V είναι μοντέλο της Alibaba που ξεκινά μια σκηνή βίντεο από μια έτοιμη εικόνα. Η εικόνα γίνεται το πρώτο καρέ, ενώ το κείμενο μπορεί να καθορίσει τη δράση που ακολουθεί: την κίνηση του χαρακτήρα, τις αλλαγές στη σκηνή και την κατεύθυνση της κάμερας. Είναι κατάλληλο για να δώσετε κίνηση σε μια εικονογράφηση, σε μια φωτογραφία αντικειμένου ή σε μια ήδη προετοιμασμένη οπτική ιδέα.

Η περιγραφή κειμένου είναι προαιρετική. Αν λείπει, το μοντέλο συμπεραίνει μόνο του μια πιθανή κίνηση από το περιεχόμενο της αρχικής εικόνας. Αν δοθεί ρητή περιγραφή, η αρχική εικόνα καθορίζει τη σύνθεση και την εμφάνιση των αντικειμένων, ενώ οι λέξεις καθοδηγούν την εξέλιξη της σκηνής στον χρόνο.

Από το πρώτο καρέ στην κίνηση

Η Alibaba δίνει έμφαση στη διατήρηση της εμφάνισης του χαρακτήρα, στην οπτική συνέπεια, στην ομαλή κίνηση και στον συνδυασμό εικόνας και ήχου. Στις δηλωμένες επιδιώξεις περιλαμβάνεται επίσης η σταθερότητα των επιγραφών και των υφών. Αυτές οι ιδιότητες αφορούν τον σχεδιασμό του μοντέλου και δεν σημαίνουν κυριολεκτική διατήρηση κάθε pixel σε όλα τα καρέ που δημιουργούνται.

Σε αυτή τη λειτουργία χρησιμοποιείται μία αρχική εικόνα. Ορίζει την αρχική σκηνή και δεν αποτελεί σύνολο ανεξάρτητων δειγμάτων για νέα σύνθεση. Δεν έχει δηλωθεί δυνατότητα ορισμού ξεχωριστού τελευταίου καρέ για τη συγκεκριμένη έκδοση.

Γίνονται δεκτά JPEG, JPG, PNG και WEBP. Κάθε πλευρά της εικόνας εισόδου πρέπει να έχει τουλάχιστον 300 pixel· ο επιτρεπόμενος λόγος διαστάσεων κυμαίνεται από 1:2,5 έως 2,5:1 και το μέγεθος του αρχείου φτάνει έως 20 MB. Ο λόγος διαστάσεων του τελικού βίντεο ακολουθεί το πρώτο καρέ.

Παράμετροι του βίντεο

Η διάρκεια επιλέγεται ως ακέραιος αριθμός από 3 έως 15 δευτερόλεπτα. Διατίθενται αναλύσεις 480P, 720P και 1080P· η μορφή εξόδου είναι MP4 και ο ρυθμός καρέ είναι 24 ανά δευτερόλεπτο. Υποστηρίζεται η δημιουργία ηχητικής συνοδείας μαζί με το βίντεο.

Η περιγραφή μπορεί να είναι σε οποιαδήποτε γλώσσα και να περιλαμβάνει έως 5000 μη κινεζικούς ή 2500 κινεζικούς χαρακτήρες. Αν ξεπεραστεί το όριο, το επιπλέον τμήμα απορρίπτεται, γι’ αυτό οι βασικές ενέργειες και τα χαρακτηριστικά της κίνησης πρέπει να διατυπώνονται μέσα στα όρια του αιτήματος. Η ίδια αρχική τιμή τυχαιότητας μπορεί να δώσει παρόμοια βίντεο, αλλά δεν εγγυάται ταύτιση καρέ προς καρέ.

Ailoot · Βίντεο POST /v1/videos/generations happyhorse-1.1-i2v

happyhorse-1.1-i2v

Alibaba /happyhorse-1.1-i2v
ID μοντέλου
  • happyhorse-1.1-i2v
  • happyhorse-i2v
  • happyhorse-i2v-latest

Εισαγωγή

Μοντέλο που δίνει κίνηση σε μια εικόνα: η αρχική εικόνα ορίζει το πρώτο καρέ και η περιγραφή καθοδηγεί την κίνηση που ακολουθεί. Δημιουργεί ένα σύντομο βίντεο με δυνατότητα ηχητικής συνοδείας.

Αποδεκτές είσοδοι
Κείμενο · Εικόνες
Αποτελέσματα
Βίντεο

Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

Ailoot · Βίντεο POST /v1/videos/generations
Είσοδος
text, image
Έξοδος
video
Μορφή εξόδου
mp4
ΠεδίοΤύποςΑπαίτησηΤιμές και όριαΠροεπιλογή
ΠεδίοmodelΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
happyhorse-1.1-i2v
Προεπιλογή—
ΠεδίοpromptΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Ελάχιστο μήκος: 1
Προεπιλογή—
ΠεδίοdurationΤύποςintegerΑπαίτησηΠροαιρετικόΤιμές και όρια
Ελάχιστο: 3
Μέγιστο: 15
Μονάδα: δευτερόλεπτα
Προεπιλογή5
ΠεδίοresolutionΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
480P, 720P, 1080P
Προεπιλογή720P
ΠεδίοratioΤύποςstringΑπαίτησηΔεν υποστηρίζεταιΤιμές και όριαΠροεπιλογή—
Πεδίοimage_urlsΤύποςhttps_url|data_image_url[]ΑπαίτησηΥποχρεωτικόΤιμές και όρια
Ελάχιστο πλήθος στοιχείων: 1
Μέγιστο πλήθος στοιχείων: 1
Μέγιστο πλήθος αποκωδικοποιημένων byte: 20.971.520
Τύποι MIME: image/jpeg, image/png, image/webp
Προεπιλογή—
Συνδυασμοί υλικών εισόδου

first_frame_to_video · Υποχρεωτικό: image_urls

Παράμετροι και κύκλος ζωής μεθόδου
ΠαράμετροςΣύμβαση
Παράμετροςcontent_typeΣύμβασηapplication/json
ΠαράμετροςrequiredΣύμβασηmodel, image_urls
Παράμετροςmaterial_typesΣύμβασηtext, image
ΠαράμετροςoptionalΣύμβασηduration, resolution, ratio, prompt
Παράμετροςduration_integer_rangeΣύμβαση3, 15
Παράμετροςdefault_durationΣύμβαση5
ΠαράμετροςresolutionΣύμβαση480P, 720P, 1080P
Παράμετροςdefault_resolutionΣύμβαση720P
ΠαράμετροςratioΣύμβαση
Παράμετροςratio_must_omitΣύμβασηtrue
Παράμετροςimage_urlsΣύμβαση{"min_count":1,"max_count":1,"schemes":["https","δεδομένα εικόνας raster σε base64"],"max_data_image_bytes":20971520}

Κύκλος ζωής: 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

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_IMAGE_URL:?Set the HTTPS URL of your actual first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-i2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
u=os.environ["AILOOT_IMAGE_URL"]
z=urlsplit(u)
if z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Set the actual HTTPS image URL")
p["image_urls"]=[u]
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
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT

Λήψη και αποθήκευση αποτελεσμάτων

Ailoot · Βίντεο

mp4

  • GET /v1/videos/{request_id}
  • GET /v1/videos/generations/{request_id}
  • GET /v1/videos/{request_id}/content
  • GET /v1/videos/generations/{request_id}/content
Έλεγχος κατάστασης εργασίας
Λήψη κατάστασης με GET
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
Αποθηκεύστε όλα τα ολοκληρωμένα αρχεία
Λήψη όλων των ολοκληρωμένων αρχείων με GET
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
Άλλες ανακτήσεις περιεχομένου
Λήψη περιεχομένου με GET
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-i2v, happyhorse-i2v, happyhorse-i2v-latest

Εναλλακτικές διαδρομές μεθόδων

Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.

Σχετικά ID μοντέλων

happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest

Ailoot · Βίντεο POST /v1/videos/generations happyhorse-i2v

happyhorse-i2v

Alibaba /happyhorse-i2v
ID μοντέλου
  • happyhorse-1.1-i2v
  • happyhorse-i2v
  • happyhorse-i2v-latest

Εισαγωγή

Μοντέλο που δίνει κίνηση σε μια εικόνα: η αρχική εικόνα ορίζει το πρώτο καρέ και η περιγραφή καθοδηγεί την κίνηση που ακολουθεί. Δημιουργεί ένα σύντομο βίντεο με δυνατότητα ηχητικής συνοδείας.

Αποδεκτές είσοδοι
Κείμενο · Εικόνες
Αποτελέσματα
Βίντεο

Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

Ailoot · Βίντεο POST /v1/videos/generations
Είσοδος
text, image
Έξοδος
video
Μορφή εξόδου
mp4
ΠεδίοΤύποςΑπαίτησηΤιμές και όριαΠροεπιλογή
ΠεδίοmodelΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
happyhorse-i2v
Προεπιλογή—
ΠεδίοpromptΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Ελάχιστο μήκος: 1
Προεπιλογή—
ΠεδίοdurationΤύποςintegerΑπαίτησηΠροαιρετικόΤιμές και όρια
Ελάχιστο: 3
Μέγιστο: 15
Μονάδα: δευτερόλεπτα
Προεπιλογή5
ΠεδίοresolutionΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
480P, 720P, 1080P
Προεπιλογή720P
ΠεδίοratioΤύποςstringΑπαίτησηΔεν υποστηρίζεταιΤιμές και όριαΠροεπιλογή—
Πεδίοimage_urlsΤύποςhttps_url|data_image_url[]ΑπαίτησηΥποχρεωτικόΤιμές και όρια
Ελάχιστο πλήθος στοιχείων: 1
Μέγιστο πλήθος στοιχείων: 1
Μέγιστο πλήθος αποκωδικοποιημένων byte: 20.971.520
Τύποι MIME: image/jpeg, image/png, image/webp
Προεπιλογή—
Συνδυασμοί υλικών εισόδου

first_frame_to_video · Υποχρεωτικό: image_urls

Παράμετροι και κύκλος ζωής μεθόδου
ΠαράμετροςΣύμβαση
Παράμετροςmaterial_typesΣύμβασηtext, image
Παράμετρος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

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_IMAGE_URL:?Set the HTTPS URL of your actual first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-i2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
u=os.environ["AILOOT_IMAGE_URL"]
z=urlsplit(u)
if z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Set the actual HTTPS image URL")
p["image_urls"]=[u]
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
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT

Λήψη και αποθήκευση αποτελεσμάτων

Ailoot · Βίντεο

mp4

  • GET /v1/videos/{request_id}
  • GET /v1/videos/generations/{request_id}
  • GET /v1/videos/{request_id}/content
  • GET /v1/videos/generations/{request_id}/content
Έλεγχος κατάστασης εργασίας
Λήψη κατάστασης με GET
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
Αποθηκεύστε όλα τα ολοκληρωμένα αρχεία
Λήψη όλων των ολοκληρωμένων αρχείων με GET
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
Άλλες ανακτήσεις περιεχομένου
Λήψη περιεχομένου με GET
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-i2v, happyhorse-i2v, happyhorse-i2v-latest

Εναλλακτικές διαδρομές μεθόδων

Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.

Σχετικά ID μοντέλων

happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest

Ailoot · Βίντεο POST /v1/videos/generations happyhorse-i2v-latest

happyhorse-i2v-latest

Alibaba /happyhorse-i2v-latest
ID μοντέλου
  • happyhorse-1.1-i2v
  • happyhorse-i2v
  • happyhorse-i2v-latest

Εισαγωγή

Μοντέλο που δίνει κίνηση σε μια εικόνα: η αρχική εικόνα ορίζει το πρώτο καρέ και η περιγραφή καθοδηγεί την κίνηση που ακολουθεί. Δημιουργεί ένα σύντομο βίντεο με δυνατότητα ηχητικής συνοδείας.

Αποδεκτές είσοδοι
Κείμενο · Εικόνες
Αποτελέσματα
Βίντεο

Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

Ailoot · Βίντεο POST /v1/videos/generations
Είσοδος
text, image
Έξοδος
video
Μορφή εξόδου
mp4
ΠεδίοΤύποςΑπαίτησηΤιμές και όριαΠροεπιλογή
ΠεδίοmodelΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
happyhorse-i2v-latest
Προεπιλογή—
ΠεδίοpromptΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Ελάχιστο μήκος: 1
Προεπιλογή—
ΠεδίοdurationΤύποςintegerΑπαίτησηΠροαιρετικόΤιμές και όρια
Ελάχιστο: 3
Μέγιστο: 15
Μονάδα: δευτερόλεπτα
Προεπιλογή5
ΠεδίοresolutionΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
480P, 720P, 1080P
Προεπιλογή720P
ΠεδίοratioΤύποςstringΑπαίτησηΔεν υποστηρίζεταιΤιμές και όριαΠροεπιλογή—
Πεδίοimage_urlsΤύποςhttps_url|data_image_url[]ΑπαίτησηΥποχρεωτικόΤιμές και όρια
Ελάχιστο πλήθος στοιχείων: 1
Μέγιστο πλήθος στοιχείων: 1
Μέγιστο πλήθος αποκωδικοποιημένων byte: 20.971.520
Τύποι MIME: image/jpeg, image/png, image/webp
Προεπιλογή—
Συνδυασμοί υλικών εισόδου

first_frame_to_video · Υποχρεωτικό: image_urls

Παράμετροι και κύκλος ζωής μεθόδου
ΠαράμετροςΣύμβαση
Παράμετροςmaterial_typesΣύμβασηtext, image
Παράμετρος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

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_IMAGE_URL:?Set the HTTPS URL of your actual first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-i2v-latest", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
u=os.environ["AILOOT_IMAGE_URL"]
z=urlsplit(u)
if z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Set the actual HTTPS image URL")
p["image_urls"]=[u]
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
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT

Λήψη και αποθήκευση αποτελεσμάτων

Ailoot · Βίντεο

mp4

  • GET /v1/videos/{request_id}
  • GET /v1/videos/generations/{request_id}
  • GET /v1/videos/{request_id}/content
  • GET /v1/videos/generations/{request_id}/content
Έλεγχος κατάστασης εργασίας
Λήψη κατάστασης με GET
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
Αποθηκεύστε όλα τα ολοκληρωμένα αρχεία
Λήψη όλων των ολοκληρωμένων αρχείων με GET
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
Άλλες ανακτήσεις περιεχομένου
Λήψη περιεχομένου με GET
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-i2v, happyhorse-i2v, happyhorse-i2v-latest

Εναλλακτικές διαδρομές μεθόδων

Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.

Σχετικά ID μοντέλων

happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest

FAQ · happyhorse-1.1-i2v
Ποιες είσοδοι και αποτελέσματα διατίθενται;

POST /v1/videos/generations · happyhorse-1.1-i2v: text, image → video

POST /v1/videos/generations · happyhorse-i2v: text, image → video

POST /v1/videos/generations · happyhorse-i2v-latest: text, image → video

Ποια πεδία χρησιμοποιεί το αίτημα;

POST /v1/videos/generations · happyhorse-1.1-i2v: model, prompt, duration, resolution, image_urls

POST /v1/videos/generations · happyhorse-i2v: model, prompt, duration, resolution, image_urls

POST /v1/videos/generations · happyhorse-i2v-latest: model, prompt, duration, resolution, image_urls

Ποια όρια ισχύουν;

POST /v1/videos/generations · happyhorse-1.1-i2v: duration.minimum: 3; duration.maximum: 15

POST /v1/videos/generations · happyhorse-i2v: duration.minimum: 3; duration.maximum: 15

POST /v1/videos/generations · happyhorse-i2v-latest: duration.minimum: 3; duration.maximum: 15

Περισσότερες λεπτομέρειες

Συνδέστε το Ailoot με Claude Code, OpenCode, Hermes ή τη δική σας εφαρμογή.

Η εταιρεία και το χαρτοφυλάκιο έργων της

Η εταιρεία και το χαρτοφυλάκιο έργων της: εκατομμύρια πελάτες· μηνιαίες πωλήσεις δισεκατομμυρίων.

Αγοράστε token με έκπτωση.

Έκπτωση συνδρομής για τακτική χρήση. Προωθητικοί κωδικοί — έως 50% στην αγορά token.

Συνδρομή
Επιλέξτε πρόγραμμα με έκπτωση για τα τακτικά αιτήματά σας.
Προωθητικός κωδικός έως 50%
Εισαγάγετε τον κωδικό στην αγορά. Η τιμή επανυπολογίζεται σύμφωνα με την ενεργή προσφορά.
Δαπάνες στο ιστορικό
Μοντέλο, token και ποσό αποθηκεύονται για κάθε αίτημα.

Επιλέξτε συνδρομή · Δείτε τιμές μοντέλων

Συνδέστε το API με το προϊόν που πουλάτε.

SaaS, εφαρμογές και bot — σύμφωνα με τη δημόσια προσφορά και τη σύμβαση άδειας χρήσης Ailoot. Για μεταπώληση ζητήστε σχετική άδεια.

Εμπορική εφαρμογή
Ενσωματώστε δημιουργία κειμένου, εικόνων, βίντεο και ήχου στις πληρωμένες λειτουργίες της υπηρεσίας σας.
Άδεια για μεταπωλητή
Στείλτε περιγραφή έργου και τρόπο πρόσβασης. Ζητήστε γραπτούς όρους χρήσης και μεταπώλησης.
Έγγραφα στον ιστότοπο
Δημόσια προσφορά, σύμβαση άδειας χρήσης και πολιτική επεξεργασίας δεδομένων είναι διαθέσιμες πριν τη σύνδεση.

Ζητήστε άδεια μεταπώλησης · Δημόσια προσφορά και σύμβαση άδειας χρήσης